... #include ... int cik_ir_rcpt = 0; char kas_ir_from[100]="\0"; ... void smtp_mail(arg) char *arg; { if (!addrparse(arg)) { err_syntax(); return; } flagbarf = bmfcheck(); seenmail = 1; if (!stralloc_copys(&rcptto,"")) die_nomem(); if (!stralloc_copys(&mailfrom,addr.s)) die_nomem(); strncpy(kas_ir_from, mailfrom, sizeof(kas_ir_from)); if (!stralloc_0(&mailfrom)) die_nomem(); out("250 ok\r\n"); } ... void smtp_rcpt(arg) char *arg; { if (!seenmail) { err_wantmail(); return; } if (!addrparse(arg)) { err_syntax(); return; } if (flagbarf) { err_bmf(); return; } if (relayclient) { --addr.len; if (!stralloc_cats(&addr,relayclient)) die_nomem(); if (!stralloc_0(&addr)) die_nomem(); } else if (!addrallowed()) { err_nogateway(); return; } if (!stralloc_cats(&rcptto,"T")) die_nomem(); if (!stralloc_cats(&rcptto,addr.s)) die_nomem(); if (!stralloc_0(&rcptto)) die_nomem(); cik_ir_rcpt = cik_ir_rcpt + 1; out("250 ok\r\n"); } ... void acceptmessage(qp) unsigned long qp; { datetime_sec when; when = now(); out("250 ok "); accept_buf[fmt_ulong(accept_buf,(unsigned long) when)] = 0; out(accept_buf); out(" qp "); accept_buf[fmt_ulong(accept_buf,qp)] = 0; syslog(LOG_LOCAL1 | LOG_WARNING, "%s | %d | %s", remoteip, cik_ir_rcpt, kas_ir_from); out(accept_buf); out("\r\n"); }