⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 send.h

📁 这是一个同样来自贝尔实验室的和UNIX有着渊源的操作系统, 其简洁的设计和实现易于我们学习和理解
💻 H
字号:
#define MAXSAME 16#define MAXSAMECHAR 1024/* status of a destination*/typedef enum {	d_undefined,	/* address has not been matched*/	d_pipe,		/* repl1|repl2 == delivery command, rep*/	d_cat,		/* repl1 == mail file */	d_translate,	/* repl1 == translation command*/	d_alias,	/* repl1 == translation*/	d_auth,		/* repl1 == command to authorize*/	d_syntax,	/* addr contains illegal characters*/	d_unknown,	/* addr does not match a rewrite rule*/	d_loop,		/* addressing loop*/	d_eloop,	/* external addressing loop*/	d_noforward,	/* forwarding not allowed*/	d_badmbox,	/* mailbox badly formatted*/	d_resource,	/* ran out of something we needed*/	d_pipeto,	/* pipe to from a mailbox*/} d_status;/* a destination*/typedef struct dest dest;struct dest {	dest	*next;		/* for chaining*/	dest	*same;		/* dests with same cmd*/	dest	*parent;	/* destination we're a translation of*/	String	*addr;		/* destination address*/	String	*repl1;		/* substitution field 1*/	String	*repl2;		/* substitution field 2*/	int	pstat;		/* process status*/	d_status status;	/* delivery status*/	int	authorized;	/* non-zero if we have been authorized*/	int	nsame;		/* number of same dests chained to this entry*/	int	nchar;		/* number of characters in the command*/};typedef struct message message;struct message {	String	*sender;	String	*replyaddr;	String	*date;	String	*body;	String	*tmp;		/* name of temp file */	String	*to;	int	size;	int	fd;		/* if >= 0, the file the message is stored in*/	char	haveto;	String	*havefrom;	String	*havesender;	String	*havereplyto;	char	havedate;	char	havemime;	String	*havesubject;	char	bulk;		/* if Precedence: Bulk in header */	char	rfc822headers;	int	received;	/* number of received lines */	char	*boundary;	/* bondary marker for attachments */};/* *  exported variables */extern int rmail;extern int onatty;extern char *thissys, *altthissys;extern int xflg;extern int nflg;extern int tflg;extern int debug;extern int nosummary;/* *  exported procedures */extern void	authorize(dest*);extern int	cat_mail(dest*, message*);extern dest	*up_bind(dest*, message*, int);extern int	ok_to_forward(char*);extern int	lookup(char*, char*, Biobuf**, char*, Biobuf**);extern dest	*d_new(String*);extern void	d_free(dest*);extern dest	*d_rm(dest**);extern void	d_insert(dest**, dest*);extern dest	*d_rm_same(dest**);extern void	d_same_insert(dest**, dest*);extern String	*d_to(dest*);extern dest	*s_to_dest(String*, dest*);extern void	gateway(message*);extern dest	*expand_local(dest*);extern void	logdelivery(dest*, char*, message*);extern void	loglist(dest*, message*, char*);extern void	logrefusal(dest*, message*, char*);extern int	default_from(message*);extern message	*m_new(void);extern void	m_free(message*);extern message	*m_read(Biobuf*, int, int);extern int	m_get(message*, long, char**);extern int	m_print(message*, Biobuf*, char*, int);extern int	m_bprint(message*, Biobuf*);extern String	*rule_parse(String*, char*, int*);extern int	getrules(void);extern int	rewrite(dest*, message*);extern void	dumprules(void);extern void	regerror(char*);extern dest	*translate(dest*);extern char*	skipequiv(char*);extern int	refuse(dest*, message*, char*, int, int);

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -