1.18: Mar.19,2002: smtp.c: avoid null pointer access when MAPOPT_TRYALLADDR set. reported by Koji Kawano dns.c: ignore answer from a nameserver which does not support recursive query if the server described in resolv.conf is such a server. main.c: default for -q option is changed to 50. suggested by Takahiro Kambe 1.17: Jan.12,2002: smtpfeed.8: this manual page (in English) is provided by Ralf S. Engelschall dns.c: some sanity checking in DNS answer packet to avoid coredump. common.h, dns.c, main.c, lmtp.c: DNS query concurrency limitation. set -q option to limit. default is 0 (unlimited). maximum concurrency will be shown with dnsmaxcq= in log after delivery is completed. problem reported by Takahiro Kambe common.h, dns.c, smtp.c: /opt support in map file. if you want to try other IP addresses for a MX host when a transaction (after HELOSENT) with an IP address was failed, describe "domain MX/a" in the map file. this option can be applied to each term separated by ':' like "domain mx1/a:mx2:mx3/a". based on a request from Koji Kawano 1.16: Aug.27,2001: main.c: "socklen_t" is replaced with "int" to support old platforms which does not have the "socklen_t" definition. 1.15: Aug.26,2001: dns.c: avoid DNS query synchronization when no queries are sent in case a LMTP connection is used for multiple transaction. lmtp.c: some messages in setproctitle() are changed. main.c: logging peer-name for use with inetd (LMTP over TCP) README: some comments added: Sendmail 8.12 includes the DYNAMIC_TOBUF feature by default which supplied from 3.xW patch for sendmail. So you do not need the patch any more if you do not use extensions in sendmail.cf description offered by the patch. 1.14: Aug.15,2001: smtp.c: changes on some timeout values work around for bogus mail gateway to mobile phone... fix on NULL pointer access which causes unterminating process with proctitle like: "smtpfeed: 550% delivered" reported by Hisaaki Shibata fixed by Anatoly A. Orehovsky do not rewrite envelope sender using the following rule when sender is <>: SndrUser+RcptUser=RcptDomain@SndrDomain problem reported by Shin ZUKERAN log.c: increase retry counter value common.h, address.c, smtp.c, extern.h, main.c, util.c: support par domain recipient number setting with file suggested by Koji Kawano 1.13: Mar.19,2001: smtp.c: max number of RCPT/SMTP was limited to 99 (should be 100). reported by Koji Kawano configure.in: Solaris8 support suggested by Toshio Hiraga 1.12: Mar.4,2001: log.c: a hack to avoid syslog buffer overflow added. problem reported by Koji Kawano 1.11: Feb.14,2001: smtp.c: changes in logging format: remove IPv6 letter in [IPv6:...] notation. show proto=v4 when IPv4 address used if compiled with --enable-v6. show "(gateway)" after protocol gateway address. patch from Makoto MATSUSHITA 1.10: Jan.30,2001: main.c, address.c: Now you can specify order of IPv4/IPv6 for SMTP with -NB option. -NB4: try IPv4 first, then IPv6 -NB6: try IPv6 first, then IPv4 (default setting) dns.c: AF_INET6 should not be used on IPv4 only plathome. reported by Shigechika AIKAWA and Makoto MATSUSHITA 1.09: Jan.29,2001 address.c: Log un-delivered recipients because of DNS lookup failure. suggested by Koji Kawano dns.c, main.c: A new -g option added to support protocol gateway feature. idea from Makoto MATSUSHITA 1.08: Jan.4,2001 smtp.c: Successful recipients were not logged if the final recipient was rejected in a SMTP transaction. reported by Koji Kawano An access to conn->host->currect encounters NULL at the beginning of SMTP connection establishment. So checks inserted for safety. reported by Makoto MATSUSHITA dns.c: fallbackmx will work with A/AAAA only hosts commom.h, main.c, dns.c, smtp.c: Option -5 supported for IPv4 or IPv6 only platform to use fallback gateway to IPv6/IPv4 cloud. Unless -5 specified, messages will be bounced back from IPv4 host to IPv6 host (AAAA only MX) or from IPv6 host to IPv4 host (A only MX), what was default action of old versions of smtpfeed. You also want to specify fallback host which can reach IPv6/IPv4. 1.07.1: Jul.26,2000 changes on documentation for sendmail 8.11.0+3.3W 1.07: May.29,2000 smtp.c: false permanent errors (Connection timed out, which should be temporary failures) when SMTP connection (in processing) is timed-out. reported by Jun-ichiro itojun Hagino 1.06: Apr.24,2000 smtp.c, main.c, common.h: false permanent errors (No addresses) occur when DNS queries are timed-out. reported by Takahiro Kambe 1.05: Apr.15,2000 changes on documentation for sendmail 8.10.1+3.3W 1.04: Jan.31,2000 main.c, smtp.c, dns.c, common.h: generate permanent error if A/AAAA RRs which pointed by MX RRs are missing. set -x option to be treated as not permanent but temporary failure as before. problem reported by Masato Minda 1.03: Jan.12,2000 main.c: return value type of main() is changed to 'int'. common.h: sys/socket.h has to be included before netinet/in.h to avoid compile-time problem on Debian GNU/Linux 2.2. reported by Hideaki YOSHIFUJI configure.in: Many plathome support with KAME from itojun@iijlab.net 1.02: Oct.16,1999 dns.c: misc. fixes for IPv6 reported by Makoto MATSUSHITA and Yasunari Momoi address.c: allow '_' in domain part. requested by Tomoyuki Asakawa configure.in: newer style sockaddr_storage supported. (IPv6) suggested by itojun@iijlab.net IPv6 implementation on BSD/OS 4.0.x by NRL supported. 1.01: May.11,1999 dns.c: [hostname] or [IPaddress] in MAP file does now work. reported by Kiyotaka OKABE 'MX?' added as a keyword in MAP file to ignore DNS temporary lookup failure -- skip to next map item. smtp.c: reduce socket number if no more socket condition occurs. 1.00: Apr.3,1999 dns.c mxrand.c: sizeof(long) -> INT32SZ parameter changed for mxrand() to use LHS of MX RR. smtp.c: consider slow start of connect()s to loss of SYN packet 0.95: Mar.4,1999 smtp.c: fix on sourceIP references (null pointer). 0.94: Mar.3,1999 extern.h main.c smtp.c common.h dns.c: sourceIP, fallbackmx variables are moved into "cnf" struct. dns.c smtp.c: now, hostname can be specified with -o option. 0.93: Feb.19,1999 common.h: MAXHOSTNAMELEN added in case of not def configure.in: __inet_aton checking added for Solaris with bind8 reported by Yasuhiro Morishita common.h address.c smtp.c extern.h lmtp.h lmtp.c: response ahead in LMTP DATA response state to reduce possibility of retransmission after system crash. main.c common.h smtp.c: -F option modified (-F enabled with -1 option). one -F specified: To: (recipient address) inserted two -F specified: sender address modified like SenderUser+RecptUser=RecptDomain@SenderDomain -S option added to supply -1 option automatically by comparison to original sender. -S /path to specify list of sender addresses -S pattern to specify sender address rewriting rule (default is %s+%s=%s@%s) lmtp.c: X-smtpfeed: header field can be specified to change smtpfeed configuration. Currently, only -1 option suppored. 0.92: Jan.22,1999 lmtp.c: some tweak on LmtpIn/LmtpOut initialization address.c dns.c lmtp.c proctitle.c smtp.c util.c common.h: use MALLOC() to get memory allocation statistics 0.91: Jan.12,1999 configure.in: fix on resolver type checking for v6d. 0.90: Oct.6,1998 smtp.c: sourceIP did not support IPv6 dns.c: IPv6 style(?) _res changes by Jun-ichiro itojun Itoh configure.in: acconfig.h, compat.h.top also be added. compat.h.in is generated by autoheader. by Jun-ichiro itojun Itoh 0.89: Oct.1,1998 main.c: Number of sockets specified by -n should not larger than MAX_SOCK. 0.88: Sep.30,1998 configure.in --with-fds added. --with-static added. main.c: Show descriptor size in start-up message. Show version info in help message. 0.87: Sep.29,1998 dns.c: "cnamechain" was undefined.... reported by Michio "Karl" Jinbo 0.86: Sep.29,1998 configure.in: Support various IPv6 implementations. patch donated by Jun-ichiro itojun Itoh dns.c: Ignore CNAMEs point back itself. 0.85: Sep.28,1998 configure.in: Libexecdir for IPv6: default changed to /usr/local/v6/sbin. address.c: Typo in INET6 section. stat/: Tools to generate some graphs on performance of SMTPfeed 0.84: Sep.27,1998 lmtp.c: Keep time_sm_start on RSET. smtp.c: Fix on maxdelay calculation (Sometimes huge value was reported). reported by Makoto MATSUSHITA reported by Hidetoshi Shimokawa 0.83: Sep.22,1998 dns.c: Utilize answers for CNAME query. (Do not ignore after CNAME response.) CNAME which points just an A RR was not treated well in some conditions. reported by HIROSE Masaaki 0.82: Sep.18,1998 smtp.c: If MAIL FROM failed in PIPELINING mode, error code for following RCPT did not ignored. reported by Makoto MATSUSHITA Recipient triming was not done properly in case of timeout. reported by Makoto MATSUSHITA 0.81: Sep.16,1998 lmtp.c, main.c, common.h: tsendmail= added to statistics information. See FYI file. 0.80: Sep.14,1998 address.c: Reset host state if new address found in case multiple LMTP transaction processed. reported by Makoto MATSUSHITA smtp.c: STAT_FAILQUIT added. 0.79: Sep.13,1998 dns.c: Fix on qflag management. If you see "may be DNS problem" in your log file, some of them will be fixed. (In case A RR exists but MX RR does not exist.) 0.78: Sep.10,1998 dns.c: Fix on query over IPv6. 0.77: Sep.6,1998 compat.h.in: MISSING_SIN_LEN was missing.... 0.76: Sep.5,1998 dns.c: Address of fallbackmx was not resolved. reported by Kazunori ANDO configure.in, common.h, compat.h.in: Checks on some undefined macros are moved to common.h. 0.75: Sep.1,1998 smtp.c: Fix on management of invalid MX, which does not point any A RR. reported by Makoto MATSUSHITA 0.74: Aug.28,1998 smtp.c: complete PIPELINING implementation lmtp.c: igonre ';' when parse queue-id on Received: header 0.73: Aug.14,1998 dns.c: DNS query over IPv6 support. main.c, lmtp.c: -E option added to parse queue-id on Received: header line. smtp.c: Fix of "next avail" check on tempfail. reported by Makoto MATSUSHITA 0.72: Jul.31,1998 dns.c: RES_INSECURE1 missing with old resolver. A variable "ns" should not be negative. util.c: Fix on the previous change problem reported by Fumio Chisaka 0.71: Jul.31,1998 util.c: Return correct pointer even if a hash entry has multiple nodes. dns.c: Manage "nameserver 0.0.0.0" correctly by just rewriting it with 127.0.0.1. 0.70: Jul.30,1998 dns.c: whichserver() added to obtain which server returned the answer. Smtpfeed dumped core when nameserver sent an answer for a request which is not sent from the smtpfeed. reported by Takahiro Kambe 0.69: Jul.30,1998 -- for Alpha testers only lmtp.c: dns_i/o information added. dns.c: Delivery failed if CNAME RR points just an A RR. 0.68: Jul.28,1998 -- for Alpha testers only common.h, main.c, smtp.c: -dQ debugflag added. -A option added to use T_ANY query first for getting MX. dns.c: Drastically changed not to use res_send.c. res_send.c: Obsolete. smtp.c: Fix on increment of "ndeferred" counter in case of failure at sending DATA body. reported by Makoto MATSUSHITA lmtp.c: nanswer/nquery information added to statistics. Fix on management of keepqueueid flag problem reported by Fumio Chisaka 0.67: Jul.20,1998 main.c, smtp.c Meanings of SIGINT, SIGTERM, SIGQUIT are changed. main.c, lmtp.c: -I queue-id option supported. 0.66: Jul.2,1998 lmtp.c: Pointer was wrong to pass free(). probelm reported by Hisaaki Shibata smtp.c: host->state should be reset to STAT_CLOSED when timed out. trim_rcpts() should be called even when forced termination. Fix on address parameter for inet_ntop(). reported by Atsushi Onoe 0.65: Jun.20,1998 res_send.c: Replaced to new version from bind 4.9.7 and bind 8.1.2 smtp.c: Fix on increment of "ndeferred" counter in case MX RR does not point A RR. reported by Makoto MATSUSHITA 0.64: Jun.15,1998 smtp.c: Fix on NULL pointer reference with IPv6 support Fix on increment of "ndeferred" counter lmtp.c: ndeferred should be counted when system error 0.63: May.10,1998 configure.in: -static deleted: -static has a compilation problem on some plathome. FreeBSD 2.2.x style bind8 supported problem reported by Jun-ichiro itojun Itoh but current version still has a problem on FreeBSD 2.2.1. lmtp.c, address.c: ndeferred was doubly counted dns.c: Ignore misconfigured route map entry util.c: Aliasing supported by route map. see OPTION file smtp.c: Do not append hostname again in response message for retried hosts 0.62: Apr.3,1998 configure.in, Makefile.in: v6d supported -static added for gcc res_send-*.c: IPv6 supported address.c: Try IPv6 first if a host have both of IPv4/v6 address smtp.c: Fix on typo in IPv6 #if section IPv6 address was not shown in log correctly Fix on status management on error of connect() main.c: -N option added to restrict Internet Domain to be used 0.61: Apr.1,1998 smtp.c, lmtp.c: More fix on RSET initialization 0.60: Mar.31,1998 smtp.c: Fix on use of syslog in dump_internal() Add domain pickup procedure for 2nd or later transaction Fix on static variable initialization lmtp.c: Fix on RSET initialization 0.59: Mar.7,1998 address.c dns.c extern.h lmtp.c res_send-*.c smtp.c util.c: Some cleanups by Fumitoshi UKAI 0.58: Mar.5,1998 smtp.c: Fix on error handling at waiting greeting 0.57: Mar.4,1998 smtp.c, smtp.h: Fix on action for SMTP 421 response code. problem reported by Khetan Gajjar 0.56: Feb.1,1998 lmtp.c: Ignore dupricated ESMTP parameters. address.c: Add some acceptable chars as local part. dns.c: Ignore DNS lookup failure on hosts associated with rhs of MX. smtp.c: Review on action for erroneous SMTP response. Ignoring SIGPIPE to avoid dumping core. 0.55: Jan.27,1998 util.c: Skip routing map search if map file is not defined. dns.c: Fix on wrong return value. 0.54: Jan.26,1998 smtp.c: Implementation of option -F is changed. Some small hacks by Hidetoshi Shimokawa Do not sleep on first "No active socket" situation. main.c: 'm' debug flag added for routing map. Option -M added to specify routing map file. util.c: Hashing support for routing map. dns.c: Routing map support for destination host selection. Selective MX pre-query (Do not query if MX is not specified) address.c: Call host_map_lookup() on new domain name. 0.53: Jan.18,1998 address.c: Speed improvement on addrecipient() by Hidetoshi Shimokawa smtp.c: Fix on termination by Hidetoshi Shimokawa main.c: Option -1 added (equivalent to -R1) Option -F added (show recipient address in Received: header when recipients for a SMTP transaction is only one) proctitle.c: Copied partially from sendmail. 0.52: Jan.16,1998 address.c, util.c: Hashing supported. main.c: 'h' debug flag added. 0.51: Jan.15,1998 configure: USE_BIND8 added to include port_before/after.c with bind8. Makefile.in: "-mv" to ignore errors. smtp.c: More shaping-ups on event loop. Make chains of MX RRs to the same host for easy lookup of recipients for piggybacking. These changes are based on codes by Hidetoshi Shimokawa dns.c: Sorting without bcopy()s. 0.50: Jan.11,1998 all: Profiling CPU usage, etc. -u (reuse SMTP connection) option added. default is no reusing. -dD (debugging without delivery) Domain basis delivering management smtp.c: Shaping up event loop. 0.49: Jan.10,1998 smtp.c: Show next availability of address/MX on failure. 0.48: Jan.8,1998 smtp.c: Log failures with hostname. Fix on closed connection management. dns.c: Fix on -y option. Problem reported by Seiji Tateyama main.c: Use gethostbyname for getting FQDN. 0.47: Jan.7,1998 address.c: Allow '?' as a address character in user part.... main.c: (rlim_max - 1) should be assigned into sd_max. smtp.c: FirstWrite hack Use savestate to show the previous host state. 0.46: Jan.6,1998 mxrand.c: Copied partially from sendmail. 0.45: Dec.25,1997 smtp.c: Mark "connection timed out"s res_send-*.c: Fix on location of free()s. 0.44: Dec.25,1997 res_send-*.c: JAZ hack merged to improve performance of DNS queries Donated by Hidetoshi Shimokawa 0.43: Dec.22,1997 smtp.c: MX RR which does not point an entry of A RR should be ignored Silently, and count up "deferred" counter correctly. 0.42: Dec.19,1997 Fix on 90% delivery statistics by Makoto MATSUSHITA Command line option -o and -y supported Received LMTP commands are logged by setting LMTP debug option 0.41: Dec.14,1997 smtp.c: Fix on buffer size checking on pipelining. Reported by Hidetoshi Shimokawa res_send-*.c: Do not append trailing dot in prefetch_related(). Reported by Hidetoshi Shimokawa common.h,lmtp.c,smtp.c: Add statistic info of 90% delivery completion Donated by Makoto MATSUSHITA 0.40: Nov.24,1997 Beta release Contributors in alpha testing period (dictionary order): Kazunori ANDO Fumitaka Murayama Yoshiaki Hori Kenji Ikeda Koji Yamamoto Makoto MATSUSHITA Nao NINOMIYA Isao Tomikawa Shoichi SAITO Fumitoshi UKAI 0.01: Oct.16,1997 Alpha release 0.00: Sep.19,1997 Epoch