"Fossies" - the Fresh Open Source Software Archive 
Member "libspf2-1.2.10/README" (28 Jan 2012, 4302 Bytes) of package /linux/privat/libspf2-1.2.10.tar.gz:
As a special service "Fossies" has tried to format the requested text file into HTML format (style:
standard) with prefixed line numbers.
Alternatively you can here
view or
download the uninterpreted source code file.
1 /**
2 * @file
3 * @brief Description of libspf2
4 * The contents of this file is extracted by the documentation
5 * generator, and forms the front matter and introductory text to this
6 * manual. The documentation for this file is, therefore, apparently
7 * empty.
8 */
9
10 /**
11 * @mainpage Introduction to libspf2
12
13 * @par Recipes
14
15 An example client implementation is in spf_example.c with a little
16 more error checking. The basic cases are as follows:
17
18 The SPF server is reusable, and thread-safe. It must be freed using
19 SPF_server_free.
20
21 @code
22 SPF_server_t *spf_server = SPF_server_new(SPF_DNS_CACHE, 0);
23 @endcode
24
25 Create a request, and set the relevant fields in it. Each setter
26 method returns an SPF_errcode_t, which will inform you of error
27 conditions, such as out-of-memory or invalid argument.
28
29 @code
30 SPF_request_t *spf_request = SPF_request_new(spf_server);
31 SPF_request_set_ipv4_str(spf_request, "123.45.6.7");
32 SPF_request_set_env_from(spf_request, "clientdomain.com");
33 @endcode
34
35 Now that we have built a query, we may execute it. It will use the
36 SPF_server_t which was passed to the query constructor. As usual, the
37 SPF_request_query_mailfrom method returns an error code, although
38 much richer errors are returned inside the SPF_response_t - see
39 spf_response.h for more details of that API.
40
41 @code
42 SPF_response_t *spf_response = NULL;
43 SPF_request_query_mailfrom(spf_request, &spf_response);
44 printf("Result is %s\n",
45 SPF_strresult(SPF_response_result(spf_response)));
46 @endcode
47
48 When we have finished with the response, we must free it and the
49 request.
50
51 @code
52 SPF_response_free(spf_response);
53 SPF_request_free(spf_request);
54 @endcode
55
56 We can execute many requests in parallel threads on the same server,
57 but before the program exits, we must free the server.
58
59 @code
60 SPF_server_free(spf_server);
61 @endcode
62
63 * @par Authors
64
65 - Current maintainer: Shevek <libspf2@anarres.org>
66 - Contributors: Magnus Holmgren, Julian Mehnle, Scott Kitterman
67 - Contributors: Dan Kaminsky, Ben Chelf, Hannah Schroeter
68 - Contributors: Martin Braine, Manish Raje, Stuart Gathman
69 - Original author, 1.0 series: Wayne Schlitt <wayne@midwestcs.com>
70
71 * @par License
72
73 This program is free software; you can redistribute it and/or modify
74 it under the terms of either:
75
76 a) the GNU Lesser General Public License as published by the Free
77 Software Foundation; either version 2.1, or (at your option) any
78 later version, or
79
80 OR
81
82 b) The two-clause BSD license.
83
84 Some code in the 'replace' subdirectory was obtained form other sources
85 and have different, but compatible, licenses. These routines are
86 used only when the native libraries for the OS do not contain these
87 functions. You should review the licenses and copyright statments
88 in these functions if you are using an OS that needs these functions.
89
90 * @par Original README from Wayne Schlitt
91
92 Libspf2 is an implementation of the SPF specification as found at
93 http://www.ietf.org/internet-drafts/draft-mengwong-spf-00.txt
94 or doc/draft-mengwong-spf-00.txt
95
96 Libspf2 is in beta testing and should only be used in production
97 systems with caution. It has not been widely compiled and tested on
98 machines with different operating systems, CPU architectures, or
99 network configurations. It has not been audited for security errors.
100
101 While libspf2 is beta code, a lot of effort has been put into
102 making it secure by design, and a great deal of effort has been put
103 into the regression tests. Functions such as sprintf() are never
104 used, things like snprintf() are used instead. There are few fixed
105 sized buffers/arrays, instead, most data structures are dynamically
106 allocated with the allocation sized recorded so I can check to make
107 sure the buffer isn't overflowed. The return values from malloc() and
108 other system calls are checked and handled as gracefully as I can.
109 The valgrind program is regularly run to make sure that there are no
110 memory leaks and reads/writes to invalid memory.
111
112
113 This code has been compiled and passed its regression tests on Debian
114 Linux (sid/testing) on the x86, FreeBSD 4.3 (x86), FreeBSD 4.9
115 (x86??), NetBSD 1.62 (x86?), SunOS 5.8 on the ultrasparc, and a few
116 others. It uses the autotools (autoconfig, libtools, automake, etc.)
117 to try and make things more portable, so it will likely work on other
118 systems also.
119
120
121 -wayne
122
123 */