diff src/dccifd.h @ 196:ff6d14d75b1e

add missing files to cvs
author carl
date Sat, 02 Feb 2008 10:08:08 -0800
parents
children 82886d4dd71f
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/dccifd.h	Sat Feb 02 10:08:08 2008 -0800
@@ -0,0 +1,69 @@
+/*
+
+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
+
+*/
+
+#ifndef _DCCIFD_H
+#define _DCCIFD_H
+
+extern "C" {
+	#include <libmilter/mfapi.h>
+}
+
+#ifdef HAVE_CDEFS_H
+#include <sys/cdefs.h>
+#endif
+
+#include <list>
+
+using namespace std;
+
+class mlfiPriv;
+
+class DccInterface {
+public:
+	DccInterface(char *port_, mlfiPriv *priv_, int ip, char *helo_, char *from);
+	~DccInterface();
+
+	void mlfi_envrcpt(SMFICTX *ctx, char *envrcpt, bool grey);
+	void mlfi_header(SMFICTX *ctx, char* headerf, char* headerv);
+	void mlfi_eoh();
+	void mlfi_body(u_char *bodyp, size_t bodylen);
+	void mlfi_eom(bool &grey, int &bulk);
+
+private:
+	void my_disconnect();
+	void Connect();
+	size_t my_write(const char *buf, size_t len);
+	size_t my_read(char *buf, size_t len);
+	void output(const char*buffer, size_t size);
+	void output(const char*buffer);
+	void output(string buffer);
+	void close_output();
+	void input();
+	char *getmacro(SMFICTX *ctx, char *macro, char *def);
+
+public:
+	bool err;				// socket write error
+	bool first_recipient;	// have we not seen any recipients?
+	bool first_header;		// have we not seen any headers?
+
+	// connection back to main dnsbl priv structure for logging
+	mlfiPriv *priv;
+	int 	 ip4;		// ip4 address of smtp client
+
+	// strings owned by main dnsbl
+	char *helo; 		// client helo value
+	char *envfrom;		// envelope from value for this message
+
+	// Process handling variables
+	int    dccifd_socket;
+	char  *dccifd_port;
+	string dccifd_output;	// to dccifd socket
+	string dccifd_input;	// from dccifd socket
+};
+
+#endif