2
0
mirror of https://github.com/vdukhovni/postfix synced 2025-08-30 13:48:06 +00:00

postfix-2.9-20110125

This commit is contained in:
Wietse Venema 2011-01-25 00:00:00 -05:00 committed by Viktor Dukhovni
parent ee034fdb56
commit e815d33b74
6 changed files with 21 additions and 4 deletions

View File

@ -16527,3 +16527,9 @@ Apologies for any names omitted.
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.

View 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 "20110124"
#define MAIL_RELEASE_DATE "20110125"
#define MAIL_VERSION_NUMBER "2.9"
#ifdef SNAPSHOT

View File

@ -10,6 +10,9 @@
/* VSTREAM *stream;
/* int timeout;
/*
/* void smtp_timeout_reset(stream)
/* VSTREAM *stream;
/*
/* void smtp_printf(stream, format, ...)
/* VSTREAM *stream;
/* const char *format;
@ -58,6 +61,12 @@
/* .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.
@ -146,9 +155,9 @@
#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);

View File

@ -33,6 +33,7 @@
#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 *);

View File

@ -4667,6 +4667,7 @@ static void smtpd_proto(SMTPD_STATE *state)
}
break;
}
smtp_timeout_reset(state->client);
/*
* XXX The client connection count/rate control must be consistent in its

View File

@ -199,7 +199,7 @@ void smtpd_chat_reply(SMTPD_STATE *state, const char *format,...)
* 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.