5 #define LOGBiobuf "log/status"
7 /* log mail delivery */
9 logdelivery(dest *list, char *rcvr, message *mp)
12 String *srcvr, *sender;
14 srcvr = unescapespecial(s_copy(rcvr));
15 sender = unescapespecial(s_clone(mp->sender));
17 for(parent=list; parent->parent!=0; parent=parent->parent)
19 if(parent!=list && strcmp(s_to_c(parent->addr), s_to_c(srcvr))!=0)
20 syslog(0, "mail", "delivered %s From %.256s %.256s (%.256s) %d",
22 s_to_c(sender), s_to_c(mp->date),
23 s_to_c(parent->addr), mp->size);
25 syslog(0, "mail", "delivered %s From %.256s %.256s %d", s_to_c(srcvr),
26 s_to_c(sender), s_to_c(mp->date), mp->size);
31 /* log mail forwarding */
33 loglist(dest *list, message *mp, char *tag)
37 String *srcvr, *sender;
39 sender = unescapespecial(s_clone(mp->sender));
41 for(next=d_rm(&list); next != 0; next = d_rm(&list)) {
42 for(parent=next; parent->parent!=0; parent=parent->parent)
44 srcvr = unescapespecial(s_clone(next->addr));
46 syslog(0, "mail", "%s %.256s From %.256s %.256s (%.256s) %d",
48 s_to_c(srcvr), s_to_c(sender),
49 s_to_c(mp->date), s_to_c(parent->addr), mp->size);
51 syslog(0, "mail", "%s %.256s From %.256s %.256s %d", tag,
52 s_to_c(srcvr), s_to_c(sender),
53 s_to_c(mp->date), mp->size);
59 /* log a mail refusal */
61 logrefusal(dest *dp, message *mp, char *msg)
65 String *sender, *srcvr;
67 srcvr = unescapespecial(s_clone(dp->addr));
68 sender = unescapespecial(s_clone(mp->sender));
70 sprint(buf, "error %.256s From %.256s %.256s\nerror+ ", s_to_c(srcvr),
71 s_to_c(sender), s_to_c(mp->date));
74 cp = buf + strlen(buf);
75 ep = buf + sizeof(buf) - sizeof("error + ");
76 while(*msg && cp<ep) {
79 strcpy(cp, "error+ ");
80 cp += sizeof("error+ ") - 1;
84 syslog(0, "mail", "%s", buf);