]> git.ipfire.org Git - thirdparty/postfix.git/commitdiff
postfix-2.5-20071218
authorWietse Venema <wietse@porcupine.org>
Tue, 18 Dec 2007 05:00:00 +0000 (00:00 -0500)
committerViktor Dukhovni <viktor@dukhovni.org>
Tue, 5 Feb 2013 06:33:43 +0000 (06:33 +0000)
17 files changed:
postfix/HISTORY
postfix/README_FILES/ADDRESS_VERIFICATION_README
postfix/README_FILES/INSTALL
postfix/conf/main.cf
postfix/html/ADDRESS_VERIFICATION_README.html
postfix/html/INSTALL.html
postfix/html/postconf.5.html
postfix/man/man5/postconf.5
postfix/mantools/spell
postfix/proto/ADDRESS_VERIFICATION_README.html
postfix/proto/INSTALL.html
postfix/proto/postconf.proto
postfix/proto/stop
postfix/src/global/mail_version.h
postfix/src/milter/milter8.c
postfix/src/tlsmgr/Makefile.in
postfix/src/tlsmgr/tlsmgr.c

index a5f766d978210daa2bfe38520e9674506c05ae3d..73eebcbeac62023c9cca6eb3bb5d35a57f5a5acb 100644 (file)
@@ -13781,10 +13781,11 @@ Apologies for any names omitted.
 
 20071030
 
-       Bugfix: Postfix mistakenly enforced the 64kbyte limit (for
-       sending body parts TO Milter applications) also while
-       receiving packets FROM Milter applications.  The limit is
-       now at least 1GB.  File: milter/milter8.c.
+       Bugfix (introduced Postfix 2.3): Postfix mistakenly enforced
+       the 64kbyte limit (for sending body parts TO Milter
+       applications) also while receiving packets FROM Milter
+       applications.  The limit is now at least 1GB.  File:
+       milter/milter8.c.
 
 20071105
 
@@ -13876,8 +13877,8 @@ Apologies for any names omitted.
        features code easier.  Files: *qmgr/qmgr_transport.c,
        *qmgr/qmgr_queue.c, *qmgr/qmgr_entry.c.
 
-       Bugfix: don't update the back-to-back delivery time stamp
-       while deferring mail. File: *qmgr/qmgr_entry.c.
+       Bugfix (introduced Postfix 2.2): don't update the back-to-back
+       delivery time stamp while deferring mail. File: *qmgr/qmgr_entry.c.
 
 20071203
 
@@ -13996,8 +13997,9 @@ Apologies for any names omitted.
        *qmgr/qmgr_entry.c, smtp/smtp_connect.c,
        proto/SCHEDULER_README.html.
 
-       Bugfix: qmqpd ignored the qmqpd_client_port_logging parameter
-       setting. File: qmqpd/qmqpd.c.
+       Bugfix (introduced snapshot 20071006): qmqpd ignored the
+       qmqpd_client_port_logging parameter setting. File:
+       qmqpd/qmqpd.c.
 
 20071216
 
@@ -14009,3 +14011,21 @@ Apologies for any names omitted.
        The "tls_require_cert" is now compatible with OpenLDAP 2.1
        and later. Victor Duchovni. Files: proto/ldap_table,
        global/dict_ldap.c.
+
+20071218
+
+       Cleanup: removed the "#ifdef USE_LIBMILTER_INCLUDES"
+       dependencies on system-installed Milter protocol include
+       files. Verified that the object code has not changed. File:
+       milter/milter8.c.
+
+       Sanity check: idiot filter to detect attempts to use the
+       same database file for different TLS session caches.  File:
+       tlsmgr/tlsmgr.c.
+
+       Cleanup: updated the spell check stoplist and the spell
+       check script. Files: mantools/spell, proto/stop.
+
+       Cleanup: replaced documentation references to xxgdb by ddd.
+       The xxgdb program hasn't been updated in more than 10 years.
+       Files: proto/postconf.proto, conf/main.cf.
index 5a345085757d2cbb6897cb6d36dea093853dc642..cdb89fc6c1ec8959870d3b068948b3959a80e252 100644 (file)
@@ -246,7 +246,7 @@ this file. The file should now be stored under the Postfix-owned
 data_directory. As a migration aid, an attempt to open the file under a non-
 Postfix directory is redirected to the Postfix-owned data_directory, and a
 warning is logged. If you wish to continue using an pre-existing database file,
-move it to the data_directory, and change ownership to the account specfied
+move it to the data_directory, and change ownership to the account specified
 with the mail_owner parameter.
 
 NOTE 2: Do not put this file in a file system that may run out of space. When
index 28bd4635b8016eb5068a054266248daf413a0032..34cecbc9cc194b0b7b9092e479086c65563aca14 100644 (file)
@@ -491,7 +491,7 @@ or, if you feel nostalgic, use the Postfix sendmail command:
     # sendmail -bd -qwhatever
 
 and watch your maillog file for any error messages. The pathname is /var/log/
-maillog, /var/log/mail, /var/log/syslog, or someting else. Typically, the
+maillog, /var/log/mail, /var/log/syslog, or something else. Typically, the
 pathname is defined in the /etc/syslog.conf file.
 
     % egrep '(reject|warning|error|fatal|panic):' /some/log/file
index 41f5fa798fa635a34af9258390c87f40f29dd2e9..2264a2c75d7c5ff345af471c814748e2a4c619fc 100644 (file)
@@ -587,7 +587,7 @@ debug_peer_level = 2
 #
 debugger_command =
         PATH=/bin:/usr/bin:/usr/local/bin:/usr/X11R6/bin
-        xxgdb $daemon_directory/$process_name $process_id & sleep 5
+        ddd $daemon_directory/$process_name $process_id & sleep 5
 
 # If you can't use X, use this to capture the call stack when a
 # daemon crashes. The result is in a file in the configuration
index fa6083041f4edb1eeda75641ff442fb8338b7c8a..09587e5c0b0f43984ea4fc987b3dca8b52d8ba6c 100644 (file)
@@ -383,7 +383,7 @@ Postfix-owned <a href="postconf.5.html#data_directory">data_directory</a>. As a
 open the file under a non-Postfix directory is redirected to the
 Postfix-owned <a href="postconf.5.html#data_directory">data_directory</a>, and a warning is logged. If you wish
 to continue using an pre-existing database file, move it to the
-<a href="postconf.5.html#data_directory">data_directory</a>, and change ownership to the account specfied with
+<a href="postconf.5.html#data_directory">data_directory</a>, and change ownership to the account specified with
 the <a href="postconf.5.html#mail_owner">mail_owner</a> parameter.  </p>
 
 <p> NOTE 2: Do not put this file in a file system that may run out
index 6d0f6e4f52a9503887ae6851e1ecc2b0b627696b..0e139ec9cd86d0ab9236086d559948d41632aab9 100644 (file)
@@ -744,7 +744,7 @@ Postfix system with: </p>
 </blockquote>
 
 <p> and watch your maillog file for any error messages. The pathname
-is /var/log/maillog, /var/log/mail, /var/log/syslog, or someting
+is /var/log/maillog, /var/log/mail, /var/log/syslog, or something
 else. Typically, the pathname is defined in the /etc/syslog.conf
 file. </p>
 
index 91aa69b439ea15621c80a0f3ab8fc34ad21f1e31..d3d1e2b9b79ece7de991af7952582923ec4a6dfe 100644 (file)
@@ -1582,7 +1582,7 @@ Example:
 <pre>
 <a href="postconf.5.html#debugger_command">debugger_command</a> =
     PATH=/usr/bin:/usr/X11R6/bin
-    xxgdb $<a href="postconf.5.html#daemon_directory">daemon_directory</a>/$<a href="postconf.5.html#process_name">process_name</a> $<a href="postconf.5.html#process_id">process_id</a> &amp; sleep 5
+    ddd $<a href="postconf.5.html#daemon_directory">daemon_directory</a>/$<a href="postconf.5.html#process_name">process_name</a> $<a href="postconf.5.html#process_id">process_id</a> &amp; sleep 5
 </pre>
 
 
index 31d55efce52e1d661c6d209ddf4b1aaf4576d49e..d885c6f50ea0cf61eed84b4c552f749f19457494 100644 (file)
@@ -875,7 +875,7 @@ Example:
 .ft C
 debugger_command =
     PATH=/usr/bin:/usr/X11R6/bin
-    xxgdb $daemon_directory/$process_name $process_id & sleep 5
+    ddd $daemon_directory/$process_name $process_id & sleep 5
 .fi
 .ad
 .ft R
index d21273d7a00a210e741a6140a5d414908d630e52..291064f1f63dc57aed6b38be48323bae3c26887a 100755 (executable)
@@ -3,5 +3,5 @@
 for i in $*
 do
        echo === $i ===
-       dehtml $i | spell | fgrep -vxf proto/stop
+       mantools/html2readme $i | col -b | spell | fgrep -vxf proto/stop
 done
index 46be3f376a410ed9cc5f3218bd8c020486cb336f..8610756888955af72f8630652896d916404393d3 100644 (file)
@@ -383,7 +383,7 @@ Postfix-owned data_directory. As a migration aid, an attempt to
 open the file under a non-Postfix directory is redirected to the
 Postfix-owned data_directory, and a warning is logged. If you wish
 to continue using an pre-existing database file, move it to the
-data_directory, and change ownership to the account specfied with
+data_directory, and change ownership to the account specified with
 the mail_owner parameter.  </p>
 
 <p> NOTE 2: Do not put this file in a file system that may run out
index 74a8653c889853f45664a03d30f73c821764bc2c..bcf1077c2af5095cc3113102a68f5a7b2e53b757 100644 (file)
@@ -744,7 +744,7 @@ Postfix system with: </p>
 </blockquote>
 
 <p> and watch your maillog file for any error messages. The pathname
-is /var/log/maillog, /var/log/mail, /var/log/syslog, or someting
+is /var/log/maillog, /var/log/mail, /var/log/syslog, or something
 else. Typically, the pathname is defined in the /etc/syslog.conf
 file. </p>
 
index b81932523f4d69d9cb3428c2f207fca510ebb05d..8016c28a813e57a433ccbbdebb4d4298ffdfded2 100644 (file)
@@ -6259,7 +6259,7 @@ Example:
 <pre>
 debugger_command =
     PATH=/usr/bin:/usr/X11R6/bin
-    xxgdb $daemon_directory/$process_name $process_id &amp; sleep 5
+    ddd $daemon_directory/$process_name $process_id &amp; sleep 5
 </pre>
 
 %PARAM 2bounce_notice_recipient postmaster
index 71b0af5a1fea4e9834038c2fc9f07e441ff88535..ab197d113db1bbd91ec2b523575ff4a5136c46a1 100644 (file)
@@ -261,7 +261,6 @@ pwd
 qwhatever
 readme
 setenv
-someting
 syslog
 syslogd
 util
@@ -350,8 +349,6 @@ postfinger
 sotruss
 strace
 tcpdump
-tcpdumpx
-xxgdb
 BUILTIN
 SPAM
 website
@@ -1088,3 +1085,45 @@ xxxxxxx
 yulszqocfzsficvzzju
 yyyyyy
 zzzzzz
+BC
+DKIM
+DomainKeys
+Hmm
+Jnicke
+QAdGVzdHBhc
+RBL's
+RBLs
+RST
+SMTPS
+Spamhaus
+Ss
+Ubuntu
+blocklists
+botnet
+botnets
+bx
+cb
+co
+dest
+foreach
+int
+jp
+le
+mind's
+nqmgr's
+overinflating
+portscan
+preemptions
+ps
+qf
+refcount
+ru
+spamhaus
+stddev
+sysadmins
+timeline
+todo
+tt
+unsubscribe
+wl
+zen
index ac343169c1f0804fdb4946cc6084a512ea1cf7f4..0e5accec6947b9157cfe5584b58189a74e7e5736 100644 (file)
@@ -20,7 +20,7 @@
   * Patches change both the patchlevel and the release date. Snapshots have no
   * patchlevel; they change the release date only.
   */
-#define MAIL_RELEASE_DATE      "20071216"
+#define MAIL_RELEASE_DATE      "20071218"
 #define MAIL_VERSION_NUMBER    "2.5"
 
 #ifdef SNAPSHOT
index 2aad9612cddf3ad050d578e5359b7117f429b7ec..7f7fbb64169191680a336ba45f2e371d395840cd 100644 (file)
 
 /* Sendmail 8 Milter protocol. */
 
-#ifdef USE_LIBMILTER_INCLUDES
-
- /*
-  * Use the include files that match the installed libmilter library. This
-  * requires that the libmilter files are installed before Postfix can be
-  * built with milter support, and requires that Postfix is rebuilt whenever
-  * protocol version in these files changes. The other option (below) is to
-  * use our own protocol definitions.
-  */
-#include <libmilter/mfapi.h>
-#include <libmilter/mfdef.h>
-
- /*
-  * Compatibility for missing definitions or for names that have changed over
-  * time.
-  */
-#ifndef SMFIF_CHGBODY
-#define SMFIF_CHGBODY  SMFIF_MODBODY
-#endif
-#ifndef SMFIF_CHGHDRS
-#define SMFIF_CHGHDRS  SMFIF_MODHDRS
-#endif
-#if defined(SMFIC_UNKNOWN) && !defined(SMFIP_NOUNKNOWN)
-#define SMFIP_NOUNKNOWN        (1L<<8) /* MTA should not send unknown cmd */
-#endif
-#if defined(SMFIC_DATA) && !defined(SMFIP_NODATA)
-#define SMFIP_NODATA           (1L<<9) /* MTA should not send DATA */
-#endif
-
-#else
-
  /*
   * Use our own protocol definitions, so that Postfix can be built even when
   * libmilter is not installed. This means that we must specify the libmilter
   */
 #define MILTER_CHUNK_SIZE      65535   /* body chunk size */
 
-#endif
-
 /* Utility library. */
 
 #include <msg.h>
@@ -229,9 +196,7 @@ typedef struct {
     int     version;                   /* application protocol version */
     int     rq_mask;                   /* application requests (SMFIF_*) */
     int     ev_mask;                   /* application events (SMFIP_*) */
-#ifndef USE_LIBMILTER_INCLUDES
     int     np_mask;                   /* events outside my protocol version */
-#endif
     VSTRING *buf;                      /* I/O buffer */
     VSTRING *body;                     /* I/O buffer */
     VSTREAM *fp;                       /* stream or null (closed) */
@@ -285,8 +250,6 @@ typedef struct {
 #define XXX_MAX_DATA   (INT_MAX / 2)
 #define XXX_TIMEOUT    10
 
-#ifndef USE_LIBMILTER_INCLUDES
-
  /*
   * If we're not using Sendmail's libmilter include files, then we implement
   * the protocol up to and including version 4, and configure in main.cf what
@@ -331,8 +294,6 @@ static NAME_CODE milter8_versions[] = {
     0, -1,
 };
 
-#endif
-
  /*
   * Tables to map the above symbolic constants to printable strings. We use
   * NAME_CODE for commands and replies, and NAME_MASK for bit mask values.
@@ -914,7 +875,6 @@ static const char *milter8_event(MILTER8 *milter, int event,
     /*
      * Skip this event if it doesn't exist in the protocol that I announced.
      */
-#ifndef USE_LIBMILTER_INCLUDES
     if ((skip_event_flag & milter->np_mask) != 0) {
        if (msg_verbose)
            msg_info("skipping non-protocol event %s for milter %s",
@@ -922,7 +882,6 @@ static const char *milter8_event(MILTER8 *milter, int event,
                     smfic_name : "(unknown MTA event)", milter->m.name);
        return (milter->def_reply);
     }
-#endif
 
     /*
      * Send the macros for this event, even when we're not reporting the
@@ -1459,32 +1418,12 @@ static void milter8_connect(MILTER8 *milter)
 #endif
     );
 
-#ifdef USE_LIBMILTER_INCLUDES
-    const UINT32_TYPE my_version = SMFI_VERSION;
-    const UINT32_TYPE my_events = (SMFIP_NOCONNECT | SMFIP_NOHELO
-                                  | SMFIP_NOMAIL | SMFIP_NORCPT
-                                  | SMFIP_NOBODY | SMFIP_NOHDRS
-                                  | SMFIP_NOEOH
-#ifdef SMFIP_NOHREPL
-                                  | SMFIP_NOHREPL
-#endif
-#ifdef SMFIP_NOUNKNOWN
-                                  | SMFIP_NOUNKNOWN
-#endif
-#ifdef SMFIP_NODATA
-                                  | SMFIP_NODATA
-#endif
-    );
-
-#else
     UINT32_TYPE my_version = 0;
     UINT32_TYPE my_events = 0;
     char   *saved_version;
     char   *cp;
     char   *name;
 
-#endif
-
     /*
      * Sanity check.
      */
@@ -1492,8 +1431,6 @@ static void milter8_connect(MILTER8 *milter)
        msg_panic("%s: milter %s: socket is not closed",
                  myname, milter->m.name);
 
-#ifndef USE_LIBMILTER_INCLUDES
-
     /*
      * For user friendliness reasons the milter_protocol configuration
      * parameter can specify both the protocol version and protocol
@@ -1547,7 +1484,6 @@ static void milter8_connect(MILTER8 *milter)
                 myname, my_version,
                 str_name_mask_opt(milter->buf, "non-protocol event mask",
                           smfip_table, milter->np_mask, NAME_MASK_NUMBER));
-#endif
 
     /*
      * Parse the Milter application endpoint.
@@ -2401,9 +2337,7 @@ static int milter8_send(MILTER *m, VSTREAM *stream)
                   ATTR_TYPE_INT, MAIL_ATTR_MILT_VERS, milter->version,
                   ATTR_TYPE_INT, MAIL_ATTR_MILT_ACTS, milter->rq_mask,
                   ATTR_TYPE_INT, MAIL_ATTR_MILT_EVTS, milter->ev_mask,
-#ifndef USE_LIBMILTER_INCLUDES
                   ATTR_TYPE_INT, MAIL_ATTR_MILT_NPTS, milter->np_mask,
-#endif
                   ATTR_TYPE_INT, MAIL_ATTR_MILT_STAT, milter->state,
                   ATTR_TYPE_INT, MAIL_ATTR_MILT_CONN, milter->conn_timeout,
                   ATTR_TYPE_INT, MAIL_ATTR_MILT_CMD, milter->cmd_timeout,
@@ -2462,9 +2396,7 @@ MILTER *milter8_receive(VSTREAM *stream, MILTERS *parent)
                  ATTR_TYPE_INT, MAIL_ATTR_MILT_VERS, &version,
                  ATTR_TYPE_INT, MAIL_ATTR_MILT_ACTS, &rq_mask,
                  ATTR_TYPE_INT, MAIL_ATTR_MILT_EVTS, &ev_mask,
-#ifndef USE_LIBMILTER_INCLUDES
                  ATTR_TYPE_INT, MAIL_ATTR_MILT_NPTS, &np_mask,
-#endif
                  ATTR_TYPE_INT, MAIL_ATTR_MILT_STAT, &state,
                  ATTR_TYPE_INT, MAIL_ATTR_MILT_CONN, &conn_timeout,
                  ATTR_TYPE_INT, MAIL_ATTR_MILT_CMD, &cmd_timeout,
@@ -2489,7 +2421,7 @@ MILTER *milter8_receive(VSTREAM *stream, MILTERS *parent)
 #endif
     } else {
 #define NO_PROTOCOL    ((char *) 0)
+
        if (msg_verbose)
            msg_info("%s: milter %s", myname, STR(name_buf));
 
@@ -2502,9 +2434,7 @@ MILTER *milter8_receive(VSTREAM *stream, MILTERS *parent)
        milter->version = version;
        milter->rq_mask = rq_mask;
        milter->ev_mask = ev_mask;
-#ifndef USE_LIBMILTER_INCLUDES
        milter->np_mask = np_mask;
-#endif
        milter->state = state;
        return (&milter->m);
     }
index 597f6e650b10c3404b444e6e15005e9eb6e174b1..3d2f27447c4d5a12a3f9d04bff316a8a54416689 100644 (file)
@@ -64,6 +64,7 @@ tlsmgr.o: ../../include/attr.h
 tlsmgr.o: ../../include/data_redirect.h
 tlsmgr.o: ../../include/dict.h
 tlsmgr.o: ../../include/events.h
+tlsmgr.o: ../../include/htable.h
 tlsmgr.o: ../../include/iostuff.h
 tlsmgr.o: ../../include/mail_conf.h
 tlsmgr.o: ../../include/mail_params.h
index 2fe71b36a713e40a03b652a3111f2ecc790e5191..39843e6eb3c1c4d52df3597b2cd56f85cdb63564 100644 (file)
 #include <vstring_vstream.h>
 #include <attr.h>
 #include <set_eugid.h>
+#include <htable.h>
 
 /* Global library. */
 
@@ -275,12 +276,12 @@ static TLS_PRNG_SRC *rand_source_file;
   * State for TLS session caches.
   */
 typedef struct {
-    char   *cache_label;
-    TLS_SCACHE *cache_info;
-    int     cache_active;
-    char  **cache_db;
-    int    *cache_loglevel;
-    int    *cache_timeout;
+    char   *cache_label;               /* cache short-hand name */
+    TLS_SCACHE *cache_info;            /* cache handle */
+    int     cache_active;              /* cache status */
+    char  **cache_db;                  /* main.cf parameter value */
+    int    *cache_loglevel;            /* main.cf parameter value */
+    int    *cache_timeout;             /* main.cf parameter value */
 } TLSMGR_SCACHE;
 
 TLSMGR_SCACHE cache_table[] = {
@@ -748,6 +749,8 @@ static void tlsmgr_pre_init(char *unused_name, char **unused_argv)
     struct timeval tv;
     TLSMGR_SCACHE *ent;
     VSTRING *redirect;
+    HTABLE *dup_filter;
+    const char *dup_label;
 
     /*
      * If nothing else works then at least this will get us a few bits of
@@ -833,16 +836,22 @@ static void tlsmgr_pre_init(char *unused_name, char **unused_argv)
      * Open the session cache files and discard old information before going
      * to jail, but don't use root privilege. Start the cache maintenance
      * pseudo threads after dropping privileges.
-     * 
-     * XXX Need sanity check that the databases have different names.
      */
-    for (ent = cache_table; ent->cache_label; ++ent)
-       if (**ent->cache_db)
+    dup_filter = htable_create(sizeof(cache_table) / sizeof(cache_table[0]));
+    for (ent = cache_table; ent->cache_label; ++ent) {
+       if (**ent->cache_db) {
+           if ((dup_label = htable_find(dup_filter, *ent->cache_db)) != 0)
+               msg_fatal("do not use the same TLS cache file %s for %s and %s",
+                         *ent->cache_db, dup_label, ent->cache_label);
+           htable_enter(dup_filter, *ent->cache_db, ent->cache_label);
            ent->cache_info =
                tls_scache_open(data_redirect_map(redirect, *ent->cache_db),
                                ent->cache_label,
                                *ent->cache_loglevel >= 2,
                                *ent->cache_timeout);
+       }
+    }
+    htable_free(dup_filter, (void (*) (char *)) 0);
 
     /*
      * Clean up and restore privilege.