Libspf-alt is an implementation of the SPF specification as found at http://www.ietf.org/internet-drafts/draft-mengwong-spf-00.txt or doc/draft-mengwong-spf-00.txt Libspf-alt is in beta testing and should only be used in production systems with caution. It has not been widely compiled and tested on machines with different operating systems, CPU architectures, or network configurations. It has not been audited for security errors. It is new code, and should be treated as such. While libspf-alt is beta code, a lot of effort has been put into making it secure by design, and a great deal of effort has been put into the regression tests. Functions such as sprintf() are never used, things like snprintf() are used instead. There are few fixed sized buffers/arrays, instead, most data structures are dynamically allocated with the allocation sized recorded so I can check to make sure the buffer isn't overflowed. The return values from malloc() and other system calls are checked and handled as gracefully as possible. The valgrind program is regularly run to make sure that there are no memory leaks and reads/writes to invalid memory.