view src/dnsbl.h @ 86:c1280cd3e248

add multiple debug syslog levels, remove duplicate dnsbl definitions
author carl
date Tue, 19 Jul 2005 22:47:15 -0700
parents 81f1e400e8ab
children d9d2f8699621
line wrap: on
line source

#ifndef	dnsbl_include
#define	dnsbl_include

#include "context.h"

extern int debug_syslog;

class recorder;
class url_scanner;

////////////////////////////////////////////////
// mail	filter private data, held for us by	sendmail
//
struct mlfiPriv
{
	// connection specific data
	CONFIG	*pc;					// global filtering	configuration
	int		fd;						// to talk to dns resolvers	process
	bool	err;					// did we get any errors on	the	resolver socket?
	int		ip;						// ip4 address of the smtp client
	map<DNSBLP,	bool> checked;		// map of dnsblp to	result of (ip listed on	that dnsbl)
	// message specific	data
	char	*mailaddr;		// envelope	from value
	char	*queueid;		// sendmail	queue id
	bool	authenticated;	// client authenticated? if	so,	suppress all dnsbl checks
	bool	have_whites;	// have	at least one whitelisted recipient?	need to	accept content and remove all non-whitelisted recipients if	it fails
	bool	only_whites;	// every recipient is whitelisted?
	context_map	env_to;		// map each	non-whitelisted	recipient to their filtering context
	recorder	*memory;	// memory for the content scanner
	url_scanner	*scanner;	// object to handle	body scanning
	char		*content_suffix;		// content filtering parameters
	char		*content_message;		// ""
	string_set	*content_host_ignore;	// ""


	mlfiPriv();
	~mlfiPriv();
	void reset(bool	final =	false);	// for a new message
	void get_fd();
	void return_fd();
	int	 my_read(char *buf,	int	len);
	int	 my_write(char *buf, int len);
	void need_content_filter(char *rcpt, CONTEXT &con);
};

void my_syslog(mlfiPriv	*priv, char	*text);
void my_syslog(char	*text);

#endif