Mercurial > dnsbl
diff src/spamass.h @ 163:97d7da45fe2a
spamassassin changes
author | carl |
---|---|
date | Sun, 26 Aug 2007 19:03:17 -0700 |
parents | |
children | 9b129ed78d7d |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/spamass.h Sun Aug 26 19:03:17 2007 -0700 @@ -0,0 +1,75 @@ +/* + +Copyright (c) 2007 Carl Byington - 510 Software Group, released under +the GPL version 3 or any later version at your choice available at +http://www.gnu.org/licenses/gpl-3.0.txt + +Based on spamass-milter by Georg C. F. Greve <greve@gnu.org> + +*/ + +#ifndef _SPAMASS_MILTER_H +#define _SPAMASS_MILTER_H + +extern "C" { + #include <libmilter/mfapi.h> +} + +#ifdef HAVE_CDEFS_H +#include <sys/cdefs.h> +#endif + +#include <list> + +using namespace std; + +class mlfiPriv; + +class SpamAssassin { +public: + SpamAssassin(); + ~SpamAssassin(); + + void mlfi_connect(mlfiPriv *priv_, int ip); + void mlfi_helo(char *helohost); + void mlfi_envfrom(char *from, char *qid); + void mlfi_envrcpt(SMFICTX *ctx, char *envrcpt); + void mlfi_header(char* headerf, char* headerv); + void mlfi_eoh(); + void mlfi_body(u_char *bodyp, size_t bodylen); + int mlfi_eom(); + +private: + void Connect(); + void output(const char*buffer, size_t size); + void output(const char*buffer); + void output(string buffer); + void close_output(); + void input(); + int read_pipe(); + void empty_and_close_pipe(); + void closeall(int fd); + void warnmacro(char *macro, char *scope); + +public: + bool error; // spamc died or cannot work + bool running; // running implies (connected and pid) + bool first_recipient; // have we seen any recipients? + + // connection back to main dnsbl priv structure for logging + mlfiPriv *priv; + + // strings owned by main dnsbl + char *queueid; // the sendmail queue id for this message + char *envfrom; // envelope from value for this message + char *helo; // client helo value + int ip4; // ip4 address of smtp client + + // Process handling variables + pid_t pid; + int pipe_io[2][2]; + string spamc_output; + string spamc_input; +}; + +#endif