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

📄 log.c

📁 这是一个同样来自贝尔实验室的和UNIX有着渊源的操作系统, 其简洁的设计和实现易于我们学习和理解
💻 C
字号:
#include "common.h"#include "send.h"/* configuration */#define LOGBiobuf "log/status"/* log mail delivery */extern voidlogdelivery(dest *list, char *rcvr, message *mp){	dest *parent;	String *srcvr, *sender;	srcvr = unescapespecial(s_copy(rcvr));	sender = unescapespecial(s_clone(mp->sender));	for(parent=list; parent->parent!=0; parent=parent->parent)		;	if(parent!=list && strcmp(s_to_c(parent->addr), s_to_c(srcvr))!=0)		syslog(0, "mail", "delivered %s From %.256s %.256s (%.256s) %d",			rcvr,			s_to_c(sender), s_to_c(mp->date),			s_to_c(parent->addr), mp->size);	else		syslog(0, "mail", "delivered %s From %.256s %.256s %d", s_to_c(srcvr),			s_to_c(sender), s_to_c(mp->date), mp->size);	s_free(srcvr);	s_free(sender);}/* log mail forwarding */extern voidloglist(dest *list, message *mp, char *tag){	dest *next;	dest *parent;	String *srcvr, *sender;	sender = unescapespecial(s_clone(mp->sender));	for(next=d_rm(&list); next != 0; next = d_rm(&list)) {		for(parent=next; parent->parent!=0; parent=parent->parent)			;		srcvr = unescapespecial(s_clone(next->addr));		if(parent!=next)			syslog(0, "mail", "%s %.256s From %.256s %.256s (%.256s) %d",				tag,				s_to_c(srcvr), s_to_c(sender),				s_to_c(mp->date), s_to_c(parent->addr), mp->size);		else			syslog(0, "mail", "%s %.256s From %.256s %.256s %d", tag,				s_to_c(srcvr), s_to_c(sender),				s_to_c(mp->date), mp->size);		s_free(srcvr);	}	s_free(sender);}/* log a mail refusal */extern voidlogrefusal(dest *dp, message *mp, char *msg){	char buf[2048];	char *cp, *ep;	String *sender, *srcvr;	srcvr = unescapespecial(s_clone(dp->addr));	sender = unescapespecial(s_clone(mp->sender));	sprint(buf, "error %.256s From %.256s %.256s\nerror+ ", s_to_c(srcvr),		s_to_c(sender), s_to_c(mp->date));	s_free(srcvr);	s_free(sender);	cp = buf + strlen(buf);	ep = buf + sizeof(buf) - sizeof("error + ");	while(*msg && cp<ep) {		*cp++ = *msg;		if (*msg++ == '\n') {			strcpy(cp, "error+ ");			cp += sizeof("error+ ") - 1;		}	}	*cp = 0;	syslog(0, "mail", "%s", buf);}

⌨️ 快捷键说明

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