|
Neohapsis is currently accepting applications for employment. For more information, please visit our website www.neohapsis.com or email hr@neohapsis.com |
Re: "message too large" not logged in syslog
From: Wietse Venema (wietse
porcupine.org)
Date: Tue Aug 22 2006 - 08:59:52 CDT
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
Ralf Hildebrandt:
> A former collegue of mine complained that a message is not being sent
> out. I had a look around.
>
When the "message too large" test was duplicated from the
cleanup server to the SMTP server, the warning message
was not duplicated.
Another place where it isn't logged is the Milter client,
in the cleanup server.
Wietse
diff -cr /var/tmp/postfix-2.4-20060806/src/cleanup/cleanup_milter.c ./src/cleanup/cleanup_milter.c
*** /var/tmp/postfix-2.4-20060806/src/cleanup/cleanup_milter.c Wed Jul 26 15:16:08 2006
--- ./src/cleanup/cleanup_milter.c Tue Aug 22 09:57:27 2006
***************
*** 213,222 ****
static void cleanup_milter_set_error(CLEANUP_STATE *state, int err)
{
! if (err == EFBIG)
state->errs |= CLEANUP_STAT_SIZE;
! else
state->errs |= CLEANUP_STAT_WRITE;
}
/* cleanup_milter_error - return dummy error description */
--- 213,225 ----
static void cleanup_milter_set_error(CLEANUP_STATE *state, int err)
{
! if (err == EFBIG) {
! msg_warn("%s: queue file size limit exceeded", state->queue_id);
state->errs |= CLEANUP_STAT_SIZE;
! } else {
! msg_warn("%s: write queue file: %m", state->queue_id);
state->errs |= CLEANUP_STAT_WRITE;
+ }
}
/* cleanup_milter_error - return dummy error description */
diff -cr /var/tmp/postfix-2.4-20060806/src/smtpd/smtpd.c ./src/smtpd/smtpd.c
*** /var/tmp/postfix-2.4-20060806/src/smtpd/smtpd.c Wed Jul 26 20:47:39 2006
--- ./src/smtpd/smtpd.c Tue Aug 22 09:53:52 2006
***************
*** 2643,2651 ****
&& (state->proxy == 0 ? (++start, --len) == 0 : len == 1))
break;
if (state->err == CLEANUP_STAT_OK) {
! if (var_message_limit > 0 && var_message_limit - state->act_size < len + 2)
state->err = CLEANUP_STAT_SIZE;
! else {
state->act_size += len + 2;
if (out_record(out_stream, curr_rec_type, start, len) < 0)
state->err = out_error;
--- 2643,2653 ----
&& (state->proxy == 0 ? (++start, --len) == 0 : len == 1))
break;
if (state->err == CLEANUP_STAT_OK) {
! if (var_message_limit > 0 && var_message_limit - state->act_size < len + 2) {
state->err = CLEANUP_STAT_SIZE;
! msg_warn("%s: queue file size limit exceeded",
! state->queue_id ? state->queue_id : "NOQUEUE");
! } else {
state->act_size += len + 2;
if (out_record(out_stream, curr_rec_type, start, len) < 0)
state->err = out_error;
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]