aboutsummaryrefslogtreecommitdiff
path: root/mfd/engine.c
diff options
context:
space:
mode:
Diffstat (limited to 'mfd/engine.c')
-rw-r--r--mfd/engine.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/mfd/engine.c b/mfd/engine.c
index e1f2de06..c9741c1b 100644
--- a/mfd/engine.c
+++ b/mfd/engine.c
@@ -271,6 +271,7 @@ mfl_smtp_io_callback(void *data, const char *key, const char *value)
271 set_last_poll_recv(env, value); 271 set_last_poll_recv(env, value);
272} 272}
273 273
274
274/* Method "strict". Verifies whether EMAIL is understood either by 275/* Method "strict". Verifies whether EMAIL is understood either by
275 host CLIENT_ADDR or one of MX servers of its domain */ 276 host CLIENT_ADDR or one of MX servers of its domain */
276mf_status 277mf_status
@@ -299,6 +300,8 @@ method_strict(eval_environ_t env, char *email, char *client_addr,
299 300
300 if (mf_resolved(rc)) 301 if (mf_resolved(rc))
301 cache_insert2(email, client_addr, rc); 302 cache_insert2(email, client_addr, rc);
303 else if (rc == mf_temp_failure)
304 schedule_callout(email, ehlo, mailfrom, client_addr);
302 } else { 305 } else {
303 set_last_poll_helo(env, ""); 306 set_last_poll_helo(env, "");
304 set_last_poll_greeting(env, ""); 307 set_last_poll_greeting(env, "");
@@ -330,10 +333,13 @@ method_standard(eval_environ_t env, char *email, char *ehlo, char *mailfrom)
330 smtp_timeout_soft, 333 smtp_timeout_soft,
331 mfl_smtp_io_callback, 334 mfl_smtp_io_callback,
332 env); 335 env);
336 smtp_io_setup_callout(io, email, ehlo, mailfrom);
333 rc = callout_standard(io); 337 rc = callout_standard(io);
334 smtp_io_free(io); 338 smtp_io_free(io);
335 if (mf_resolved(rc)) 339 if (mf_resolved(rc))
336 cache_insert(email, rc); 340 cache_insert(email, rc);
341 else if (rc == mf_temp_failure)
342 schedule_callout(email, ehlo, mailfrom, NULL);
337 } else { 343 } else {
338 set_last_poll_helo(env, ""); 344 set_last_poll_helo(env, "");
339 set_last_poll_greeting(env, ""); 345 set_last_poll_greeting(env, "");

Return to:

Send suggestions and report system problems to the System administrator.