summaryrefslogtreecommitdiff
path: root/mail
diff options
context:
space:
mode:
Diffstat (limited to 'mail')
-rw-r--r--mail/smtpfeed/distinfo13
-rw-r--r--mail/smtpfeed/patches/patch-ac143
-rw-r--r--mail/smtpfeed/patches/patch-ad14
-rw-r--r--mail/smtpfeed/patches/patch-ae1089
-rw-r--r--mail/smtpfeed/patches/patch-af99
-rw-r--r--mail/smtpfeed/patches/patch-ag100
-rw-r--r--mail/smtpfeed/patches/patch-ah25
-rw-r--r--mail/smtpfeed/patches/patch-ai136
-rw-r--r--mail/smtpfeed/patches/patch-aj31
-rw-r--r--mail/smtpfeed/patches/patch-ak23
-rw-r--r--mail/smtpfeed/patches/patch-al967
-rw-r--r--mail/smtpfeed/patches/patch-am212
12 files changed, 2851 insertions, 1 deletions
diff --git a/mail/smtpfeed/distinfo b/mail/smtpfeed/distinfo
index 8a0ba9c97f7..62a588ab732 100644
--- a/mail/smtpfeed/distinfo
+++ b/mail/smtpfeed/distinfo
@@ -1,6 +1,17 @@
-$NetBSD: distinfo,v 1.6 2005/02/24 09:59:29 agc Exp $
+$NetBSD: distinfo,v 1.7 2006/07/23 15:00:41 taca Exp $
SHA1 (smtpfeed-1.18.tar.gz) = c5875be954a12035658c57dfca0d032609e4e057
RMD160 (smtpfeed-1.18.tar.gz) = cb477e5e3de9cb422aa2a3b612486ad819c8f8bf
Size (smtpfeed-1.18.tar.gz) = 140293 bytes
SHA1 (patch-aa) = e0ba34dd816d349ecedbc2a76cef9e70b396c655
+SHA1 (patch-ac) = d5b33823fa1ad9910ec97719f47c4265acf1dccc
+SHA1 (patch-ad) = 4ecd4ae9ba72997ed617158862e8801a9977472a
+SHA1 (patch-ae) = 33f2fc505db76c9fcb5e0b62b34797256c95db6b
+SHA1 (patch-af) = 2fd2dfa124a0ab842b739e85998e4b4a32e5eb71
+SHA1 (patch-ag) = a0956209ee563f73f3398d0fc0ee69cb57240cd5
+SHA1 (patch-ah) = d53b829ff765b7d555a6dda743a9496497679aa7
+SHA1 (patch-ai) = 2e29b595c1a946ea68186886a80bd5371b697e4e
+SHA1 (patch-aj) = f26af3988350e0df29fa7e97ea7c308ac6699125
+SHA1 (patch-ak) = 206286eb6872876fc4b67a6ad413229124b8bb80
+SHA1 (patch-al) = 6b8fbaf7a4882e6f179627b4e42ee5bf2e3964c3
+SHA1 (patch-am) = 63c35492d1cd9f01e9de901b7816e6f5d3e28c91
diff --git a/mail/smtpfeed/patches/patch-ac b/mail/smtpfeed/patches/patch-ac
new file mode 100644
index 00000000000..fc0cd543ceb
--- /dev/null
+++ b/mail/smtpfeed/patches/patch-ac
@@ -0,0 +1,143 @@
+$NetBSD: patch-ac,v 1.1 2006/07/23 15:00:41 taca Exp $
+
+--- address.c.orig 2002-01-20 23:19:42.000000000 +0900
++++ address.c
+@@ -42,6 +42,8 @@
+ # include "extern.h"
+ # include "smtp.h"
+
++static void dnsstatus P((struct recipient *, int, char *));
++
+ int
+ addmyalias(name)
+ char *name;
+@@ -58,12 +60,12 @@
+ ha = (struct hostalias *)MALLOC(sizeof(struct hostalias));
+ if (ha == NULL)
+ {
+- log(LOG_NOTICE, "out of memory (addmyalias)");
++ mylog(LOG_NOTICE, "out of memory (addmyalias)");
+ return -1;
+ }
+ /* bzero(ha, sizeof(struct hostalias)); */
+ if (cnf.debug & DEBUG_ADDRESS)
+- log(LOG_DEBUG, "adding alias: %s", name);
++ mylog(LOG_DEBUG, "adding alias: %s", name);
+ len = strlen(name);
+ /* strip trailing dot */
+ while (len > 0 && name[len-1] == '.')
+@@ -114,7 +116,7 @@
+ hostp = (struct host *)MALLOC(sizeof(struct host));
+ if (hostp == NULL)
+ {
+- log(LOG_NOTICE,
++ mylog(LOG_NOTICE,
+ "out of memory (addinetaddress)");
+ return -1;
+ }
+@@ -153,7 +155,7 @@
+ if (addr == NULL) /* just link from mxp */
+ {
+ if (cnf.debug & DEBUG_ADDRESS)
+- log(LOG_DEBUG, "address info for %s linked", mxp->name);
++ mylog(LOG_DEBUG, "address info for %s linked", mxp->name);
+ return 0;
+ }
+
+@@ -170,13 +172,13 @@
+ {
+ case AF_INET:
+ bcopy(addr, &sin, sizeof(sin));
+- log(LOG_INFO, "got new address %s for %s, state reset",
++ mylog(LOG_INFO, "got new address %s for %s, state reset",
+ inet_ntoa(sin), mxp->name);
+ break;
+ #if INET6
+ case AF_INET6:
+ inet_ntop(AF_INET6, addr, buf, sizeof(buf));
+- log(LOG_INFO, "got new address %s for %s, state reset",
++ mylog(LOG_INFO, "got new address %s for %s, state reset",
+ buf, mxp->name);
+
+ break;
+@@ -193,19 +195,19 @@
+ {
+ case AF_INET:
+ bcopy(addr, &sin, sizeof(sin));
+- log(LOG_DEBUG, "DNS: registering %s=%s",
++ mylog(LOG_DEBUG, "DNS: registering %s=%s",
+ mxp->name, inet_ntoa(sin));
+ break;
+ #if INET6
+ case AF_INET6:
+ inet_ntop(AF_INET6, addr, buf, sizeof(buf));
+- log(LOG_DEBUG, "DNS: registering %s=%s",
++ mylog(LOG_DEBUG, "DNS: registering %s=%s",
+ mxp->name, buf);
+
+ break;
+ #endif
+ default:
+- log(LOG_NOTICE,
++ mylog(LOG_NOTICE,
+ "DNS: invalid inet_domain %d at addinetaddress",
+ inet_domain);
+ }
+@@ -226,7 +228,7 @@
+ iap = (struct inetaddr *)MALLOC(sizeof(struct inetaddr));
+ if (iap == NULL)
+ {
+- log(LOG_NOTICE, "out of memory (addinetaddress)");
++ mylog(LOG_NOTICE, "out of memory (addinetaddress)");
+ return -1;
+ }
+ bzero(iap, sizeof(struct inetaddr));
+@@ -235,7 +237,7 @@
+ iap->address = (char *)MALLOC(len);
+ if (iap->address == NULL)
+ {
+- log(LOG_NOTICE, "out of memory (addinetaddress)");
++ mylog(LOG_NOTICE, "out of memory (addinetaddress)");
+ return -1;
+ }
+ bcopy(addr, iap->address, len);
+@@ -462,12 +464,12 @@
+ struct domain *d, **hashp;
+
+ if (cnf.debug & DEBUG_LMTP)
+- log(LOG_DEBUG, "RCPT TO: %s notify=%s orcpt=%s", addr,
++ mylog(LOG_DEBUG, "RCPT TO: %s notify=%s orcpt=%s", addr,
+ (notify == NULL)?"":notify, (orcpt == NULL)?"":orcpt);
+ rcpt = (struct recipient *)MALLOC(sizeof(struct recipient));
+ if (rcpt == NULL)
+ {
+- log(LOG_NOTICE, "out of memory (addrecipient)");
++ mylog(LOG_NOTICE, "out of memory (addrecipient)");
+ return -1;
+ }
+ bzero(rcpt, sizeof(struct recipient));
+@@ -493,7 +495,7 @@
+ if (d == NULL)
+ {
+ if (cnf.debug & DEBUG_LMTP)
+- log(LOG_DEBUG, "new domain: %s", domain);
++ mylog(LOG_DEBUG, "new domain: %s", domain);
+ rcpt->domain = (struct domain *)MALLOC(sizeof(struct domain));
+ bzero(rcpt->domain, sizeof(struct domain));
+ rcpt->domain->name = newstr(domain);
+@@ -540,13 +542,13 @@
+ return 0;
+ }
+
+-void
++static void
+ dnsstatus(rcpt, rcode, response)
+ struct recipient *rcpt;
+ int rcode;
+ char *response;
+ {
+- log(LOG_INFO, "(%d+%d+%d+%d/%d) relay=%s to=%s proto=%s delay=%d code=%d (%s)",
++ mylog(LOG_INFO, "(%d+%d+%d+%d/%d) relay=%s to=%s proto=%s delay=%d code=%d (%s)",
+ sti.nsent, sti.ndeferred, sti.nnsfailed,
+ sti.nsmtpfailed, sti.nrcpt, "unknown",
+ rcpt->address, "unknown", 0, rcode,
diff --git a/mail/smtpfeed/patches/patch-ad b/mail/smtpfeed/patches/patch-ad
new file mode 100644
index 00000000000..427b655f0a2
--- /dev/null
+++ b/mail/smtpfeed/patches/patch-ad
@@ -0,0 +1,14 @@
+$NetBSD: patch-ad,v 1.1 2006/07/23 15:00:41 taca Exp $
+
+--- common.h.orig 2002-01-20 23:20:44.000000000 +0900
++++ common.h
+@@ -425,3 +425,9 @@
+ #endif
+ };
+ typedef union SockAddrUnion SockAddr;
++
++#ifdef __STDC__
++#define P(c) c
++#else
++#define P(c)
++#endif
diff --git a/mail/smtpfeed/patches/patch-ae b/mail/smtpfeed/patches/patch-ae
new file mode 100644
index 00000000000..fb213eaed67
--- /dev/null
+++ b/mail/smtpfeed/patches/patch-ae
@@ -0,0 +1,1089 @@
+$NetBSD: patch-ae,v 1.1 2006/07/23 15:00:41 taca Exp $
+
+--- dns.c.orig 2002-03-15 11:03:39.000000000 +0900
++++ dns.c
+@@ -79,6 +79,19 @@
+ # define RES_INSECURE1 0x00000400 /* type 1 security disabled */
+ #endif
+
++static int query_domain P((char *, int));
++static int process_query P((int));
++static int make_query P((struct dns_stat *, int));
++#if INET6
++static int whichserver P((const SockAddr *));
++#else
++static int whichserver P((const struct sockaddr_in *));
++#endif
++static void got_answer P((struct query_chain *, u_char *, int));
++static void remove_query P((struct query_chain *));
++static struct mx* newmx P((char *, int, int, struct domain *, long));
++static void show_query P((u_char *, u_char *, u_char *));
++
+ int
+ pregetmx(dl)
+ struct domain *dl;
+@@ -87,7 +100,6 @@
+ char **map_arg;
+ long stime, etime;
+ int n;
+- static int query_domain(), process_query();
+ #ifdef INET6
+ SockAddr dsin; /* dummy */
+ #endif
+@@ -109,7 +121,7 @@
+ }
+ }
+
+- log(LOG_DEBUG, "start getting MXRRs with caching");
++ mylog(LOG_DEBUG, "start getting MXRRs with caching");
+ n = 0;
+ stime = time(NULL);
+ if (env.queueid != NULL)
+@@ -120,7 +132,7 @@
+ if (cnf.pgateway != NULL)
+ {
+ if (cnf.debug & DEBUG_DNS)
+- log(LOG_DEBUG, "pregetting A of protocol gateway: %s",
++ mylog(LOG_DEBUG, "pregetting A of protocol gateway: %s",
+ cnf.pgateway);
+ #ifdef INET6
+ if (cnf.inetdom & SMTP_V4)
+@@ -144,7 +156,7 @@
+ if (cnf.fallbackmx != NULL)
+ {
+ if (cnf.debug & DEBUG_DNS)
+- log(LOG_DEBUG, "pregetting A of fallbackmx: %s",
++ mylog(LOG_DEBUG, "pregetting A of fallbackmx: %s",
+ cnf.fallbackmx);
+ #ifdef INET6
+ if (cnf.inetdom & SMTP_V4)
+@@ -185,7 +197,7 @@
+ #endif
+ {
+ if (cnf.debug & DEBUG_DNS)
+- log(LOG_DEBUG,
++ mylog(LOG_DEBUG,
+ "pregetting A of sourceIP: %s", p);
+ #ifdef INET6
+ if (cnf.inetdom & SMTP_V4)
+@@ -243,7 +255,7 @@
+ || (strcasecmp(*map_arg, "MX?") == 0))
+ {
+ if (cnf.debug & DEBUG_DNS)
+- log(LOG_DEBUG, "pregetting MX: %s", dp->name);
++ mylog(LOG_DEBUG, "pregetting MX: %s", dp->name);
+ if (query_domain(dp->name, T_MX) < 0)
+ return -1;
+ n++;
+@@ -251,7 +263,7 @@
+ else if (strcasecmp(*map_arg, "A") == 0)
+ {
+ if (cnf.debug & DEBUG_DNS)
+- log(LOG_DEBUG, "pregetting A: %s", dp->name);
++ mylog(LOG_DEBUG, "pregetting A: %s", dp->name);
+ #ifdef INET6
+ if (cnf.inetdom & SMTP_V4)
+ {
+@@ -272,7 +284,7 @@
+ else if (**map_arg != '[')
+ {
+ if (cnf.debug & DEBUG_DNS)
+- log(LOG_DEBUG, "pregetting MX: %s", *map_arg);
++ mylog(LOG_DEBUG, "pregetting MX: %s", *map_arg);
+ if (query_domain(*map_arg, T_MX) < 0)
+ return -1;
+ n++;
+@@ -291,7 +303,7 @@
+ goto skip_preget_a;
+
+ if (cnf.debug & DEBUG_DNS)
+- log(LOG_DEBUG,
++ mylog(LOG_DEBUG,
+ "pregetting A of sourceIP: %s",
+ (*map_arg) + 1);
+ #ifdef INET6
+@@ -333,16 +345,16 @@
+ else
+ setproctitle("syncing MX: %d", n);
+ if (cnf.debug & DEBUG_DNS)
+- log(LOG_DEBUG, "syncing responses of MXRRs");
++ mylog(LOG_DEBUG, "syncing responses of MXRRs");
+ if (process_query(1) < 0) /* sync */
+ return -1;
+ etime = time(NULL);
+- log(LOG_DEBUG, "got MXRRs: %d MXs in %d seconds",
++ mylog(LOG_DEBUG, "got MXRRs: %d MXs in %d seconds",
+ n, etime - stime);
+ }
+ else
+ {
+- log(LOG_DEBUG, "no MXRRs to sync");
++ mylog(LOG_DEBUG, "no MXRRs to sync");
+ }
+ return 0;
+ }
+@@ -353,7 +365,6 @@
+ int type;
+ {
+ struct dns_stat *qrp, **hashp;
+- static int make_query();
+
+ qrp = hash_query_lookup(name, &hashp);
+ if (qrp == NULL) {
+@@ -361,7 +372,7 @@
+ bzero(qrp, sizeof(struct dns_stat));
+ if (qrp == NULL)
+ {
+- log(LOG_NOTICE, "out of memory (dns_query)");
++ mylog(LOG_NOTICE, "out of memory (dns_query)");
+ return -1;
+ }
+ qrp->name = newstr(name);
+@@ -375,7 +386,7 @@
+ case T_AAAA:
+ break;
+ default:
+- log(LOG_NOTICE, "query_domain: unknown query type: %d", type);
++ mylog(LOG_NOTICE, "query_domain: unknown query type: %d", type);
+ return 0;
+ }
+
+@@ -396,7 +407,6 @@
+ u_char buf[MAXPACKET];
+ int n;
+ struct query_chain *qchain;
+- static int process_query();
+
+ switch (type) {
+ case T_MX:
+@@ -419,7 +429,7 @@
+ {
+ /* already got */
+ if (cnf.debug & DEBUG_DNS)
+- log(LOG_DEBUG, "ignore request n=%s t=%d",
++ mylog(LOG_DEBUG, "ignore request n=%s t=%d",
+ qrp->name, type);
+ return 0;
+ }
+@@ -439,18 +449,18 @@
+ {
+ /* already in processing */
+ if (cnf.debug & DEBUG_DNS)
+- log(LOG_DEBUG, "skip request n=%s t=%d", qrp->name, type);
++ mylog(LOG_DEBUG, "skip request n=%s t=%d", qrp->name, type);
+ return 0;
+ }
+
+ if (cnf.debug & DEBUG_DNS)
+- log(LOG_DEBUG, "res_mkquery n=%s t=%d", qrp->name, type);
++ mylog(LOG_DEBUG, "res_mkquery n=%s t=%d", qrp->name, type);
+ n = res_mkquery(QUERY, qrp->name, C_IN, type, NULL, 0, NULL,
+ buf, sizeof(buf));
+ if (n <= 0)
+ {
+ /* error */
+- log(LOG_NOTICE, "res_mkquery failed for %s type %d",
++ mylog(LOG_NOTICE, "res_mkquery failed for %s type %d",
+ qrp->name, type);
+ return -1;
+ }
+@@ -459,7 +469,7 @@
+ if (qchain == NULL)
+ {
+ /* error */
+- log(LOG_NOTICE, "out of memory (make_query)");
++ mylog(LOG_NOTICE, "out of memory (make_query)");
+ return -1;
+ }
+ bzero(qchain, sizeof(struct query_chain));
+@@ -469,7 +479,7 @@
+ if (qchain->request == NULL)
+ {
+ /* error */
+- log(LOG_NOTICE, "out of memory (make_query)");
++ mylog(LOG_NOTICE, "out of memory (make_query)");
+ return -1;
+ }
+ bcopy(buf, qchain->request, n);
+@@ -492,7 +502,7 @@
+ qchain->prev = NULL;
+ query_chain_count++;
+ if (cnf.debug & DEBUG_DNS)
+- log(LOG_DEBUG, "DNS: query concurrency = %d", query_chain_count);
++ mylog(LOG_DEBUG, "DNS: query concurrency = %d", query_chain_count);
+ if (sti.maxcquery < query_chain_count)
+ sti.maxcquery = query_chain_count;
+
+@@ -501,10 +511,10 @@
+ {
+ struct query_chain *qcp;
+
+- log(LOG_DEBUG, "Chain after linked:");
++ mylog(LOG_DEBUG, "Chain after linked:");
+ for (qcp = QueryChain; qcp != NULL; qcp = qcp->next)
+ {
+- log(LOG_DEBUG, " %s", qcp->stat->name);
++ mylog(LOG_DEBUG, " %s", qcp->stat->name);
+ }
+ }
+ #endif
+@@ -514,7 +524,7 @@
+ return 0;
+ }
+
+-int
++static int
+ whichserver(inp)
+ #if INET6
+ const SockAddr *inp;
+@@ -591,14 +601,12 @@
+ char nbuf[MAXDNAME+1];
+ struct dns_stat *qrp;
+ int pending;
+- static void got_answer();
+- static void remove_query();
+
+ if (sync == 0 && cnf.cquery_max != 0
+ && query_chain_count >= cnf.cquery_max)
+ {
+ if (cnf.debug & DEBUG_DNS)
+- log(LOG_DEBUG, "reached to max concurrency (%d)....syncing",
++ mylog(LOG_DEBUG, "reached to max concurrency (%d)....syncing",
+ query_chain_count);
+ sync = -1;
+ }
+@@ -612,7 +620,7 @@
+ s = socket(AF_INET, SOCK_DGRAM, PF_UNSPEC);
+ if (s < 0) {
+ /* error */
+- log(LOG_NOTICE,
++ mylog(LOG_NOTICE,
+ "socket failed (process_query)");
+ return -1;
+ }
+@@ -622,7 +630,7 @@
+ s6 = socket(AF_INET6, SOCK_DGRAM, PF_UNSPEC);
+ if (s6 < 0) {
+ /* error */
+- log(LOG_NOTICE,
++ mylog(LOG_NOTICE,
+ "socket(INET6) failed (process_query)");
+ return -1;
+ }
+@@ -633,7 +641,7 @@
+ s = socket(AF_INET, SOCK_DGRAM, PF_UNSPEC);
+ if (s < 0) {
+ /* error */
+- log(LOG_NOTICE, "socket failed (process_query)");
++ mylog(LOG_NOTICE, "socket failed (process_query)");
+ return -1;
+ }
+ }
+@@ -663,14 +671,14 @@
+ nextqcp = qcp->next;
+ remove_query(qcp);
+ if (cnf.debug & DEBUG_DNS)
+- log(LOG_DEBUG, "DNS: no valid ns, removing %s type %d",
++ mylog(LOG_DEBUG, "DNS: no valid ns, removing %s type %d",
+ qcp->stat->name, qcp->type);
+ qcp = nextqcp;
+ continue;
+ }
+ qcp->try++;
+ if (cnf.debug & DEBUG_DNS)
+- log(LOG_DEBUG, "DNS: retry count=%d", qcp->try);
++ mylog(LOG_DEBUG, "DNS: retry count=%d", qcp->try);
+ }
+ }
+ if (qcp->try >= (u_char)_res.retry)
+@@ -680,7 +688,7 @@
+ nextqcp = qcp->next;
+ remove_query(qcp);
+ if (cnf.debug & DEBUG_DNS)
+- log(LOG_DEBUG, "DNS: no valid ns, removing %s type %d",
++ mylog(LOG_DEBUG, "DNS: no valid ns, removing %s type %d",
+ qcp->stat->name, qcp->type);
+ qcp = nextqcp;
+ continue;
+@@ -689,7 +697,7 @@
+ {
+ itvl = _res.retrans << qcp->try;
+ if (cnf.debug & DEBUG_DNS)
+- log(LOG_DEBUG, "DNS: waiting %d sec.", itvl);
++ mylog(LOG_DEBUG, "DNS: waiting %d sec.", itvl);
+ if (qcp->try > 0)
+ itvl /= _res.nscount;
+ if (itvl <= 0)
+@@ -700,7 +708,7 @@
+ if (nsap->in.sin_family == AF_INET)
+ {
+ if (cnf.debug & DEBUG_DNS)
+- log(LOG_DEBUG, "send query n=%s t=%d (s=%s)",
++ mylog(LOG_DEBUG, "send query n=%s t=%d (s=%s)",
+ qcp->stat->name, qcp->type,
+ inet_ntoa(nsap->in.sin_addr));
+
+@@ -711,7 +719,7 @@
+ {
+ qcp->badns |= 1<<qcp->ns;
+ if (cnf.debug & DEBUG_DNS)
+- log(LOG_DEBUG, "sendto failed: invalid ns (%s)", strerror(errno));
++ mylog(LOG_DEBUG, "sendto failed: invalid ns (%s)", strerror(errno));
+ }
+ }
+ if (nsap->in6.sin6_family == AF_INET6)
+@@ -722,7 +730,7 @@
+ {
+ inet_ntop(AF_INET6, &nsap->in6.sin6_addr,
+ buf, sizeof(buf));
+- log(LOG_DEBUG, "send query n=%s t=%d (s=%s)",
++ mylog(LOG_DEBUG, "send query n=%s t=%d (s=%s)",
+ qcp->stat->name, qcp->type, buf);
+ }
+
+@@ -733,13 +741,13 @@
+ {
+ qcp->badns |= 1<<qcp->ns;
+ if (cnf.debug & DEBUG_DNS)
+- log(LOG_DEBUG, "sendto failed: invalid ns (%s)", strerror(errno));
++ mylog(LOG_DEBUG, "sendto failed: invalid ns (%s)", strerror(errno));
+ }
+ }
+ #else
+ nsap = &NSADDR_LIST(qcp->ns);
+ if (cnf.debug & DEBUG_DNS)
+- log(LOG_DEBUG, "send query n=%s t=%d (s=%s)",
++ mylog(LOG_DEBUG, "send query n=%s t=%d (s=%s)",
+ qcp->stat->name, qcp->type,
+ inet_ntoa(nsap->sin_addr));
+
+@@ -749,7 +757,7 @@
+ {
+ qcp->badns |= 1<<qcp->ns;
+ if (cnf.debug & DEBUG_DNS)
+- log(LOG_DEBUG, "sendto failed: invalid ns");
++ mylog(LOG_DEBUG, "sendto failed: invalid ns");
+ }
+ #endif
+ sti.nqueries++;
+@@ -793,7 +801,7 @@
+ timeout.tv_usec = 0;
+ }
+ if ((cnf.debug & DEBUG_DNS) && (timeout.tv_sec > 0))
+- log(LOG_DEBUG, "DNS: waiting %d sec in %s mode",
++ mylog(LOG_DEBUG, "DNS: waiting %d sec in %s mode",
+ timeout.tv_sec, sync?"sync":"nosync");
+ FD_ZERO(&dsmask);
+ #if INET6
+@@ -825,7 +833,7 @@
+ resplen = recvfrom(s, &answer, anssiz, 0,
+ (struct sockaddr *)&from, &fromlen);
+ if (cnf.debug & DEBUG_DNS)
+- log(LOG_DEBUG, "DNS: got answer from %s",
++ mylog(LOG_DEBUG, "DNS: got answer from %s",
+ inet_ntoa(from.in.sin_addr));
+ }
+ else if (s6 >= 0 && FD_ISSET(s6, &dsmask))
+@@ -838,7 +846,7 @@
+ {
+ inet_ntop(AF_INET6, &from.in6.sin6_addr,
+ buf, sizeof(buf));
+- log(LOG_DEBUG,
++ mylog(LOG_DEBUG,
+ "DNS: got answer from %s", buf);
+ }
+ }
+@@ -846,19 +854,20 @@
+ resplen = recvfrom(s, &answer, anssiz, 0,
+ (struct sockaddr *)&from, &fromlen);
+ if (cnf.debug & DEBUG_DNS)
+- log(LOG_DEBUG, "DNS: got answer from %s",
++ mylog(LOG_DEBUG, "DNS: got answer from %s",
+ inet_ntoa(from.sin_addr));
+ #endif
+
+ if (0) {
+ show_query("DNS: answer received",
+- &answer, &answer+resplen);
++ (u_char *)&answer,
++ (u_char *)&answer+resplen);
+ }
+ now = time(NULL);
+
+ if (resplen <= 0) {
+ if (cnf.debug & DEBUG_DNS)
+- log(LOG_DEBUG, "DNS: bad anssiz %d",
++ mylog(LOG_DEBUG, "DNS: bad anssiz %d",
+ resplen);
+ continue; /* error */
+ }
+@@ -870,7 +879,7 @@
+ if (!(_res.options & RES_INSECURE1))
+ {
+ if (cnf.debug & DEBUG_DNS)
+- log(LOG_DEBUG,
++ mylog(LOG_DEBUG,
+ "DNS: not from our server");
+ continue;
+ }
+@@ -888,14 +897,15 @@
+ GETSHORT(class, ap);
+
+ if (cnf.debug & DEBUG_DNS)
+- log(LOG_DEBUG, "DNS: got answer for %s type %d",
++ mylog(LOG_DEBUG, "DNS: got answer for %s type %d",
+ nbuf, type);
+
+ qrp = hash_query_lookup(nbuf, NULL);
+ if (qrp == NULL)
+ {
+ show_query("DNS: no associated query sent",
+- &answer, &answer+resplen);
++ (u_char *)&answer,
++ (u_char *)&answer+resplen);
+ continue; /* no associated request */
+ }
+ qcp = qrp->requests;
+@@ -904,7 +914,8 @@
+ if (qcp == NULL)
+ {
+ show_query("DNS: no associated query",
+- &answer, &answer+resplen);
++ (u_char *)&answer,
++ (u_char *)&answer+resplen);
+ continue; /* no associated request */
+ }
+
+@@ -915,7 +926,7 @@
+ {
+ qcp->badns |= (1<<ns);
+ if (cnf.debug & DEBUG_DNS)
+- log(LOG_DEBUG, "DNS: badnsF rcode=%d %x/%x",
++ mylog(LOG_DEBUG, "DNS: badnsF rcode=%d %x/%x",
+ hp->rcode,
+ qcp->badns, (1<<_res.nscount)-1);
+ if (qcp->badns != (1<<_res.nscount)-1)
+@@ -924,7 +935,7 @@
+ qrp->rr_timeout |= qcp->need;
+ remove_query(qcp);
+ if (cnf.debug & DEBUG_DNS)
+- log(LOG_DEBUG, "DNS: TCP requested, removing %s type %d",
++ mylog(LOG_DEBUG, "DNS: TCP requested, removing %s type %d",
+ qcp->stat->name, qcp->type);
+ continue;
+ }
+@@ -933,7 +944,7 @@
+ qrp->rr_timeout |= qcp->need;
+ remove_query(qcp);
+ if (cnf.debug & DEBUG_DNS)
+- log(LOG_DEBUG, "DNS: TCP requested, removing %s type %d",
++ mylog(LOG_DEBUG, "DNS: TCP requested, removing %s type %d",
+ qcp->stat->name, qcp->type);
+ continue;
+ }
+@@ -952,7 +963,7 @@
+ if (sync != 0) {
+ pending = 0;
+ if (cnf.debug & DEBUG_DNS)
+- log(LOG_DEBUG, "DNS: sync: get nearest timeout from %d", now);
++ mylog(LOG_DEBUG, "DNS: sync: get nearest timeout from %d", now);
+ for (qcp = QueryChain; qcp != NULL;)
+ {
+ if (qcp->try >= (u_char)_res.retry)
+@@ -962,7 +973,7 @@
+ nextqcp = qcp->next;
+ remove_query(qcp);
+ if (cnf.debug & DEBUG_DNS)
+- log(LOG_DEBUG, "DNS: sync timeout (n=%s, t=%d)",
++ mylog(LOG_DEBUG, "DNS: sync timeout (n=%s, t=%d)",
+ qcp->stat->name, qcp->type);
+ qcp = nextqcp;
+ continue;
+@@ -970,7 +981,7 @@
+
+ pending++;
+ if (cnf.debug & DEBUG_DNS)
+- log(LOG_DEBUG, "DNS: event timeout=%d", qcp->time);
++ mylog(LOG_DEBUG, "DNS: event timeout=%d", qcp->time);
+ qcp = qcp->next;
+ }
+ if (sync < 0)
+@@ -978,7 +989,7 @@
+ if (pending)
+ {
+ if (cnf.debug & DEBUG_DNS)
+- log(LOG_DEBUG, "DNS: retry in sync mode");
++ mylog(LOG_DEBUG, "DNS: retry in sync mode");
+ /* sleep(1); * XXX */
+ goto again;
+ }
+@@ -989,12 +1000,12 @@
+ nextqcp = qcp->next;
+ remove_query(qcp);
+ if (cnf.debug & DEBUG_DNS)
+- log(LOG_DEBUG, "DNS: final timeout (n=%s, t=%d)",
++ mylog(LOG_DEBUG, "DNS: final timeout (n=%s, t=%d)",
+ qcp->stat->name, qcp->type);
+ qcp = nextqcp;
+ }
+ if (cnf.debug & DEBUG_DNS)
+- log(LOG_DEBUG, "DNS: closing socket");
++ mylog(LOG_DEBUG, "DNS: closing socket");
+ #if INET6
+ if (s >= 0)
+ {
+@@ -1038,10 +1049,10 @@
+ #if 0
+ if (cnf.debug & DEBUG_DNS)
+ {
+- log(LOG_DEBUG, "Chain after removed:");
++ mylog(LOG_DEBUG, "Chain after removed:");
+ for (qcp = QueryChain; qcp != NULL; qcp = qcp->next)
+ {
+- log(LOG_DEBUG, " %s", qcp->stat->name);
++ mylog(LOG_DEBUG, " %s", qcp->stat->name);
+ }
+ }
+ #endif
+@@ -1070,7 +1081,7 @@
+
+ remove_query(qcp);
+ if (cnf.debug & DEBUG_DNS)
+- log(LOG_DEBUG, "DNS: got answer, removing %s type %d",
++ mylog(LOG_DEBUG, "DNS: got answer, removing %s type %d",
+ qcp->stat->name, qcp->type);
+
+ b = (u_char *) answer;
+@@ -1087,7 +1098,7 @@
+ if (hp->aa == 0 && hp->ra == 0) {
+ /* this nameserver does not support recursion */
+ if (cnf.debug & DEBUG_DNS)
+- log(LOG_DEBUG, "non recursive ns=%d", qcp->ns);
++ mylog(LOG_DEBUG, "non recursive ns=%d", qcp->ns);
+ qcp->badns |= 1<<qcp->ns;
+ return;
+ }
+@@ -1097,7 +1108,7 @@
+ {
+ /* host not found */
+ if (cnf.debug & DEBUG_DNS)
+- log(LOG_DEBUG, "DNS: host (any other data) not found");
++ mylog(LOG_DEBUG, "DNS: host (any other data) not found");
+
+ qcp->stat->rr_noex = RR_ALL;
+ return;
+@@ -1108,7 +1119,7 @@
+ {
+ /* no data, other data exist */
+ if (cnf.debug & DEBUG_DNS)
+- log(LOG_DEBUG, "DNS: no data for %d", qcp->type);
++ mylog(LOG_DEBUG, "DNS: no data for %d", qcp->type);
+
+ if (qcp->type == T_ANY)
+ {
+@@ -1152,7 +1163,7 @@
+ }
+
+ if (cnf.debug & DEBUG_DNS)
+- log(LOG_DEBUG, "DNS: valid data");
++ mylog(LOG_DEBUG, "DNS: valid data");
+
+ while (qdcount--)
+ {
+@@ -1160,7 +1171,7 @@
+ ap += n;
+ if (ap + INT16SZ*2 > eom)
+ {
+- /* log(LOG_NOTICE, "corrupt DNS answer"); */
++ /* mylog(LOG_NOTICE, "corrupt DNS answer"); */
+ return;
+ }
+ GETSHORT(type, ap);
+@@ -1180,7 +1191,7 @@
+ ap += n;
+ if (ap + INT16SZ*3 + INT32SZ > eom)
+ {
+- /* log(LOG_NOTICE, "corrupt DNS answer"); */
++ /* mylog(LOG_NOTICE, "corrupt DNS answer"); */
+ return;
+ }
+ GETSHORT(type, ap);
+@@ -1189,13 +1200,13 @@
+ GETSHORT(n, ap);
+ if (ap + n > eom)
+ {
+- /* log(LOG_NOTICE, "corrupt DNS answer"); */
++ /* mylog(LOG_NOTICE, "corrupt DNS answer"); */
+ return;
+ }
+ if (class != C_IN)
+ {
+ if (cnf.debug & DEBUG_DNS)
+- log(LOG_DEBUG, "DNS: unexpected class %d in an", class);
++ mylog(LOG_DEBUG, "DNS: unexpected class %d in an", class);
+ ap += n;
+ continue;
+ }
+@@ -1229,7 +1240,7 @@
+ return;
+
+ if (cnf.debug & DEBUG_DNS)
+- log(LOG_DEBUG, "DNS: got MX for %s, %s p=%d",
++ mylog(LOG_DEBUG, "DNS: got MX for %s, %s p=%d",
+ nbuf, nbuf2, pref);
+
+ qrp->rr_got |= RR_MX;
+@@ -1268,7 +1279,7 @@
+ {
+ addr_found = 1;
+ if (cnf.debug & DEBUG_DNS)
+- log(LOG_DEBUG, "DNS: got AAAA for %s",
++ mylog(LOG_DEBUG, "DNS: got AAAA for %s",
+ qcp->stat->name);
+
+ qcp->stat->rr_got |= RR_AAAA;
+@@ -1278,7 +1289,7 @@
+ /* may be address for an alias */
+ cname_found = 0;
+ if (cnf.debug & DEBUG_DNS)
+- log(LOG_DEBUG, "DNS: got aliased (%s) AAAA for %s",
++ mylog(LOG_DEBUG, "DNS: got aliased (%s) AAAA for %s",
+ nbuf, qcp->stat->name);
+ qrp = hash_query_lookup(nbuf, NULL);
+ if (qrp == NULL)
+@@ -1309,7 +1320,7 @@
+ {
+ addr_found = 1;
+ if (cnf.debug & DEBUG_DNS)
+- log(LOG_DEBUG, "DNS: got A for %s",
++ mylog(LOG_DEBUG, "DNS: got A for %s",
+ qcp->stat->name);
+
+ qcp->stat->rr_got |= RR_A;
+@@ -1319,7 +1330,7 @@
+ cname_found = 0;
+ /* may be address for an alias */
+ if (cnf.debug & DEBUG_DNS)
+- log(LOG_DEBUG, "DNS: got aliased (%s) A for %s",
++ mylog(LOG_DEBUG, "DNS: got aliased (%s) A for %s",
+ nbuf, qcp->stat->name);
+ qrp = hash_query_lookup(nbuf, NULL);
+ if (qrp == NULL)
+@@ -1342,13 +1353,13 @@
+ return;
+
+ if (cnf.debug & DEBUG_DNS)
+- log(LOG_DEBUG, "DNS: got CNAME %s for %s",
++ mylog(LOG_DEBUG, "DNS: got CNAME %s for %s",
+ nbuf2, nbuf);
+
+ if (strcasecmp(nbuf, nbuf2) == 0)
+ {
+ /* CNAME points back itself, ignore it */
+- log(LOG_INFO,
++ mylog(LOG_INFO,
+ "CNAME %s points back itself (q=%d)",
+ nbuf, qcp->type);
+ return;
+@@ -1376,7 +1387,7 @@
+ bzero(qrp2, sizeof(struct dns_stat));
+ if (qrp2 == NULL)
+ {
+- log(LOG_NOTICE,
++ mylog(LOG_NOTICE,
+ "out of memory (dns_query)");
+ return;
+ }
+@@ -1441,13 +1452,13 @@
+ ap += INT16SZ + INT16SZ + INT32SZ;
+ if (ap + INT16SZ > eom)
+ {
+- /* log(LOG_NOTICE, "corrupt DNS answer"); */
++ /* mylog(LOG_NOTICE, "corrupt DNS answer"); */
+ return;
+ }
+ GETSHORT(n, ap);
+ if (ap + n > eom)
+ {
+- /* log(LOG_NOTICE, "corrupt DNS answer"); */
++ /* mylog(LOG_NOTICE, "corrupt DNS answer"); */
+ return;
+ }
+ ap += n;
+@@ -1460,13 +1471,13 @@
+ ap += INT16SZ + INT16SZ + INT32SZ;
+ if (ap + INT16SZ > eom)
+ {
+- /* log(LOG_NOTICE, "corrupt DNS answer"); */
++ /* mylog(LOG_NOTICE, "corrupt DNS answer"); */
+ return;
+ }
+ GETSHORT(n, ap);
+ if (ap + n > eom)
+ {
+- /* log(LOG_NOTICE, "corrupt DNS answer"); */
++ /* mylog(LOG_NOTICE, "corrupt DNS answer"); */
+ return;
+ }
+ ap += n;
+@@ -1481,7 +1492,7 @@
+ ap += n;
+ if (ap + INT16SZ*3 + INT32SZ > eom)
+ {
+- /* log(LOG_NOTICE, "corrupt DNS answer"); */
++ /* mylog(LOG_NOTICE, "corrupt DNS answer"); */
+ return;
+ }
+ GETSHORT(type, ap);
+@@ -1490,13 +1501,13 @@
+ GETSHORT(addrsize, ap);
+ if (ap + addrsize > eom)
+ {
+- /* log(LOG_NOTICE, "corrupt DNS answer"); */
++ /* mylog(LOG_NOTICE, "corrupt DNS answer"); */
+ return;
+ }
+ if (class != C_IN)
+ {
+ if (cnf.debug & DEBUG_DNS)
+- log(LOG_DEBUG, "DNS: unexpected class %d in ar", class);
++ mylog(LOG_DEBUG, "DNS: unexpected class %d in ar", class);
+ ap += addrsize;
+ continue;
+ }
+@@ -1529,7 +1540,7 @@
+ }
+
+ if (cnf.debug & DEBUG_DNS)
+- log(LOG_DEBUG, "DNS: got additional Address RR for %s type=%d",
++ mylog(LOG_DEBUG, "DNS: got additional Address RR for %s type=%d",
+ nbuf, type);
+
+ #if FAKE_AR_CHECK
+@@ -1545,7 +1556,7 @@
+ if (!found)
+ {
+ if (cnf.debug & DEBUG_DNS)
+- log(LOG_DEBUG, "DNS: ignoring additional Address RR");
++ mylog(LOG_DEBUG, "DNS: ignoring additional Address RR");
+ ap += addrsize;
+ continue;
+ }
+@@ -1558,7 +1569,7 @@
+ bzero(qrp, sizeof(struct dns_stat));
+ if (qrp == NULL)
+ {
+- log(LOG_NOTICE, "out of memory (dns_query)");
++ mylog(LOG_NOTICE, "out of memory (dns_query)");
+ return;
+ }
+ qrp->name = newstr(nbuf);
+@@ -1592,7 +1603,7 @@
+ bzero(qrp, sizeof(struct dns_stat));
+ if (qrp == NULL)
+ {
+- log(LOG_NOTICE,
++ mylog(LOG_NOTICE,
+ "out of memory (dns_query)");
+ return;
+ }
+@@ -1605,20 +1616,20 @@
+ if (cnf.inetdom & SMTP_V6 || cnf.v4v6fallback)
+ {
+ if (cnf.debug & DEBUG_DNS)
+- log(LOG_DEBUG, "DNS: getting AAAA RR for %s",
++ mylog(LOG_DEBUG, "DNS: getting AAAA RR for %s",
+ mxp->name);
+ make_query(qrp, T_AAAA);
+ }
+ if (cnf.inetdom & SMTP_V4 || cnf.v4v6fallback)
+ {
+ if (cnf.debug & DEBUG_DNS)
+- log(LOG_DEBUG, "DNS: getting A RR for %s",
++ mylog(LOG_DEBUG, "DNS: getting A RR for %s",
+ mxp->name);
+ make_query(qrp, T_A);
+ }
+ #else
+ if (cnf.debug & DEBUG_DNS)
+- log(LOG_DEBUG, "DNS: getting A RR for %s",
++ mylog(LOG_DEBUG, "DNS: getting A RR for %s",
+ mxp->name);
+ make_query(qrp, T_A);
+ if (cnf.v4v6fallback)
+@@ -1653,7 +1664,7 @@
+ continue;
+
+ if (cnf.debug & DEBUG_DNS)
+- log(LOG_DEBUG, "getting MX for %s", dp->name);
++ mylog(LOG_DEBUG, "getting MX for %s", dp->name);
+
+ offset = 0;
+ needfindaddr = 0;
+@@ -1701,15 +1712,15 @@
+ {
+ struct mx *mxp;
+
+- log(LOG_DEBUG, "final MX list for %s", dp->name);
++ mylog(LOG_DEBUG, "final MX list for %s", dp->name);
+ mxp = dp->firstmx;
+ if (mxp == NULL)
+ {
+- log(LOG_DEBUG, " NO MX!");
++ mylog(LOG_DEBUG, " NO MX!");
+ }
+ while (mxp != NULL)
+ {
+- log(LOG_DEBUG, " %s(%d, %d)", mxp->name,
++ mylog(LOG_DEBUG, " %s(%d, %d)", mxp->name,
+ mxp->pref, mxp->weight);
+ mxp = mxp->next;
+ }
+@@ -1733,12 +1744,12 @@
+ int found = 0;
+
+ if (cnf.debug & DEBUG_DNS)
+- log(LOG_DEBUG, "protocol gateway checking for %s",
++ mylog(LOG_DEBUG, "protocol gateway checking for %s",
+ dp->name);
+ for (mxp = dp->firstmx; mxp != NULL; mxp = mxp->next)
+ {
+ if (cnf.debug & DEBUG_DNS)
+- log(LOG_DEBUG, "checking MX: %s", mxp->name);
++ mylog(LOG_DEBUG, "checking MX: %s", mxp->name);
+ if (mxp->host == NULL)
+ {
+ /* no hosts, try next MX */
+@@ -1750,7 +1761,7 @@
+ {
+ /*
+ if (cnf.debug & DEBUG_DNS)
+- log(LOG_DEBUG, "proto: %d",
++ mylog(LOG_DEBUG, "proto: %d",
+ addrp->domain);
+ */
+ #ifdef INET6
+@@ -1763,10 +1774,9 @@
+ #endif
+ {
+ struct mx *gwmxp;
+- static struct mx* newmx();
+
+ if (cnf.debug & DEBUG_DNS)
+- log(LOG_DEBUG, "setting protocol gateway as first MX");
++ mylog(LOG_DEBUG, "setting protocol gateway as first MX");
+ if ((gwmxp = newmx(cnf.pgateway,
+ -2, 0, dp, 0))
+ == NULL)
+@@ -1817,7 +1827,7 @@
+ if (mxpp == NULL)
+ {
+ if (cnf.debug & DEBUG_DNS)
+- log(LOG_DEBUG, "linking MX %s(%d) at the top",
++ mylog(LOG_DEBUG, "linking MX %s(%d) at the top",
+ newmxp->name, newmxp->pref);
+
+ domp->firstmx = newmxp;
+@@ -1825,7 +1835,7 @@
+ else
+ {
+ if (cnf.debug & DEBUG_DNS)
+- log(LOG_DEBUG, "linking MX %s(%d) after MX %s(%d)",
++ mylog(LOG_DEBUG, "linking MX %s(%d) after MX %s(%d)",
+ newmxp->name, newmxp->pref,
+ mxpp->name, mxpp->pref);
+
+@@ -1856,14 +1866,14 @@
+ {
+ /* already registered, drop lower one */
+ if (cnf.debug & DEBUG_DNS)
+- log(LOG_DEBUG, "duplicated MX %s(%d) found",
++ mylog(LOG_DEBUG, "duplicated MX %s(%d) found",
+ mxp->name, mxp->pref);
+
+ if (mxp->pref > pref
+ || (mxp->pref == pref && mxp->weight > weight))
+ {
+ if (cnf.debug & DEBUG_DNS)
+- log(LOG_DEBUG, "remove it and reuse");
++ mylog(LOG_DEBUG, "remove it and reuse");
+
+ if (mxp == dp->firstmx)
+ dp->firstmx = mxp->next;
+@@ -1873,7 +1883,7 @@
+ else
+ {
+ if (cnf.debug & DEBUG_DNS)
+- log(LOG_DEBUG, "leave it and ignore newer");
++ mylog(LOG_DEBUG, "leave it and ignore newer");
+
+ return mxp; /* do nothing */
+ }
+@@ -1885,7 +1895,7 @@
+ mxp = (struct mx*)MALLOC(sizeof(struct mx));
+ if (mxp == NULL)
+ {
+- log(LOG_NOTICE, "out of memory (newmx)");
++ mylog(LOG_NOTICE, "out of memory (newmx)");
+ return NULL;
+ }
+ bzero(mxp, sizeof(struct mx));
+@@ -1922,7 +1932,7 @@
+ char msgbuf[MAXLINE], *mxname;
+
+ if (cnf.debug & DEBUG_DNS)
+- log(LOG_DEBUG, "getmxrr(%s, %s) offset=%d opt=%x",
++ mylog(LOG_DEBUG, "getmxrr(%s, %s) offset=%d opt=%x",
+ name, dp->name, offset, opt);
+
+ if (!query_mx)
+@@ -1961,7 +1971,7 @@
+ if (mxp == NULL)
+ return -1;
+ addinetaddress(mxp, AF_INET, sizeof(nsin.in.sin_addr),
+- &nsin.in.sin_addr);
++ (u_char *)&nsin.in.sin_addr);
+ }
+ #ifdef INET6
+ else if (inet_pton(INET6, name + 1, &nsin.in6.sin6_addr) > 0)
+@@ -1973,7 +1983,7 @@
+ return -1;
+ addinetaddress(mxp, AF_INET6,
+ sizeof(nsin.in6.sin6_addr),
+- &nsin.in6.sin6_addr);
++ (u_char *)&nsin.in6.sin6_addr);
+ }
+ #endif
+ else
+@@ -1999,7 +2009,7 @@
+ qrp = qrp->cname;
+
+ if (cnf.debug & DEBUG_DNS && cnamechain > 0)
+- log(LOG_DEBUG, "CNAME traced: %s", qrp->name);
++ mylog(LOG_DEBUG, "CNAME traced: %s", qrp->name);
+
+ if (cnamechain >= CNAMELOOPMAX)
+ {
+@@ -2009,7 +2019,7 @@
+ }
+
+ if (cnf.debug & DEBUG_DNS)
+- log(LOG_DEBUG, "%s: timeout=%x noex=%x got=%x",
++ mylog(LOG_DEBUG, "%s: timeout=%x noex=%x got=%x",
+ qrp->name, qrp->rr_timeout, qrp->rr_noex, qrp->rr_got);
+
+ if (qrp == NULL || qrp->rr_timeout & RR_MX) {
+@@ -2044,7 +2054,7 @@
+ return -1;
+ }
+ else
+- log(LOG_INFO, "No MX/A on %s for %s; ignored",
++ mylog(LOG_INFO, "No MX/A on %s for %s; ignored",
+ name, dp->name);
+ return 0;
+ }
+@@ -2089,12 +2099,12 @@
+ mxname = cmxp->name;
+ #if 0
+ if (cnf.debug & DEBUG_DNS)
+- log(LOG_DEBUG, "mx=%s pref=%d", mxname, cmxp->pref);
++ mylog(LOG_DEBUG, "mx=%s pref=%d", mxname, cmxp->pref);
+ #endif
+ if (isamyalias(mxname))
+ {
+ if (cnf.debug & DEBUG_DNS)
+- log(LOG_DEBUG, "found localhost (%s) in MX list",
++ mylog(LOG_DEBUG, "found localhost (%s) in MX list",
+ mxname);
+ if (!seenlocal || cmxp->pref < localpref)
+ localpref = cmxp->pref;
+@@ -2136,13 +2146,13 @@
+ /* already registered, drop lower one */
+
+ if (cnf.debug & DEBUG_DNS)
+- log(LOG_DEBUG, "duplicated MX %s(%d) found",
++ mylog(LOG_DEBUG, "duplicated MX %s(%d) found",
+ mxp->name, mxp->pref);
+
+ if (mxp->pref > offset + cmxp->pref)
+ {
+ if (cnf.debug & DEBUG_DNS)
+- log(LOG_DEBUG, "remove it for re-link");
++ mylog(LOG_DEBUG, "remove it for re-link");
+ mxp->pref = offset + cmxp->pref;
+ if (mxp == dp->firstmx)
+ dp->firstmx = mxp->next;
+@@ -2220,6 +2230,7 @@
+ return 0;
+ }
+
++static void
+ show_query(t, b, e)
+ u_char *t, *b, *e;
+ {
+@@ -2246,13 +2257,13 @@
+ ap += n;
+ if (ap + INT16SZ*2 > eom)
+ {
+- /* log(LOG_NOTICE, "corrupt DNS answer"); */
++ /* mylog(LOG_NOTICE, "corrupt DNS answer"); */
+ return;
+ }
+ GETSHORT(class, ap);
+ GETSHORT(type, ap);
+ if (cnf.debug & DEBUG_DNS)
+- log(LOG_DEBUG, "%s: %s(%d,%d), rcode=%d",
++ mylog(LOG_DEBUG, "%s: %s(%d,%d), rcode=%d",
+ t, nbuf, class, type, ntohs(hp->rcode));
+ }
+
+@@ -2267,7 +2278,7 @@
+ ap += n;
+ if (ap + INT16SZ*3 + INT32SZ > eom)
+ {
+- /* log(LOG_NOTICE, "corrupt DNS answer"); */
++ /* mylog(LOG_NOTICE, "corrupt DNS answer"); */
+ return;
+ }
+ GETSHORT(class, ap);
+@@ -2276,13 +2287,13 @@
+ GETSHORT(n, ap);
+ if (ap + n > eom)
+ {
+- /* log(LOG_NOTICE, "corrupt DNS answer"); */
++ /* mylog(LOG_NOTICE, "corrupt DNS answer"); */
+ return;
+ }
+ if (class != C_IN)
+ {
+ if (cnf.debug & DEBUG_DNS)
+- log(LOG_DEBUG, "DNS: unexpected class %d in an", class);
++ mylog(LOG_DEBUG, "DNS: unexpected class %d in an", class);
+ ap += n;
+ continue;
+ }
+@@ -2293,20 +2304,20 @@
+ break;
+ ap += n;
+ if (cnf.debug & DEBUG_DNS)
+- log(LOG_DEBUG, "got MX pref=%d,host=(%s)", pref, nbuf);
++ mylog(LOG_DEBUG, "got MX pref=%d,host=(%s)", pref, nbuf);
+ #if 0 /* for debug */
+ hep = gethostbyname(nbuf);
+ if (hep == NULL) {
+ if (cnf.debug & DEBUG_DNS)
+- log(LOG_DEBUG, "get A -- h_errno=%d", h_errno);
++ mylog(LOG_DEBUG, "get A -- h_errno=%d", h_errno);
+ } else {
+ if (cnf.debug & DEBUG_DNS)
+- log(LOG_DEBUG, "get A -- OK");
++ mylog(LOG_DEBUG, "get A -- OK");
+ }
+ #endif
+ } else {
+ ap += n;
+- /* log(LOG_DEBUG, "unexpected answer type: %d", type); */
++ /* mylog(LOG_DEBUG, "unexpected answer type: %d", type); */
+ }
+ }
+ }
diff --git a/mail/smtpfeed/patches/patch-af b/mail/smtpfeed/patches/patch-af
new file mode 100644
index 00000000000..03f4394a1f9
--- /dev/null
+++ b/mail/smtpfeed/patches/patch-af
@@ -0,0 +1,99 @@
+$NetBSD: patch-af,v 1.1 2006/07/23 15:00:41 taca Exp $
+
+--- extern.h.orig 2002-01-20 23:20:46.000000000 +0900
++++ extern.h 2006-07-18 13:14:05.000000000 +0900
+@@ -37,52 +37,55 @@
+ */
+
+-char *newstr();
+-void strlower();
+-char *parse_address();
+-void setsender();
+-int addrecipient();
+-void addalias();
+-int getmxrr();
+-void init_log();
+-int addmyalias();
+-int isamyalias();
+-void lmtp();
+-void lmtp_data_response();
+-void deliver();
+-int pregetmx();
+-int getmxlist();
+-void finalstatus();
+-int addinetaddress();
+-void set_timeout();
+-void resource_usage();
++#ifdef __STDC__
++#define P(c) c
++#else
++#define P(c)
++#endif
++
++char *newstr P((char *));
++void strlower P((char *));
++char *parse_address P((char *, char **, char **, char **));
++int addrecipient P((char *, char *, char *, char *));
++int getmxrr P((char *, struct domain *, int, int, int, long));
++void init_log P((void));
++int addmyalias P((char *));
++int isamyalias P((char *));
++void lmtp P((void));
++void lmtp_data_response P((int));
++void deliver P((void));
++int pregetmx P((struct domain *));
++int getmxlist P((struct domain *));
++void finalstatus P((void));
++int addinetaddress P((struct mx *, int, int, u_char *));
++void set_timeout P((char *));
++void resource_usage P((char *));
+ struct dns_stat *hash_query_lookup();
+-struct domain *hash_domain_lookup();
+-struct host *hash_host_lookup();
+-struct host_map *hash_map_lookup();
+-int host_map_load();
+-char **host_map_lookup();
+-int mxrand();
+-int hash_domain_rcpts_lookup();
+-void hash_domain_rcpts_enter();
+-int isnumeric();
+-int rcpts_def_load();
++struct domain *hash_domain_lookup P((char *, struct domain ***));
++struct host *hash_host_lookup P((char *, struct host ***));
++struct host_map *hash_map_lookup P((char *, struct host_map ***));
++int host_map_load P((void));
++char **host_map_lookup P((char *));
++int mxrand P((char *, char *));
++int hash_domain_rcpts_lookup P((char *));
++void hash_domain_rcpts_enter P((char *, struct domain_rcpts *));
++int isnumeric P((char *));
++int rcpts_def_load P((void));
++
++#if SPT_TYPE != SPT_BUILTIN
++void initsetproctitle P((int, char **, char **));
++void setproctitle P((const char *, ...));
++#endif
+
+-void initsetproctitle();
+ #ifdef JAZ_HACK2
+ void show_cache();
+ #endif
+-# ifdef __STDC__
+-void log(int, const char *, ...);
+-void setproctitle(const char *, ...);
+-# else
+-void log();
+-void setproctitle();
+-# endif
++
++void mylog P((int, const char *, ...));
+
+ # if !HAVE_STRERROR
+-char *strerror();
++char *strerror P((int));
+ # endif
+ # if !HAVE_SNPRINTF
+-int snprintf();
++int snprintf P((char *, size_t, const char *, ...));
+ # endif
+
diff --git a/mail/smtpfeed/patches/patch-ag b/mail/smtpfeed/patches/patch-ag
new file mode 100644
index 00000000000..0d5364abf3e
--- /dev/null
+++ b/mail/smtpfeed/patches/patch-ag
@@ -0,0 +1,100 @@
+$NetBSD: patch-ag,v 1.1 2006/07/23 15:00:41 taca Exp $
+
+--- lmtp.c.orig 2002-01-20 23:19:42.000000000 +0900
++++ lmtp.c
+@@ -67,8 +67,22 @@
+ static int state;
+ static int save_rcpts_trans;
+
++static void sig_quit P((int));
++static void lmtp_greeting P((void));
++static int lmtp_lhlo P((char *));
++static int lmtp_mail P((char *));
++static int lmtp_rcpt P((char *));
++static int lmtp_data P((char *));
++static int lmtp_quit P((void));
++static int lmtp_rset P((void));
++static int lmtp_noop P((void));
++static int lmtp_help P((char *));
++static int lmtp_nocmd P((void));
++static int read_message P((void));
++
+ static void
+-sig_quit()
++sig_quit(dummy)
++ int dummy;
+ {
+ exit(EX_TEMPFAIL);
+ }
+@@ -116,7 +130,7 @@
+ if (strcasecmp(lmtpbuf, cmdp->cmd) == 0) {
+
+ if (cnf.debug & DEBUG_LMTP)
+- log(LOG_DEBUG, "LMTP input: %s %s", lmtpbuf,
++ mylog(LOG_DEBUG, "LMTP input: %s %s", lmtpbuf,
+ (p == NULL)?"":p);
+ ret = (*cmdp->func)(p);
+ fflush (LmtpOut);
+@@ -242,7 +256,7 @@
+ return 0;
+ }
+ if (cnf.debug & DEBUG_LMTP)
+- log(LOG_DEBUG, "MAIL FROM: %s size=%s body=%s envid=%s ret=%s", addr,
++ mylog(LOG_DEBUG, "MAIL FROM: %s size=%s body=%s envid=%s ret=%s", addr,
+ (env.size == NULL)?"":env.size, (env.body == NULL)?"":env.body,
+ (env.envid == NULL)?"":env.envid, (env.ret == NULL)?"":env.ret);
+ fprintf (LmtpOut, "250 %s Sender ok\n", addr);
+@@ -358,7 +372,7 @@
+ deliver(); /* delivery with SMTP */
+ lmtp_data_response(1);
+
+- log(LOG_INFO, "nquery=%d/%d nconnect=%d/%d ntimeout=%d ntrans=%d/%d nsent=%d/%d ndeferred=%d nerror=%d+%d dnsmaxcq=%d maxsock=%d tmx=%d tdelivery=%d/%d maxdelay=%d tdelay=%d tsendmail=%d dns_i/o=%d/%d smtp_i/o=%d/%d mem=%d",
++ mylog(LOG_INFO, "nquery=%d/%d nconnect=%d/%d ntimeout=%d ntrans=%d/%d nsent=%d/%d ndeferred=%d nerror=%d+%d dnsmaxcq=%d maxsock=%d tmx=%d tdelivery=%d/%d maxdelay=%d tdelay=%d tsendmail=%d dns_i/o=%d/%d smtp_i/o=%d/%d mem=%d",
+ sti.nanswers, sti.nqueries, sti.nquitok, sti.nconnect,
+ sti.ntimeout, sti.noktrans, sti.ntrans, sti.nsent, sti.nrcpt,
+ sti.ndeferred, sti.nnsfailed, sti.nsmtpfailed,
+@@ -521,7 +535,7 @@
+ if (strstr(rcptp->response, rcptp->address) == NULL)
+ {
+ if (cnf.debug & DEBUG_LMTP)
+- log(LOG_DEBUG, "%d %s... %s",
++ mylog(LOG_DEBUG, "%d %s... %s",
+ rcptp->result, rcptp->address,
+ rcptp->response);
+ fprintf (LmtpOut, "%d %s... %s\n",
+@@ -529,7 +543,7 @@
+ rcptp->response);
+ } else {
+ if (cnf.debug & DEBUG_LMTP)
+- log(LOG_DEBUG, "%d %s",
++ mylog(LOG_DEBUG, "%d %s",
+ rcptp->result, rcptp->response);
+ fprintf (LmtpOut, "%d %s\n",
+ rcptp->result, rcptp->response);
+@@ -542,7 +556,7 @@
+
+ sti.ndeferred++;
+ if (cnf.debug & DEBUG_LMTP)
+- log(LOG_DEBUG, "%d %s... %s",
++ mylog(LOG_DEBUG, "%d %s... %s",
+ SMTP_TEMPFAIL(51), rcptp->address, msg);
+ fprintf (LmtpOut, "%d %s... %s\n",
+ SMTP_TEMPFAIL(51), rcptp->address, msg);
+@@ -709,7 +723,7 @@
+ {
+ msgp->data = (char *)MALLOC(CHUNKSIZE);
+ if (cnf.debug & DEBUG_LMTP)
+- log(LOG_DEBUG, "new chunk %d", ++chunk_num);
++ mylog(LOG_DEBUG, "new chunk %d", ++chunk_num);
+ if (msgp->data == NULL)
+ {
+ outofmemory = 1;
+@@ -725,7 +739,7 @@
+
+ if (outofmemory)
+ {
+- log(LOG_NOTICE, "out of memory (LMTP data buffer allocation)");
++ mylog(LOG_NOTICE, "out of memory (LMTP data buffer allocation)");
+ return -1;
+ }
+ return 0;
diff --git a/mail/smtpfeed/patches/patch-ah b/mail/smtpfeed/patches/patch-ah
new file mode 100644
index 00000000000..750725a6f5f
--- /dev/null
+++ b/mail/smtpfeed/patches/patch-ah
@@ -0,0 +1,25 @@
+$NetBSD: patch-ah,v 1.1 2006/07/23 15:00:41 taca Exp $
+
+--- log.c.orig 2002-01-20 23:19:43.000000000 +0900
++++ log.c
+@@ -73,7 +73,7 @@
+ {
+ syslog_fd = fd_before;
+ if (cnf.debug & DEBUG_TRANS)
+- log(LOG_DEBUG, "file descriptor for syslog: %d", syslog_fd);
++ mylog(LOG_DEBUG, "file descriptor for syslog: %d", syslog_fd);
+ }
+ #endif
+ }
+@@ -85,9 +85,9 @@
+
+ void
+ # ifdef __STDC__
+-log(int level, const char *fmt, ...)
++mylog(int level, const char *fmt, ...)
+ # else
+-log(level, fmt, va_alist)
++mylog(level, fmt, va_alist)
+ int level;
+ char *fmt;
+ va_dcl
diff --git a/mail/smtpfeed/patches/patch-ai b/mail/smtpfeed/patches/patch-ai
new file mode 100644
index 00000000000..768f8b55c25
--- /dev/null
+++ b/mail/smtpfeed/patches/patch-ai
@@ -0,0 +1,136 @@
+$NetBSD: patch-ai,v 1.1 2006/07/23 15:00:41 taca Exp $
+
+--- main.c.orig 2002-03-15 11:12:59.000000000 +0900
++++ main.c
+@@ -46,7 +46,10 @@
+ # define MAIN 1
+ # include "extern.h"
+
+-void
++static void usage P((char *));
++static void sig_quit P((int));
++
++static void
+ usage(progname)
+ char *progname;
+ {
+@@ -96,7 +99,8 @@
+ }
+
+ static void
+-sig_quit()
++sig_quit(dummy)
++ int dummy;
+ {
+ exit(EX_TEMPFAIL);
+ }
+@@ -155,7 +159,9 @@
+ else
+ cnf.dst_port = 25;
+
++#if SPT_TYPE != SPT_BUILTIN
+ initsetproctitle(argc, argv, envp);
++#endif
+
+ opterr = 0;
+ #ifdef INET6
+@@ -455,14 +461,14 @@
+ switch (peername.in.sin_family)
+ {
+ case AF_INET:
+- log(LOG_INFO, "connected from %s",
++ mylog(LOG_INFO, "connected from %s",
+ inet_ntoa(peername.in.sin_addr));
+ break;
+ #ifdef INET6
+ case AF_INET6:
+ inet_ntop(AF_INET6, &peername.in6.sin6_addr,
+ buf, sizeof(buf));
+- log(LOG_INFO, "connected from %s", buf);
++ mylog(LOG_INFO, "connected from %s", buf);
+ break;
+ #endif
+ }
+@@ -470,7 +476,7 @@
+
+ if (cnf.sd_max > MAX_SOCK)
+ {
+- log(LOG_INFO, "cnf.sd_max should not be greater than %d, recompile smtpfeed with greater FD_SETSIZE", MAX_SOCK);
++ mylog(LOG_INFO, "cnf.sd_max should not be greater than %d, recompile smtpfeed with greater FD_SETSIZE", MAX_SOCK);
+ cnf.sd_max = MAX_SOCK;
+ }
+ #ifdef RLIMIT_NOFILE
+@@ -478,14 +484,14 @@
+ {
+ if (limit.rlim_max - 1 < cnf.sd_max)
+ {
+- log(LOG_INFO, "cnf.sd_max should be %d",
++ mylog(LOG_INFO, "cnf.sd_max should be %d",
+ limit.rlim_max - 1);
+ cnf.sd_max = limit.rlim_max - 1;
+ }
+ limit.rlim_cur = limit.rlim_max; /* make soft limit the max */
+ if (setrlimit(RLIMIT_NOFILE, &limit) == -1)
+ {
+- log(LOG_NOTICE, "can't set max sd to %d",
++ mylog(LOG_NOTICE, "can't set max sd to %d",
+ limit.rlim_cur);
+ }
+ }
+@@ -494,18 +500,18 @@
+ #if SHOW_UID
+ uid = geteuid();
+ #ifdef INET6
+- log(LOG_DEBUG, "%s (with IPv6) started (uid %d with %d descriptors)",
++ mylog(LOG_DEBUG, "%s (with IPv6) started (uid %d with %d descriptors)",
+ version, uid, cnf.sd_max);
+ #else
+- log(LOG_DEBUG, "%s started (uid %d with %d descriptors)",
++ mylog(LOG_DEBUG, "%s started (uid %d with %d descriptors)",
+ version, uid, cnf.sd_max);
+ #endif
+ #else
+ #ifdef INET6
+- log(LOG_DEBUG, "%s (with IPv6) started (with %d descriptors)",
++ mylog(LOG_DEBUG, "%s (with IPv6) started (with %d descriptors)",
+ version, cnf.sd_max);
+ #else
+- log(LOG_DEBUG, "%s started (with %d descriptors)",
++ mylog(LOG_DEBUG, "%s started (with %d descriptors)",
+ version, cnf.sd_max);
+ #endif
+ #endif
+@@ -551,7 +557,7 @@
+ }
+ }
+ if (strchr(myname, '.') == NULL)
+- log(LOG_INFO, "hostname (%s) is not a FQDN", myname);
++ mylog(LOG_INFO, "hostname (%s) is not a FQDN", myname);
+ }
+ if (addmyalias(myname) < 0)
+ {
+@@ -559,13 +565,13 @@
+ }
+ if (cnf.fallbackmx != NULL && isamyalias(cnf.fallbackmx))
+ {
+- log(LOG_INFO, "ignoring fallbackmx (%s)", cnf.fallbackmx);
++ mylog(LOG_INFO, "ignoring fallbackmx (%s)", cnf.fallbackmx);
+ free(cnf.fallbackmx);
+ cnf.fallbackmx = NULL;
+ }
+ if (cnf.pgateway != NULL && isamyalias(cnf.pgateway))
+ {
+- log(LOG_INFO, "ignoring protocol gateway (%s)", cnf.pgateway);
++ mylog(LOG_INFO, "ignoring protocol gateway (%s)", cnf.pgateway);
+ free(cnf.pgateway);
+ cnf.pgateway = NULL;
+ }
+@@ -574,7 +580,7 @@
+ {
+ if(rcpts_def_load() < 0)
+ {
+- log(LOG_INFO, "ignoring R option (%s)", cnf.rcpts_def);
++ mylog(LOG_INFO, "ignoring R option (%s)", cnf.rcpts_def);
+ free(cnf.rcpts_def);
+ cnf.rcpts_def = NULL;
+ }
diff --git a/mail/smtpfeed/patches/patch-aj b/mail/smtpfeed/patches/patch-aj
new file mode 100644
index 00000000000..11156f48047
--- /dev/null
+++ b/mail/smtpfeed/patches/patch-aj
@@ -0,0 +1,31 @@
+$NetBSD: patch-aj,v 1.1 2006/07/23 15:00:41 taca Exp $
+
+--- mxrand.c.orig 2002-01-20 23:19:43.000000000 +0900
++++ mxrand.c
+@@ -75,6 +75,8 @@
+
+ # include "common.h"
+
++static time_t curtime P((void));
++
+ /*
+ ** CURTIME -- return current time.
+ **
+@@ -88,7 +90,7 @@
+ ** none.
+ */
+
+-time_t
++static time_t
+ curtime()
+ {
+ auto time_t t;
+@@ -117,7 +119,7 @@
+
+ int
+ mxrand(host1, host2)
+- register char *host1, *host2;
++ char *host1, *host2;
+ {
+ int hfunc;
+ static unsigned int seed;
diff --git a/mail/smtpfeed/patches/patch-ak b/mail/smtpfeed/patches/patch-ak
new file mode 100644
index 00000000000..50e169a51e6
--- /dev/null
+++ b/mail/smtpfeed/patches/patch-ak
@@ -0,0 +1,23 @@
+$NetBSD: patch-ak,v 1.1 2006/07/23 15:00:41 taca Exp $
+
+--- proctitle.c.orig 2002-01-20 23:19:43.000000000 +0900
++++ proctitle.c
+@@ -156,6 +156,8 @@
+
+ #endif /* SPT_TYPE != SPT_NONE && SPT_TYPE != SPT_BUILTIN */
+
++#if SPT_TYPE != SPT_BUILTIN
++
+ /*
+ ** Pointers for setproctitle.
+ ** This allows "ps" listings to give more useful information.
+@@ -211,9 +213,6 @@
+ LastArgv = argv[argc - 1] + strlen(argv[argc - 1]);
+ }
+
+-#if SPT_TYPE != SPT_BUILTIN
+-
+-
+ /*VARARGS1*/
+ void
+ # ifdef __STDC__
diff --git a/mail/smtpfeed/patches/patch-al b/mail/smtpfeed/patches/patch-al
new file mode 100644
index 00000000000..83bcbc50c5d
--- /dev/null
+++ b/mail/smtpfeed/patches/patch-al
@@ -0,0 +1,967 @@
+$NetBSD: patch-al,v 1.1 2006/07/23 15:00:41 taca Exp $
+
+--- smtp.c.orig 2002-02-23 19:20:05.000000000 +0900
++++ smtp.c
+@@ -49,32 +49,42 @@
+ static int FirstRead, FirstWrite;
+ static int Terminate, NewTransCheck, NeedTrimDomain, MoreFreeSlot;
+
++static void sig_alarm P((int));
++static void sig_int P((int));
++static void sig_hup P((int));
++static void sig_term P((int));
++static void smtp P((void));
++
+ static void
+-sig_alarm()
++sig_alarm(dummy)
++ int dummy;
+ {
+ errno = ETIMEDOUT;
+ if (cnf.debug & DEBUG_EVENT)
+- log(LOG_DEBUG, "alarm clock");
++ mylog(LOG_DEBUG, "alarm clock");
+ }
+
+ static void
+-sig_int()
++sig_int(dummy)
++ int dummy;
+ {
+- log(LOG_INFO, "SIGINT received: internal states dumped");
++ mylog(LOG_INFO, "SIGINT received: internal states dumped");
+ dump_internal();
+ }
+
+ static void
+-sig_hup()
++sig_hup(dummy)
++ int dummy;
+ {
+- log(LOG_INFO, "SIGHUP received: graceful termination");
++ mylog(LOG_INFO, "SIGHUP received: graceful termination");
+ forced_terminate();
+ }
+
+ static void
+-sig_term()
++sig_term(dummy)
++ int dummy;
+ {
+- log(LOG_INFO, "SIGTERM received: semi graceful termination");
++ mylog(LOG_INFO, "SIGTERM received: semi graceful termination");
+ markstatus(env.rcpt_list, SMTP_TEMPFAIL(51),
+ "Aborted by INT signal", 1);
+ longjmp(jmp_env, 1);
+@@ -87,10 +97,10 @@
+ int s;
+
+ while((s = dup(0)) < 253);
+- log(LOG_DEBUG, "descriptor reserved till %d", s);
++ mylog(LOG_DEBUG, "descriptor reserved till %d", s);
+ #endif
+
+- log(LOG_INFO, "from=%s size=%d nrcpt=%d msgid=%s",
++ mylog(LOG_INFO, "from=%s size=%d nrcpt=%d msgid=%s",
+ env.sender, env.realsize, sti.nrcpt,
+ (env.mid == NULL)?"none":env.mid);
+
+@@ -99,7 +109,7 @@
+ FILE *fp;
+
+ if (cnf.debug & DEBUG_TRANS)
+- log(LOG_DEBUG, "searching sender address %s in %s",
++ mylog(LOG_DEBUG, "searching sender address %s in %s",
+ env.sender, cnf.src_mod_path);
+ if ((fp = fopen(cnf.src_mod_path, "r")) == NULL)
+ {
+@@ -127,7 +137,7 @@
+ fclose(fp);
+ if (found)
+ {
+- log(LOG_INFO,
++ mylog(LOG_INFO,
+ "recipients/transaction changed to 1");
+ cnf.rcpts_trans == 1;
+ }
+@@ -207,15 +217,53 @@
+ resource_usage("finalstatus done");
+ }
+
+-static int smtp_connected(), smtp_greeted(), smtp_flush();
+-static int smtp_helo_r(), smtp_helo_r();
+-static int smtp_mail_r(), smtp_rcpt_r(), smtp_rcpt_s();
+-static int smtp_data_r(), smtp_data_body(), smtp_data_t();
+-static int smtp_rset_r(), smtp_quit_r();
++static int smtp_connected P((struct connection *));
++static int smtp_flush P((struct connection *));
++static int smtp_greeted P((struct connection *));
++static int smtp_helo_r P((struct connection *));
++static int smtp_mail_r P((struct connection *));
++static int smtp_rcpt_r P((struct connection *));
++static int smtp_data_r P((struct connection *));
++static int smtp_data_body P((struct connection *));
++static int smtp_data_t P((struct connection *));
++static int smtp_rset_r P((struct connection *));
++static int smtp_quit_r P((struct connection *));
++
++static int smtp_helo_s P((struct connection *));
++static int smtp_mail_s P((struct connection *));
++static int smtp_rcpt_s P((struct connection *));
++static int smtp_data_s P((struct connection *));
++static int smtp_rset_s P((struct connection *));
++static int smtp_quit_s P((struct connection *));
++
++static int new_transaction P((void));
++static void process_connection P((fd_set *, fd_set *, int, int));
++static void markstatus P((struct recipient *, int, char *, int));
++static struct connection *open_transaction P((struct recipient *));
++static void close_transaction P((struct connection *, int));
++static void trim_rcpts P((struct domain *));
++static int trim_domain P((void));
++static void forced_terminate P((void));
++
++static int smtp_connect P((struct connection *));
++void smtp_close P((int));
++static int smtp_read P((struct connection *, char *, int, int *));
++static int smtp_write P((struct connection *, char *, int, int));
++static int smtp_get_reply P((struct connection *,
++ void (*) P((struct connection *, char *)),
++ char *, int, int *));
++static int smtp_send_command P((struct connection *, char *, int, int));
++static void esmtp_check P((struct connection *, char *));
++static void ehlo_opt P((struct connection *, char *));
++static char *skipaddr P((char *, char *addr));
++static int may_be_reused P((struct connection *));
++static int smtp_timeout P((struct connection *));
++static void dump_internal P((void));
++static char *smtpstrerror P((int));
+
+ static struct {
+- int (*recv)();
+- int (*send)();
++ int (*recv) P((struct connection *));
++ int (*send) P((struct connection *));
+ time_t tout;
+ char *name;
+ } state_tbl[] = {
+@@ -356,13 +404,13 @@
+ if (rcptp->domain == NULL)
+ {
+ rcptp->stat = RCPT_DONE;
+- log(LOG_NOTICE, "no domain for %s", rcptp->address);
++ mylog(LOG_NOTICE, "no domain for %s", rcptp->address);
+ continue;
+ }
+ if (rcptp->domain->firstmx == NULL)
+ {
+ rcptp->stat = RCPT_DONE;
+- log(LOG_NOTICE, "no MX for %s", rcptp->address);
++ mylog(LOG_NOTICE, "no MX for %s", rcptp->address);
+ continue;
+ }
+ }
+@@ -375,7 +423,7 @@
+ if (domp->rcpt_top == NULL)
+ continue;
+ if (cnf.debug & DEBUG_TRANS)
+- log(LOG_DEBUG, "pick up domain: %s", domp->name);
++ mylog(LOG_DEBUG, "pick up domain: %s", domp->name);
+ if (wdomp == NULL)
+ env.work_domain = domp;
+ else
+@@ -395,7 +443,7 @@
+ {
+ /* all recipients had been processed */
+ if (cnf.debug & DEBUG_CONNECT)
+- log(LOG_DEBUG, "closing all sockets");
++ mylog(LOG_DEBUG, "closing all sockets");
+ all_done = 1;
+ for (i = 0; i < cnf.sd_max; i++)
+ {
+@@ -424,7 +472,7 @@
+ }
+
+ if (cnf.debug & DEBUG_TRANS)
+- log(LOG_DEBUG, "in_use=%d, max_sock=%d, min_sock=%d",
++ mylog(LOG_DEBUG, "in_use=%d, max_sock=%d, min_sock=%d",
+ in_use, max_sock, sti.minsock);
+
+ if (in_use > (max_sock - sti.minsock))
+@@ -439,7 +487,7 @@
+ if (connwork[i].host->state != STAT_SENT)
+ continue;
+ if (cnf.debug & DEBUG_CONNECT)
+- log(LOG_DEBUG, "%d/%d: closing idle socket",
++ mylog(LOG_DEBUG, "%d/%d: closing idle socket",
+ connwork[i].seq,
+ connwork[i].socket);
+ smtp_quit_s(&connwork[i]);
+@@ -458,7 +506,7 @@
+ if (!connwork[i].reuse)
+ break;
+ if (cnf.debug & DEBUG_CONNECT)
+- log(LOG_DEBUG, "%d/%d: closing idle socket",
++ mylog(LOG_DEBUG, "%d/%d: closing idle socket",
+ connwork[i].seq,
+ connwork[i].socket);
+ smtp_quit_s(&connwork[i]);
+@@ -479,7 +527,7 @@
+ }
+ #if 1
+ if (cnf.debug & DEBUG_TRANS)
+- log(LOG_DEBUG, "new transaction: trans=%d, sock=%d",
++ mylog(LOG_DEBUG, "new transaction: trans=%d, sock=%d",
+ num_trans, num_sock);
+ #endif
+ if (new_transaction() < 0)
+@@ -514,7 +562,7 @@
+ if (all_done && fds < 0)
+ {
+ if (cnf.debug & DEBUG_CONNECT)
+- log(LOG_DEBUG, "all sockets are closed");
++ mylog(LOG_DEBUG, "all sockets are closed");
+ #if 0
+ dump_internal();
+ #endif
+@@ -523,7 +571,7 @@
+
+ if (fds < 0) /* XXX */
+ {
+- log(LOG_INFO, "No active sockets");
++ mylog(LOG_INFO, "No active sockets");
+ if (bad_state++ > 5)
+ {
+ markstatus(env.rcpt_list, SMTP_TEMPFAIL(51),
+@@ -561,12 +609,12 @@
+ {
+ /* time up */
+ forced_terminate();
+- log(LOG_INFO, "total processing timed out (%d sec)",
++ mylog(LOG_INFO, "total processing timed out (%d sec)",
+ cnf.t_timeout);
+ }
+ if (rc < 0)
+ {
+- log(LOG_INFO, "select returns %d (fds=%d, errno=%d)",
++ mylog(LOG_INFO, "select returns %d (fds=%d, errno=%d)",
+ rc, fds, errno);
+ sleep(1);
+ }
+@@ -594,7 +642,7 @@
+ {
+ #if 1
+ if (cnf.debug & DEBUG_TRANS)
+- log(LOG_DEBUG, "checking domain: %s", domp->name);
++ mylog(LOG_DEBUG, "checking domain: %s", domp->name);
+ #endif
+ /* first time for the domain? */
+ #if 1
+@@ -615,7 +663,7 @@
+ || domp->curmx->host->addr == NULL))))
+ {
+ if (domp->curmx->host == NULL)
+- log(LOG_INFO, "skipping bad MX: %s for %s",
++ mylog(LOG_INFO, "skipping bad MX: %s for %s",
+ domp->curmx->name, domp->name);
+ else
+ {
+@@ -697,7 +745,7 @@
+ }
+ #if 1
+ if (cnf.debug & DEBUG_TRANS)
+- log(LOG_DEBUG, "no new transaction");
++ mylog(LOG_DEBUG, "no new transaction");
+ #endif
+ NewTransCheck = 0;
+ return -1; /* no new transaction */
+@@ -721,7 +769,7 @@
+
+ snprintf(msgbuf, sizeof(msgbuf),
+ "No address known for %s", conn->host->name);
+- log(LOG_INFO, msgbuf, conn->host->name);
++ mylog(LOG_INFO, msgbuf, conn->host->name);
+
+ rcode = SMTP_TEMPFAIL(52);
+ if (cnf.absentAok)
+@@ -798,7 +846,7 @@
+ /* timeout! */
+ sti.ntimeout++;
+ if (cnf.debug & DEBUG_CONNECT)
+- log(LOG_DEBUG, "%d/%d: timeout (%s)", conn->seq,
++ mylog(LOG_DEBUG, "%d/%d: timeout (%s)", conn->seq,
+ conn->socket, STATE(st));
+ if (st == STAT_DTERMSENT)
+ {
+@@ -814,7 +862,7 @@
+ if (FD_ISSET(conn->socket, w_fds))
+ {
+ if (cnf.debug & DEBUG_EVENT)
+- log(LOG_DEBUG, "%d/%d: writable (%s)",
++ mylog(LOG_DEBUG, "%d/%d: writable (%s)",
+ conn->seq, conn->socket, STATE(st));
+ if (state_tbl[st].send != NULL)
+ {
+@@ -825,14 +873,14 @@
+ if (conn->host == NULL)
+ {
+ if (cnf.debug & DEBUG_EVENT)
+- log(LOG_DEBUG, "%d/%d: state %s -> NULL",
++ mylog(LOG_DEBUG, "%d/%d: state %s -> NULL",
+ conn->seq, conn->socket, STATE(st));
+ }
+ else if (st != conn->host->state)
+ {
+ conn->host->time = Now;
+ if (cnf.debug & DEBUG_EVENT)
+- log(LOG_DEBUG, "%d/%d: state %s -> %s",
++ mylog(LOG_DEBUG, "%d/%d: state %s -> %s",
+ conn->seq, conn->socket, STATE(st),
+ STATE(conn->host->state));
+ }
+@@ -841,7 +889,7 @@
+ if (FD_ISSET(conn->socket, r_fds))
+ {
+ if (cnf.debug & DEBUG_EVENT)
+- log(LOG_DEBUG, "%d/%d: readable (%s)",
++ mylog(LOG_DEBUG, "%d/%d: readable (%s)",
+ conn->seq, conn->socket, STATE(st));
+ if (state_tbl[st].recv != NULL)
+ {
+@@ -852,14 +900,14 @@
+ if (conn->host == NULL)
+ {
+ if (cnf.debug & DEBUG_EVENT)
+- log(LOG_DEBUG, "%d/%d: state %s -> NULL",
++ mylog(LOG_DEBUG, "%d/%d: state %s -> NULL",
+ conn->seq, conn->socket, STATE(st));
+ }
+ else if (st != conn->host->state)
+ {
+ conn->host->time = Now;
+ if (cnf.debug & DEBUG_EVENT)
+- log(LOG_DEBUG, "%d/%d: state %s -> %s",
++ mylog(LOG_DEBUG, "%d/%d: state %s -> %s",
+ conn->seq, conn->socket, STATE(st),
+ STATE(conn->host->state));
+ }
+@@ -1041,7 +1089,7 @@
+ {
+ /* buffer may be full */
+ strcat(addrbuf+addrlen, ",(more...)");
+- log(LOG_INFO, "(%d+%d+%d+%d/%d) relay=%s to=%s proto=%s delay=%d code=%d (%s)",
++ mylog(LOG_INFO, "(%d+%d+%d+%d/%d) relay=%s to=%s proto=%s delay=%d code=%d (%s)",
+ sti.nsent, sti.ndeferred, sti.nnsfailed,
+ sti.nsmtpfailed, sti.nrcpt, hostname,
+ addrbuf, proto, delay, rcode,
+@@ -1066,7 +1114,7 @@
+ {
+ rcptp->stat = RCPT_RETRY;
+ if (cnf.debug & DEBUG_TRANS)
+- log(LOG_DEBUG, "tempfail; next avail: %s",
++ mylog(LOG_DEBUG, "tempfail; next avail: %s",
+ rcptp->address);
+ }
+ else
+@@ -1074,7 +1122,7 @@
+ sti.ndeferred++;
+ rcptp->stat = RCPT_DONE;
+ if (cnf.debug & DEBUG_TRANS)
+- log(LOG_DEBUG, "tempfail; done: %s",
++ mylog(LOG_DEBUG, "tempfail; done: %s",
+ rcptp->address);
+ }
+ }
+@@ -1103,7 +1151,7 @@
+ }
+ if (addrlen > 0)
+ {
+- log(LOG_INFO, "(%d+%d+%d+%d/%d) relay=%s to=%s proto=%s delay=%d code=%d (%s)",
++ mylog(LOG_INFO, "(%d+%d+%d+%d/%d) relay=%s to=%s proto=%s delay=%d code=%d (%s)",
+ sti.nsent, sti.ndeferred, sti.nnsfailed,
+ sti.nsmtpfailed, sti.nrcpt, hostname,
+ addrbuf, proto, delay, rcode,
+@@ -1143,7 +1191,7 @@
+
+ #if 1
+ if (cnf.debug & DEBUG_TRANS)
+- log(LOG_DEBUG, "num_trans=%d, num_sock=%d, max_sock=%d, min_sock=%d",
++ mylog(LOG_DEBUG, "num_trans=%d, num_sock=%d, max_sock=%d, min_sock=%d",
+ num_trans, num_sock, max_sock, sti.minsock);
+ #endif
+ if (num_trans > (max_sock - sti.minsock))
+@@ -1158,7 +1206,7 @@
+
+ #if 1
+ if (cnf.debug & DEBUG_TRANS)
+- log(LOG_DEBUG, "open transaction for %s", rcptp->address);
++ mylog(LOG_DEBUG, "open transaction for %s", rcptp->address);
+ #endif
+
+ if (rcptp->domain->curmx->host->state == STAT_SENT)
+@@ -1170,7 +1218,7 @@
+ break;
+ }
+ if (cnf.debug & DEBUG_TRANS)
+- log(LOG_DEBUG, "reusing: slot=%d", i);
++ mylog(LOG_DEBUG, "reusing: slot=%d", i);
+ }
+ else
+ {
+@@ -1190,7 +1238,7 @@
+ {
+ #if 0
+ if (cnf.debug & DEBUG_TRANS)
+- log(LOG_DEBUG, "no free slot");
++ mylog(LOG_DEBUG, "no free slot");
+ #endif
+ /* sleep (1); */
+ return NULL; /* XXX socket slot is full */
+@@ -1199,7 +1247,7 @@
+ sti.ntrans++;
+
+ if (cnf.debug & DEBUG_TRANS)
+- log(LOG_DEBUG, "%d/-: open transaction for %s, slot=%d",
++ mylog(LOG_DEBUG, "%d/-: open transaction for %s, slot=%d",
+ sti.ntrans, rcptp->address, i);
+
+ /* initialize transaction */
+@@ -1230,7 +1278,7 @@
+ domp = mxp->domain;
+ if (domp == NULL)
+ {
+- log(LOG_NOTICE, "Oops, mxp->domain for %s is NULL",
++ mylog(LOG_NOTICE, "Oops, mxp->domain for %s is NULL",
+ mxp->name);
+ goto next_domain;
+ }
+@@ -1253,7 +1301,7 @@
+ if (rcpts + 1 > cnf.rcpts_trans)
+ #else
+ if (cnf.debug & DEBUG_TRANS)
+- log(LOG_DEBUG, "check count of rcpts (domain:%s, max rcpts:%d, count:%d)",
++ mylog(LOG_DEBUG, "check count of rcpts (domain:%s, max rcpts:%d, count:%d)",
+ rcptp2->domain->name,
+ rcptp2->domain->rcpts,
+ rcpts);
+@@ -1266,7 +1314,7 @@
+ }
+ rcpts++;
+ if (cnf.debug & DEBUG_TRANS)
+- log(LOG_DEBUG, "%d/-: with %s",
++ mylog(LOG_DEBUG, "%d/-: with %s",
+ sti.ntrans, rcptp2->address);
+ rcptp2->stat = RCPT_WORK;
+ rcptp2->chain = NULL;
+@@ -1306,7 +1354,7 @@
+ #endif
+
+ if (cnf.debug & DEBUG_TRANS)
+- log(LOG_DEBUG, "%d/%d: close transaction", conn->seq, conn->socket);
++ mylog(LOG_DEBUG, "%d/%d: close transaction", conn->seq, conn->socket);
+
+ NewTransCheck = 1; /* do not skip new_transaction() */
+ env.work_dom_ptr = NULL; /* retry from the top of list */
+@@ -1369,7 +1417,7 @@
+ if (domp->curmx != NULL)
+ {
+ if (cnf.debug & DEBUG_TRANS)
+- log(LOG_DEBUG, "%d/-: switching to next MX: %s",
++ mylog(LOG_DEBUG, "%d/-: switching to next MX: %s",
+ conn->seq, domp->curmx->name);
+ }
+ }
+@@ -1410,7 +1458,7 @@
+ num_trans--;
+ }
+
+-void
++static void
+ trim_rcpts(domp)
+ struct domain *domp;
+ {
+@@ -1427,7 +1475,7 @@
+ {
+ /* remove recipient from working chain */
+ if (cnf.debug & DEBUG_TRANS)
+- log(LOG_DEBUG, "removing recipient: %s",
++ mylog(LOG_DEBUG, "removing recipient: %s",
+ rcptp->address);
+ if (rcptp == domp->rcpt_top)
+ {
+@@ -1449,7 +1497,7 @@
+ NeedTrimDomain = 1;
+ }
+
+-int
++static int
+ trim_domain()
+ {
+ struct domain *domp, *domtmp;
+@@ -1463,7 +1511,7 @@
+ {
+ /* remove from working domain chain */
+ if (cnf.debug & DEBUG_TRANS)
+- log(LOG_DEBUG, "removing domain: %s",
++ mylog(LOG_DEBUG, "removing domain: %s",
+ domp->name);
+ if (domp == env.work_domain)
+ {
+@@ -1490,7 +1538,7 @@
+ return 0;
+ }
+
+-void
++static void
+ forced_terminate()
+ {
+ struct recipient *rcptp;
+@@ -1518,7 +1566,7 @@
+
+ if (conn->host == NULL)
+ {
+- log(LOG_NOTICE, "smtp_connect called with NULL host");
++ mylog(LOG_NOTICE, "smtp_connect called with NULL host");
+ return -1;
+ }
+
+@@ -1532,7 +1580,7 @@
+ }
+
+ if (cnf.debug & DEBUG_CONNECT)
+- log(LOG_DEBUG, "%d/-: connecting to %s",
++ mylog(LOG_DEBUG, "%d/-: connecting to %s",
+ conn->seq, conn->host->name);
+
+ bzero((char *)&rsin, sizeof(rsin));
+@@ -1569,7 +1617,7 @@
+ socksize = sizeof(struct sockaddr_in);
+
+ if (cnf.debug & DEBUG_CONNECT)
+- log(LOG_DEBUG, "%d/-: destination=%s/%d", conn->seq,
++ mylog(LOG_DEBUG, "%d/-: destination=%s/%d", conn->seq,
+ inet_ntoa(rsin.in.sin_addr), cnf.dst_port);
+ found = 1;
+ break;
+@@ -1599,7 +1647,7 @@
+
+ inet_ntop(AF_INET6, &rsin.in6.sin6_addr,
+ buf, sizeof(buf));
+- log(LOG_DEBUG, "%d/-: destination=%s/%d",
++ mylog(LOG_DEBUG, "%d/-: destination=%s/%d",
+ conn->seq, buf, cnf.dst_port);
+ }
+ found = 1;
+@@ -1637,7 +1685,7 @@
+
+ if (sd > MAX_SOCK)
+ {
+- log(LOG_NOTICE, "%d/%d: can not manage such a big file descriptor number with select()",
++ mylog(LOG_NOTICE, "%d/%d: can not manage such a big file descriptor number with select()",
+ conn->seq, sd);
+ close(sd);
+ if (max_sock > MAX_SOCK)
+@@ -1650,7 +1698,7 @@
+
+ if (sd < 0){
+ /* no more socket resource */
+- log(LOG_NOTICE, "socket allocation failed for %s: %s (may be max=%d, current=%d/%d/%d)",
++ mylog(LOG_NOTICE, "socket allocation failed for %s: %s (may be max=%d, current=%d/%d/%d)",
+ conn->host->name, smtpstrerror(errno), sti.maxsock,
+ max_sock, num_sock, sti.minsock);
+ if (max_sock > NOFILE)
+@@ -1669,14 +1717,14 @@
+ }
+
+ if (cnf.debug & DEBUG_CONNECT)
+- log(LOG_DEBUG, "%d/%d: socket allocated", conn->seq, sd);
++ mylog(LOG_DEBUG, "%d/%d: socket allocated", conn->seq, sd);
+
+ #ifdef SO_SNDBUF
+ if (cnf.sendbufsize > 0)
+ {
+ if (setsockopt(sd, SOL_SOCKET, SO_SNDBUF,
+ (char *)&cnf.sendbufsize, sizeof(cnf.sendbufsize)) < 0)
+- log(LOG_NOTICE, "%d/%d: setsockopt(SO_SNDBUF) failed for %s: %s",
++ mylog(LOG_NOTICE, "%d/%d: setsockopt(SO_SNDBUF) failed for %s: %s",
+ conn->seq, sd, conn->host->name,
+ smtpstrerror(errno));
+ /* ignore error */
+@@ -1741,7 +1789,7 @@
+ case AF_INET:
+ bcopy(addrp->address,
+ &lsin.in.sin_addr, addrp->len);
+- log(LOG_INFO,
++ mylog(LOG_INFO,
+ "using %s as source IP address",
+ inet_ntoa(lsin.in.sin_addr));
+ break;
+@@ -1753,7 +1801,7 @@
+
+ inet_ntop(AF_INET6, &lsin.in6.sin6_addr,
+ buf, sizeof(buf));
+- log(LOG_INFO, "using %s as source IP address", buf);
++ mylog(LOG_INFO, "using %s as source IP address", buf);
+ break;
+ #endif
+ }
+@@ -1771,7 +1819,7 @@
+ p = NULL;
+ }
+ if (!found)
+- log(LOG_INFO, "sourceIP (%s) ignored", cnf.sourceIP);
++ mylog(LOG_INFO, "sourceIP (%s) ignored", cnf.sourceIP);
+ }
+ if (!found)
+ {
+@@ -1820,7 +1868,7 @@
+ {
+ if (bind(sd, (struct sockaddr *)&lsin, socksize) < 0)
+ {
+- log(LOG_NOTICE, "%d/%d: bind failed for %s: %s",
++ mylog(LOG_NOTICE, "%d/%d: bind failed for %s: %s",
+ conn->seq, sd, conn->host->name,
+ smtpstrerror(errno));
+ conn->host->state = STAT_FAIL;
+@@ -1837,7 +1885,7 @@
+
+ if (ioctl (sd, FIONBIO, &res) < 0)
+ {
+- log(LOG_NOTICE, "%d/%d: FIONBIO failed for %s: %s",
++ mylog(LOG_NOTICE, "%d/%d: FIONBIO failed for %s: %s",
+ conn->seq, sd, conn->host->name, smtpstrerror(errno));
+ conn->host->state = STAT_FAIL;
+ close (sd);
+@@ -1848,7 +1896,7 @@
+ #else
+ if ((res = fcntl(sd, F_GETFL, 0)) == -1)
+ {
+- log(LOG_NOTICE, "%d/%d: F_GETFL failed for %s: %s",
++ mylog(LOG_NOTICE, "%d/%d: F_GETFL failed for %s: %s",
+ conn->seq, sd, conn->host->name, smtpstrerror(errno));
+ conn->host->state = STAT_FAIL;
+ close (sd);
+@@ -1863,7 +1911,7 @@
+ # endif
+ if (fcntl(sd, F_SETFL, res) == -1)
+ {
+- log(LOG_NOTICE, "%d/%d: F_SETFL failed for %s: %s",
++ mylog(LOG_NOTICE, "%d/%d: F_SETFL failed for %s: %s",
+ conn->seq, sd, conn->host->name, smtpstrerror(errno));
+ conn->host->state = STAT_FAIL;
+ close (sd);
+@@ -1879,7 +1927,7 @@
+ && errno != EINPROGRESS && errno != EINTR) /* XXX */
+ {
+ alarm(0);
+- log(LOG_DEBUG, "%d/%d: connect failed for %s: %s",
++ mylog(LOG_DEBUG, "%d/%d: connect failed for %s: %s",
+ conn->seq, sd, conn->host->name, smtpstrerror(errno));
+ conn->host->current->stat = EX_TEMPFAIL;
+ close (sd);
+@@ -1911,7 +1959,7 @@
+ }
+ sti.minsock = sd;
+ if (cnf.debug & DEBUG_CONNECT)
+- log(LOG_DEBUG, "minsock=%d", sti.minsock);
++ mylog(LOG_DEBUG, "minsock=%d", sti.minsock);
+ }
+ num_sock++;
+ return 0;
+@@ -1931,11 +1979,11 @@
+ {
+ SockAddr cin;
+ int len = sizeof(SockAddr);
+- const char *errmsg;
++ char *errmsg;
+
+ if (getpeername(conn->socket, (struct sockaddr *)&cin, &len) < 0)
+ {
+- log(LOG_INFO, "%d/%d: getpeername failed for %s: %s",
++ mylog(LOG_INFO, "%d/%d: getpeername failed for %s: %s",
+ conn->seq, conn->socket, conn->host->name,
+ smtpstrerror(errno));
+ if (conn->host->current != NULL) /* XXX for safe access */
+@@ -1984,7 +2032,7 @@
+ conn->outlen = 0;
+ if (conn->inbuf == NULL || conn->outbuf == NULL)
+ {
+- log(LOG_NOTICE, "out of memory (SMTP buffer allocation)");
++ mylog(LOG_NOTICE, "out of memory (SMTP buffer allocation)");
+ if (conn->host->current != NULL) /* XXX for safe access */
+ {
+ conn->host->current->stat = EX_TEMPFAIL;
+@@ -2028,7 +2076,7 @@
+ if (n == 0)
+ {
+ if (cnf.debug & DEBUG_CONNECT)
+- log(LOG_DEBUG, "%d/%d: closed by foreign host",
++ mylog(LOG_DEBUG, "%d/%d: closed by foreign host",
+ conn->seq, conn->socket);
+ errno = E_SF_IO;
+ return -1;
+@@ -2046,7 +2094,7 @@
+ #endif
+ return 0;
+ default:
+- log(LOG_DEBUG, "%d/%d: read failed for %s: ret=%d, errno=%d",
++ mylog(LOG_DEBUG, "%d/%d: read failed for %s: ret=%d, errno=%d",
+ conn->seq, conn->socket,
+ conn->host->name, n, errno);
+ return n;
+@@ -2112,7 +2160,7 @@
+ if (n == 0)
+ {
+ if (cnf.debug & DEBUG_CONNECT)
+- log(LOG_DEBUG,
++ mylog(LOG_DEBUG,
+ "%d/%d: closed by foreign host (%s)",
+ conn->seq, conn->socket,
+ conn->host->name);
+@@ -2132,7 +2180,7 @@
+ #endif
+ return 0;
+ default:
+- log(LOG_DEBUG,
++ mylog(LOG_DEBUG,
+ "%d/%d: write failed for %s: ret=%d, errno=%d",
+ conn->seq, conn->socket,
+ conn->host->name, n, errno);
+@@ -2167,7 +2215,7 @@
+ if (n == 0)
+ {
+ if (cnf.debug & DEBUG_CONNECT)
+- log(LOG_DEBUG,
++ mylog(LOG_DEBUG,
+ "%d/%d: closed by foreign host (%s)",
+ conn->seq, conn->socket,
+ conn->host->name);
+@@ -2185,7 +2233,7 @@
+ #endif
+ return size;
+ default:
+- log(LOG_DEBUG,
++ mylog(LOG_DEBUG,
+ "%d/%d: write failed for %s: ret=%d, errno=%d",
+ conn->seq, conn->socket,
+ conn->host->name, n, errno);
+@@ -2236,7 +2284,7 @@
+ static int
+ smtp_get_reply(conn, func, firstline, size, rest)
+ struct connection *conn;
+-void (*func)();
++void (*func) P((struct connection *, char *));
+ char firstline[];
+ int size;
+ int *rest;
+@@ -2281,7 +2329,7 @@
+ cbuf[--len] = '\0';
+ }
+ if (cnf.debug & DEBUG_SMTP)
+- log(LOG_DEBUG, "%d/%d: >>> %s", conn->seq, conn->socket, cbuf);
++ mylog(LOG_DEBUG, "%d/%d: >>> %s", conn->seq, conn->socket, cbuf);
+ if (func != NULL)
+ (*func)(conn, cbuf);
+ if (!isdigit(cbuf[0]) || !isdigit(cbuf[1]) || !isdigit(cbuf[2])
+@@ -2338,7 +2386,7 @@
+ int len = strlen(buf);
+
+ if (cnf.debug & DEBUG_SMTP)
+- log(LOG_DEBUG, "%d/%d: <<< %s", conn->seq, conn->socket, buf);
++ mylog(LOG_DEBUG, "%d/%d: <<< %s", conn->seq, conn->socket, buf);
+ if (len + 2 < size)
+ {
+ strcat(buf, CRLF);
+@@ -2412,7 +2460,7 @@
+ {
+ char buf[MAXLINE];
+ int rcode, savestate;
+- const char *errmsg;
++ char *errmsg;
+
+ errno = 0;
+ savestate = conn->host->state;
+@@ -2453,7 +2501,7 @@
+ errmsg = "Unexpected Error";
+ break;
+ }
+- log(LOG_INFO, "%d/%d: failed for %s: %s (%s)",
++ mylog(LOG_INFO, "%d/%d: failed for %s: %s (%s)",
+ conn->seq, conn->socket, conn->host->name,
+ smtpstrerror(errno), STATE(savestate));
+ if (conn->host->current != NULL) /* XXX for safe access */
+@@ -2600,7 +2648,7 @@
+ {
+ if (errno > 0)
+ {
+- log(LOG_INFO, "%d/%d: failed for %s: %s (%s)",
++ mylog(LOG_INFO, "%d/%d: failed for %s: %s (%s)",
+ conn->seq, conn->socket, smtpstrerror(errno),
+ conn->host->name, STATE(savestate));
+ }
+@@ -2854,7 +2902,7 @@
+ {
+ if (errno > 0)
+ {
+- log(LOG_INFO, "%d/%d: failed for %s: %s (%s)",
++ mylog(LOG_INFO, "%d/%d: failed for %s: %s (%s)",
+ conn->seq, conn->socket, conn->host->name,
+ smtpstrerror(errno), STATE(savestate));
+ }
+@@ -3032,7 +3080,7 @@
+ {
+ if (errno > 0)
+ {
+- log(LOG_INFO, "%d/%d: failed for %s: %s (%s)",
++ mylog(LOG_INFO, "%d/%d: failed for %s: %s (%s)",
+ conn->seq, conn->socket, conn->host->name,
+ smtpstrerror(errno), STATE(savestate));
+ }
+@@ -3149,7 +3197,7 @@
+ {
+ if (errno > 0)
+ {
+- log(LOG_INFO, "%d/%d: failed for %s: %s (%s)",
++ mylog(LOG_INFO, "%d/%d: failed for %s: %s (%s)",
+ conn->seq, conn->socket, conn->host->name,
+ smtpstrerror(errno), STATE(savestate));
+ }
+@@ -3229,7 +3277,7 @@
+ len = strlen(altbuf);
+ rcode = smtp_write(conn, altbuf, len, 0);
+ if (rcode != len) /* XXX */
+- log(LOG_NOTICE,
++ mylog(LOG_NOTICE,
+ "Header of sent message will be corrupted: %s",
+ altbuf);
+ }
+@@ -3301,7 +3349,7 @@
+ return 0;
+
+ if (cnf.debug & DEBUG_CONNECT)
+- log(LOG_DEBUG, "reusability check: %s", conn->host->name);
++ mylog(LOG_DEBUG, "reusability check: %s", conn->host->name);
+
+ /* check possibility of reuse connection */
+ for (rmxp = conn->host->mx_ref; rmxp != NULL; rmxp = rmxp->mx_ref)
+@@ -3323,7 +3371,7 @@
+ }
+ }
+ if (cnf.debug & DEBUG_CONNECT)
+- log(LOG_DEBUG, "on domain: %s = %d", domp->name, reused);
++ mylog(LOG_DEBUG, "on domain: %s = %d", domp->name, reused);
+
+ if (reused == 0)
+ continue;
+@@ -3335,7 +3383,7 @@
+ if (mxp == rmxp)
+ {
+ if (cnf.debug & DEBUG_CONNECT)
+- log(LOG_DEBUG, "%d/%d: may be reused: %s",
++ mylog(LOG_DEBUG, "%d/%d: may be reused: %s",
+ conn->seq, conn->socket,
+ conn->host->name);
+ return 1;
+@@ -3361,7 +3409,7 @@
+ {
+ if (errno > 0)
+ {
+- log(LOG_INFO, "%d/%d: failed for %s: %s (%s)",
++ mylog(LOG_INFO, "%d/%d: failed for %s: %s (%s)",
+ conn->seq, conn->socket, conn->host->name,
+ smtpstrerror(errno), STATE(savestate));
+ }
+@@ -3453,7 +3501,7 @@
+ {
+ if (errno > 0)
+ {
+- log(LOG_INFO, "%d/%d: failed for %s: %s (%s)",
++ mylog(LOG_INFO, "%d/%d: failed for %s: %s (%s)",
+ conn->seq, conn->socket, conn->host->name,
+ smtpstrerror(errno), STATE(savestate));
+ }
+@@ -3528,7 +3576,7 @@
+ {
+ if (errno > 0)
+ {
+- log(LOG_INFO, "%d/%d: failed for %s: %s (%s)",
++ mylog(LOG_INFO, "%d/%d: failed for %s: %s (%s)",
+ conn->seq, conn->socket, conn->host->name,
+ smtpstrerror(errno), STATE(savestate));
+ }
+@@ -3588,7 +3636,7 @@
+ markstatus(conn->rcpt, SMTP_TEMPFAIL(52),
+ newstr(buf), 1);
+ else
+- log(LOG_INFO, "Trying next address of %s",
++ mylog(LOG_INFO, "Trying next address of %s",
+ conn->host->name);
+ if (conn->host->current != NULL) /* XXX for safe access */
+ conn->host->current = conn->host->current->next;
+@@ -3614,7 +3662,7 @@
+ {
+ conn->host->state = STAT_CLOSED;
+ conn->host->current->stat = EX_TEMPFAIL;
+- log(LOG_INFO, "Trying next address of %s",
++ mylog(LOG_INFO, "Trying next address of %s",
+ conn->host->name);
+ }
+ else
+@@ -3641,17 +3689,17 @@
+ struct recipient *rcptp;
+ int i;
+
+- log(LOG_INFO, "=== dumping internal information ===");
++ mylog(LOG_INFO, "=== dumping internal information ===");
+
+ for (rcptp = env.rcpt_list; rcptp != NULL; rcptp = rcptp->next)
+ {
+ switch (rcptp->stat)
+ {
+ case RCPT_NOOP:
+- log(LOG_INFO, "rcpt=%s stat=noop", rcptp->address);
++ mylog(LOG_INFO, "rcpt=%s stat=noop", rcptp->address);
+ break;
+ case RCPT_WORK:
+- log(LOG_INFO, "rcpt=%s stat=working mx=%s st=%s",
++ mylog(LOG_INFO, "rcpt=%s stat=working mx=%s st=%s",
+ rcptp->address,
+ (rcptp->domain->curmx == NULL)?"none":
+ rcptp->domain->curmx->name,
+@@ -3660,18 +3708,18 @@
+ break;
+ case RCPT_RETRY:
+ if (rcptp->domain->curmx != NULL)
+- log(LOG_INFO,
++ mylog(LOG_INFO,
+ "rcpt=%s stat=retry code=%d mx=%s st=%s",
+ rcptp->address, rcptp->result,
+ rcptp->domain->curmx->name,
+ STATE(rcptp->domain->curmx->host->state));
+ else
+- log(LOG_INFO,
++ mylog(LOG_INFO,
+ "rcpt=%s stat=retry code=%d mx=none",
+ rcptp->address, rcptp->result);
+ break;
+ case RCPT_DONE:
+- log(LOG_INFO, "rcpt=%s stat=done code=%d",
++ mylog(LOG_INFO, "rcpt=%s stat=done code=%d",
+ rcptp->address, rcptp->result);
+ break;
+ }
+@@ -3681,12 +3729,12 @@
+ {
+ if (connwork[i].host == NULL)
+ continue;
+- log(LOG_INFO, "slot=%d host=%s stat=%s", i,
++ mylog(LOG_INFO, "slot=%d host=%s stat=%s", i,
+ connwork[i].host->name,
+ STATE(connwork[i].host->state));
+ }
+
+- log(LOG_INFO, "=== end of internal information ===");
++ mylog(LOG_INFO, "=== end of internal information ===");
+ }
+
+ static char *
diff --git a/mail/smtpfeed/patches/patch-am b/mail/smtpfeed/patches/patch-am
new file mode 100644
index 00000000000..83ac6de037b
--- /dev/null
+++ b/mail/smtpfeed/patches/patch-am
@@ -0,0 +1,212 @@
+$NetBSD: patch-am,v 1.1 2006/07/23 15:00:41 taca Exp $
+
+--- util.c.orig 2002-01-20 23:19:44.000000000 +0900
++++ util.c
+@@ -41,6 +41,11 @@
+ # include "common.h"
+ # include "extern.h"
+
++static void tv_sub P((struct timeval *, struct timeval *, struct timeval *));
++static int hash_func P((char *));
++struct dns_stat *hash_query_lookup P((char *, struct dns_stat ***));
++static void hash_map_enter P((char *, struct host_map *));
++
+ char *
+ newstr(str)
+ char *str;
+@@ -49,7 +54,7 @@
+
+ ptr = (char *)MALLOC(strlen(str) + 1);
+ if (ptr == NULL) {
+- log(LOG_NOTICE, "out of memory (newstr)");
++ mylog(LOG_NOTICE, "out of memory (newstr)");
+ return NULL;
+ }
+ strcpy(ptr, str);
+@@ -109,7 +114,7 @@
+ tv_sub(&ct, &pt, &dt);
+ d.ru_maxrss = c.ru_maxrss - p.ru_maxrss;
+ d.ru_nivcsw = c.ru_nivcsw - p.ru_nivcsw;
+- log(LOG_INFO, "time=%d.%03d+%d.%03d/%d.%03d rss=%ld nivcsw=%ld (%s)",
++ mylog(LOG_INFO, "time=%d.%03d+%d.%03d/%d.%03d rss=%ld nivcsw=%ld (%s)",
+ d.ru_utime.tv_sec, d.ru_utime.tv_usec/1000,
+ d.ru_stime.tv_sec, d.ru_stime.tv_usec/1000,
+ dt.tv_sec, dt.tv_usec/1000,
+@@ -139,7 +144,7 @@
+ }
+
+ if (cnf.debug & DEBUG_HASH)
+- log(LOG_DEBUG, "hash_func(%s) = %d", name, val);
++ mylog(LOG_DEBUG, "hash_func(%s) = %d", name, val);
+
+ return val;
+ }
+@@ -165,7 +170,7 @@
+ if (strcasecmp(qp->name, name) == 0)
+ {
+ if (cnf.debug & DEBUG_HASH)
+- log(LOG_DEBUG, "query %s found in hash table", name);
++ mylog(LOG_DEBUG, "query %s found in hash table", name);
+ return qp;
+ }
+ qp = qp->next;
+@@ -194,7 +199,7 @@
+ if (strcasecmp(domp->name, name) == 0)
+ {
+ if (cnf.debug & DEBUG_HASH)
+- log(LOG_DEBUG, "domain %s found in hash table", name);
++ mylog(LOG_DEBUG, "domain %s found in hash table", name);
+ return domp;
+ }
+ domp = domp->hash;
+@@ -211,7 +216,7 @@
+ int idx = hash_func(name);
+
+ if (cnf.debug & DEBUG_HASH)
+- log(LOG_DEBUG, "enter domain %s into hash table", name);
++ mylog(LOG_DEBUG, "enter domain %s into hash table", name);
+
+ newdomp->hash = hash_domain[idx];
+ hash_domain[idx] = newdomp;
+@@ -228,21 +233,21 @@
+ int idx = hash_func(name);
+
+ if (cnf.debug & DEBUG_HASH)
+- log(LOG_DEBUG, "look up domain(%s) index(%d)", name, idx);
++ mylog(LOG_DEBUG, "look up domain(%s) index(%d)", name, idx);
+ dom_r_p = hash_domain_rcpts[idx];
+ while (dom_r_p != NULL)
+ {
+ if (strcasecmp(dom_r_p->name, name) == 0)
+ {
+ if (cnf.debug & DEBUG_HASH)
+- log(LOG_DEBUG, "hit domain(%s) rcpts(%d) in hash table",
++ mylog(LOG_DEBUG, "hit domain(%s) rcpts(%d) in hash table",
+ name, dom_r_p->rcpts);
+ return dom_r_p->rcpts;
+ }
+ dom_r_p = dom_r_p->hash;
+ }
+ if (cnf.debug & DEBUG_HASH)
+- log(LOG_DEBUG, "domain(%s) not found in hash table, return %d",
++ mylog(LOG_DEBUG, "domain(%s) not found in hash table, return %d",
+ name, cnf.rcpts_trans);
+ return cnf.rcpts_trans;
+ }
+@@ -255,7 +260,7 @@
+ int idx = hash_func(name);
+
+ if (cnf.debug & DEBUG_HASH)
+- log(LOG_DEBUG, "enter domain(%s) index(%d) rcpts(%d) into hash table",
++ mylog(LOG_DEBUG, "enter domain(%s) index(%d) rcpts(%d) into hash table",
+ name, idx, newdom_r_p->rcpts);
+
+ newdom_r_p->hash = hash_domain_rcpts[idx];
+@@ -290,7 +295,7 @@
+ fp = fopen(cnf.rcpts_def, "r");
+ if (fp == NULL)
+ {
+- log(LOG_NOTICE, "file %s not found", cnf.rcpts_def);
++ mylog(LOG_NOTICE, "file %s not found", cnf.rcpts_def);
+ return -1;
+ }
+ /* read cnf.rcpts_def */
+@@ -337,7 +342,7 @@
+ dom_r_p = (struct domain_rcpts*) MALLOC(sizeof(struct domain_rcpts));
+ if (dom_r_p == NULL)
+ {
+- log(LOG_NOTICE, "out of memory (domain_rcpts)");
++ mylog(LOG_NOTICE, "out of memory (domain_rcpts)");
+ fclose(fp);
+ return -1;
+ }
+@@ -345,7 +350,7 @@
+ dom_r_p->name = newstr(strp);
+ if(dom_r_p->name == NULL)
+ {
+- log(LOG_NOTICE, "out of memory (dom_r_p->name)");
++ mylog(LOG_NOTICE, "out of memory (dom_r_p->name)");
+ fclose(fp);
+ return -1;
+ }
+@@ -356,7 +361,7 @@
+ fclose(fp);
+ cnf.rcpts_trans = hash_domain_rcpts_lookup(DEFAULTRCPTS);
+ if (cnf.debug & DEBUG_TRANS)
+- log(LOG_DEBUG, "set cnf.rcpts_trans = %d", cnf.rcpts_trans);
++ mylog(LOG_DEBUG, "set cnf.rcpts_trans = %d", cnf.rcpts_trans);
+ return 0;
+ }
+
+@@ -381,7 +386,7 @@
+ if (strcasecmp(hostp->name, name) == 0)
+ {
+ if (cnf.debug & DEBUG_HASH)
+- log(LOG_DEBUG, "host %s found in hash table", name);
++ mylog(LOG_DEBUG, "host %s found in hash table", name);
+ return hostp;
+ }
+ hostp = hostp->hash;
+@@ -398,7 +403,7 @@
+ int idx = hash_func(name);
+
+ if (cnf.debug & DEBUG_HASH)
+- log(LOG_DEBUG, "enter host %s into hash table", name);
++ mylog(LOG_DEBUG, "enter host %s into hash table", name);
+
+ newhostp->hash = hash_host[idx];
+ hash_host[idx] = newhostp;
+@@ -426,7 +431,7 @@
+ if (strcasecmp(mapp->name, name) == 0)
+ {
+ if (cnf.debug & DEBUG_HASH)
+- log(LOG_DEBUG, "map %s found in hash table", name);
++ mylog(LOG_DEBUG, "map %s found in hash table", name);
+ return mapp;
+ }
+ mapp = mapp->hash;
+@@ -434,7 +439,7 @@
+ return NULL;
+ }
+
+-void
++static void
+ hash_map_enter(name, newmapp)
+ char *name;
+ struct host_map *newmapp;
+@@ -442,7 +447,7 @@
+ int idx = hash_func(name);
+
+ if (cnf.debug & DEBUG_HASH)
+- log(LOG_DEBUG, "enter map %s into hash table", name);
++ mylog(LOG_DEBUG, "enter map %s into hash table", name);
+
+ newmapp->hash = hash_map[idx];
+ hash_map[idx] = newmapp;
+@@ -462,7 +467,7 @@
+ fp = fopen(cnf.map, "r");
+ if (fp == NULL)
+ {
+- log(LOG_NOTICE, "map %s not found", cnf.map);
++ mylog(LOG_NOTICE, "map %s not found", cnf.map);
+ return -1; /* should be TEMPFAIL */
+ }
+ while (fgets(buf, sizeof(buf), fp) != NULL)
+@@ -580,7 +585,7 @@
+ }
+ argp++;
+ }
+- log(LOG_DEBUG, "reading map: domain = %s, map = %s",
++ mylog(LOG_DEBUG, "reading map: domain = %s, map = %s",
+ mapp->name, tmpbuf);
+ }
+ }
+@@ -604,7 +609,7 @@
+ while (p != NULL)
+ {
+ if (cnf.debug & DEBUG_MAP)
+- log(LOG_DEBUG, "searching host map for %s: %s", domain, p);
++ mylog(LOG_DEBUG, "searching host map for %s: %s", domain, p);
+
+ if ((mapp = hash_map_lookup(p, NULL)) != NULL)
+ {