On Mon, Apr 03, 2017 at 05:08:58PM +0200, Christian Rößner wrote:
> I enabled the smptd_milter_maps again and triggered the problem again.
> After that I counted seconds. And while counting, I sent mails from remote
> each 5 seconds. I aborted after more than 6 minutes. Then I waited about
> 80 seconds and sent again and milters worked again. It seems the milters
> stay unused as long as there exists traffic.
>
> So the system only starts using the milters again, if there is some silence
> on the system.
>
> I think I have tested as good as I could. Hopefully you have enough
> information now.
Yes, that's enough information. Patch below:
diff --git a/src/smtpd/smtpd.c b/src/smtpd/smtpd.c
index 986264b2..1eaf1300 100644
--- a/src/smtpd/smtpd.c
+++ b/src/smtpd/smtpd.c
@@ -1461,6 +1461,7 @@ static NAMADR_LIST *hogger_list;
* Other application-specific globals.
*/
int smtpd_input_transp_mask;
+static int smtpd_input_transp_mask_saved;
/*
* Forward declarations.
@@ -5386,6 +5387,8 @@ static void setup_milters(SMTPD_STATE *state)
*/
if (state->milters == 0)
smtpd_input_transp_mask |= INPUT_TRANSP_MILTER;
+ else
+ smtpd_input_transp_mask = smtpd_input_transp_mask_saved;
}
/* teardown_milters - release resources */
@@ -5714,7 +5717,7 @@ static void post_jail_init(char *unused_name, char
**unused_argv)
* Initialize the receive transparency options: do we want unknown
* recipient checks, address mapping, header_body_checks?.
*/
- smtpd_input_transp_mask =
+ smtpd_input_transp_mask_saved = smtpd_input_transp_mask =
input_transp_mask(VAR_INPUT_TRANSP, var_input_transp);
/*
--
Viktor.