enum {
	ACCEPT = 0,
	REFUSED,
	DENIED,
	DIALUP,
	BLOCKED,
	DELAY,
	TRUSTED,
	NONE,

	MAXREJECTS = 100,
};

	
typedef struct Link Link;
typedef struct List List;

struct Link {
	Link *next;
	String *p;
};

struct List {
	Link *first;
	Link *last;
};

extern	int	fflag;
extern	int	rflag;
extern	int	sflag;

extern	int	debug;
extern	NetConnInfo	*nci;
extern	char	*dom;
extern	char*	me;
extern	int	trusted;
extern	List	senders;
extern	List	rcvers;
extern	uchar	rsysip[];

int	ipcheck(char*);

void	addbadguy(char*);
void	auth(String *, String *);
int	blocked(String*);
void	data(void);
char*	dumpfile(char*);
int	forwarding(String*);
void	getconf(void);
void	hello(String*, int extended);
void	help(String *);
int	isbadguy(void);
void	listadd(List*, String*);
void	listfree(List*);
int	masquerade(String*, char*);
void	noop(void);
int	optoutofspamfilter(char*);
void	quit(void);
void	parseinit(void);
void	receiver(String*);
int	recipok(char*);
int	reply(char*, ...);
void	reset(void);
int	rmtdns(char*, char*);
void	sayhi(void);
void	sender(String*);
void	starttls(void);
void	turn(void);
void	verify(String*);
void	vfysenderhostok(void);
int	zzparse(void);
