Cleanup: remove #ifdef MIGRATION_WARNING transitional code
from postscreen. File: postscreen/postscreen.c.
+
+20110124
+
+ Cleanup: use the right primitive to flush responses when
+ the Postfix SMTP server is taking an excessive amount of
+ time to process client requests. File: smtpd/smtpd_chat.c.
* Patches change both the patchlevel and the release date. Snapshots have no
* patchlevel; they change the release date only.
*/
-#define MAIL_RELEASE_DATE "20110124"
+#define MAIL_RELEASE_DATE "20110125"
#define MAIL_VERSION_NUMBER "2.9"
#ifdef SNAPSHOT
/* VSTREAM *stream;
/* int timeout;
/*
+/* void smtp_timeout_reset(stream)
+/* VSTREAM *stream;
+/*
/* void smtp_printf(stream, format, ...)
/* VSTREAM *stream;
/* const char *format;
/* .IP \f(bu
/* The stream is configured to enable exception handling.
/* .PP
+/* smtp_timeout_reset() clears the error flags and restarts
+/* the deadline timer for the named stream. This leaves the
+/* stream in a state that is suitable for the final "flush
+/* before close" operation, without depending on any other
+/* primitives provided by this module.
+/*
/* smtp_printf() formats its arguments and writes the result to
/* the named stream, followed by a CR LF pair. The stream is NOT flushed.
/* Long lines of text are not broken.
#include "smtp_stream.h"
-/* smtp_timeout_reset - reset per-stream timeout flag */
+/* smtp_timeout_reset - reset per-stream error flags and read/write deadline */
-static void smtp_timeout_reset(VSTREAM *stream)
+void smtp_timeout_reset(VSTREAM *stream)
{
vstream_clearerr(stream);
#define SMTP_ERR_NONE 4 /* non-error case */
extern void smtp_timeout_setup(VSTREAM *, int);
+extern void smtp_timeout_reset(VSTREAM *);
extern void PRINTFLIKE(2, 3) smtp_printf(VSTREAM *, const char *,...);
extern void smtp_flush(VSTREAM *);
extern int smtp_fgetc(VSTREAM *);
}
break;
}
+ smtp_timeout_reset(state->client);
/*
* XXX The client connection count/rate control must be consistent in its
* delays (tarpit delays or DNS lookups for UCE restrictions).
*/
if (delay || time((time_t *) 0) - vstream_ftime(state->client) > 10)
- vstream_fflush(state->client);
+ smtp_flush(state->client); /* fix 20110124 */
/*
* Abort immediately if the connection is broken.