Prereq: "2.8.4" diff -cr --new-file /var/tmp/postfix-2.8.4/src/global/mail_version.h ./src/global/mail_version.h *** /var/tmp/postfix-2.8.4/src/global/mail_version.h Wed Jul 6 16:51:21 2011 --- ./src/global/mail_version.h Fri Sep 2 17:57:19 2011 *************** *** 20,27 **** * Patches change both the patchlevel and the release date. Snapshots have no * patchlevel; they change the release date only. */ ! #define MAIL_RELEASE_DATE "20110706" ! #define MAIL_VERSION_NUMBER "2.8.4" #ifdef SNAPSHOT # define MAIL_VERSION_DATE "-" MAIL_RELEASE_DATE --- 20,27 ---- * Patches change both the patchlevel and the release date. Snapshots have no * patchlevel; they change the release date only. */ ! #define MAIL_RELEASE_DATE "20110902" ! #define MAIL_VERSION_NUMBER "2.8.5" #ifdef SNAPSHOT # define MAIL_VERSION_DATE "-" MAIL_RELEASE_DATE diff -cr --new-file /var/tmp/postfix-2.8.4/HISTORY ./HISTORY *** /var/tmp/postfix-2.8.4/HISTORY Wed Jun 15 18:37:26 2011 --- ./HISTORY Wed Aug 31 16:02:02 2011 *************** *** 16634,16636 **** --- 16634,16650 ---- IP queries" even if the name has an alphanumerical prefix. We play safe, and skip both RHSBL and RHSWL queries for names ending in a numerical suffix. File: smtpd/smtpd_check.c. + + 20110811 + + Workaround: report a {client_connections} Milter macro value + of zero instead of garbage, when the remote SMTP client is + not subject to any smtpd_client_* limits. Problem reported + by Christian Roessner. File: smtpd/smtpd_state.c, + proto/MILTER_README.html. + + 20110831 + + Bugfix: allow for Milters that send an SMTP server reply + without RFC 3463 enhanced status code. Reported by Vladimir + Vassiliev. File: milter/milter8.c. diff -cr --new-file /var/tmp/postfix-2.8.4/README_FILES/MILTER_README ./README_FILES/MILTER_README *** /var/tmp/postfix-2.8.4/README_FILES/MILTER_README Tue Mar 23 19:31:39 2010 --- ./README_FILES/MILTER_README Wed Aug 31 15:53:24 2011 *************** *** 339,346 **** |_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _|_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _|_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ | |{client_addr} |Always |Client IP address | |_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _|_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _|_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ | ! |{client_connections}|CONNECT |Connection concurrency for| ! | | |this client | |_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _|_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _|_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ | | | |Client hostname | | | |When address -> name | --- 339,349 ---- |_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _|_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _|_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ | |{client_addr} |Always |Client IP address | |_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _|_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _|_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ | ! | | |Connection concurrency for| ! | | |this client (zero if the | ! |{client_connections}|CONNECT |client is excluded from | ! | | |all smtpd_client_* | ! | | |limits). | |_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _|_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _|_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ | | | |Client hostname | | | |When address -> name | diff -cr --new-file /var/tmp/postfix-2.8.4/html/MILTER_README.html ./html/MILTER_README.html *** /var/tmp/postfix-2.8.4/html/MILTER_README.html Tue Mar 23 19:31:39 2010 --- ./html/MILTER_README.html Wed Aug 31 15:53:23 2011 *************** *** 559,565 **** address {client_connections} CONNECT ! Connection concurrency for this client {client_name} Always Client hostname
When address → name lookup or name → address --- 559,566 ---- address {client_connections} CONNECT ! Connection concurrency for this client (zero if the client is ! excluded from all smtpd_client_* limits). {client_name} Always Client hostname
When address → name lookup or name → address diff -cr --new-file /var/tmp/postfix-2.8.4/proto/MILTER_README.html ./proto/MILTER_README.html *** /var/tmp/postfix-2.8.4/proto/MILTER_README.html Tue Mar 23 19:31:22 2010 --- ./proto/MILTER_README.html Wed Aug 31 15:50:21 2011 *************** *** 559,565 **** address {client_connections} CONNECT ! Connection concurrency for this client {client_name} Always Client hostname
When address → name lookup or name → address --- 559,566 ---- address {client_connections} CONNECT ! Connection concurrency for this client (zero if the client is ! excluded from all smtpd_client_* limits). {client_name} Always Client hostname
When address → name lookup or name → address diff -cr --new-file /var/tmp/postfix-2.8.4/src/milter/milter8.c ./src/milter/milter8.c *** /var/tmp/postfix-2.8.4/src/milter/milter8.c Thu Apr 28 10:09:30 2011 --- ./src/milter/milter8.c Wed Aug 31 09:04:19 2011 *************** *** 1255,1265 **** MILTER8_DATA_BUFFER, milter->buf, MILTER8_DATA_END) != 0) MILTER8_EVENT_BREAK(milter->def_reply); if ((STR(milter->buf)[0] != '4' && STR(milter->buf)[0] != '5') || !ISDIGIT(STR(milter->buf)[1]) || !ISDIGIT(STR(milter->buf)[2]) || (STR(milter->buf)[3] != ' ' && STR(milter->buf)[3] != '-') ! || STR(milter->buf)[4] != STR(milter->buf)[0]) { msg_warn("milter %s: malformed reply: %s", milter->m.name, STR(milter->buf)); milter8_conf_error(milter); --- 1255,1267 ---- MILTER8_DATA_BUFFER, milter->buf, MILTER8_DATA_END) != 0) MILTER8_EVENT_BREAK(milter->def_reply); + /* XXX Enforce this for each line of a multi-line reply. */ if ((STR(milter->buf)[0] != '4' && STR(milter->buf)[0] != '5') || !ISDIGIT(STR(milter->buf)[1]) || !ISDIGIT(STR(milter->buf)[2]) || (STR(milter->buf)[3] != ' ' && STR(milter->buf)[3] != '-') ! || (ISDIGIT(STR(milter->buf)[4]) ! && (STR(milter->buf)[4] != STR(milter->buf)[0]))) { msg_warn("milter %s: malformed reply: %s", milter->m.name, STR(milter->buf)); milter8_conf_error(milter); diff -cr --new-file /var/tmp/postfix-2.8.4/src/smtpd/smtpd_state.c ./src/smtpd/smtpd_state.c *** /var/tmp/postfix-2.8.4/src/smtpd/smtpd_state.c Thu Jan 6 10:12:49 2011 --- ./src/smtpd/smtpd_state.c Wed Aug 31 15:50:21 2011 *************** *** 84,89 **** --- 84,90 ---- state->service = mystrdup(service); state->buffer = vstring_alloc(100); state->addr_buf = vstring_alloc(100); + state->conn_count = state->conn_rate = 0; state->error_count = 0; state->error_mask = 0; state->notify_mask = name_mask(VAR_NOTIFY_CLASSES, mail_error_masks,