diff --git a/postfix/html/postkick.1.html b/postfix/html/postkick.1.html
index 67c56befc..42e579581 100644
--- a/postfix/html/postkick.1.html
+++ b/postfix/html/postkick.1.html
@@ -21,7 +21,7 @@ POSTKICK(1) POSTKICK(1)
Options:
-c config_dir
- Read the main.cf configuration file in the named
+ Read the main.cf configuration file in the named
directory instead of the default configuration
directory.
@@ -55,14 +55,14 @@ POSTKICK(1) POSTKICK(1)
Enable verbose logging for debugging purposes.
CONFIGURATION PARAMETERS
- The following main.cf parameters are especially relevant
+ The following main.cf parameters are especially relevant
to this program. The text below provides only a parameter
summary. See postconf(5) for more details including exam-
ples.
config_directory (see 'postconf -d' output)
- The default location of the Postfix main.cf and
- master.cf configuration files.
+ The default location of the Postfix main.cf and
+ master.cf configuration files.
application_event_drain_time (100s)
How long the postkick(1) command waits for a
diff --git a/postfix/makedefs b/postfix/makedefs
index 31b1c9ead..724bea453 100644
--- a/postfix/makedefs
+++ b/postfix/makedefs
@@ -266,7 +266,7 @@ case "$SYSTEM.$RELEASE" in
2.[0-3].*) CCARGS="$CCARGS -DNO_IPV6";;
esac
;;
- GNU.0.*)
+ GNU.0*|GNU/kFreeBSD.[56]*)
SYSTYPE=GNU0
# Postfix no longer needs DB 1.85 compatibility
if [ -f /usr/include/db.h ]
diff --git a/postfix/src/global/mail_version.h b/postfix/src/global/mail_version.h
index 6cfd84f5e..20e12eb06 100644
--- a/postfix/src/global/mail_version.h
+++ b/postfix/src/global/mail_version.h
@@ -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 "20070201"
+#define MAIL_RELEASE_DATE "20070202"
#define MAIL_VERSION_NUMBER "2.4"
#ifdef SNAPSHOT
diff --git a/postfix/src/postkick/postkick.c b/postfix/src/postkick/postkick.c
index 721e9ac8e..8446f4069 100644
--- a/postfix/src/postkick/postkick.c
+++ b/postfix/src/postkick/postkick.c
@@ -174,7 +174,18 @@ int main(int argc, char **argv)
msg_warn("Cannot contact class %s service %s - perhaps the mail system is down",
class, service);
exit(1);
- } else {
+ }
+
+ /*
+ * Problem: With triggers over full duplex (i.e. non-FIFO) channels, we
+ * must avoid closing the channel before the server has received the
+ * request. Otherwise some hostile kernel may throw away the request.
+ *
+ * Solution: The trigger routine registers a read event handler that runs
+ * when the server closes the channel. The event_drain() routine waits
+ * for the event handler to run, but gives up when it takes too long.
+ */
+ else {
event_drain(var_event_drain);
exit(0);
}