X-Git-Url: https://git.exim.org/exim.git/blobdiff_plain/059ec3d9952740285fb1ebf47961b8aca2eb1b4a..4deaf07d6cdd04468e4bc383945b9e19d7d55aa3:/src/src/smtp_in.c diff --git a/src/src/smtp_in.c b/src/src/smtp_in.c index 8bc12debf..e3b4dcece 100644 --- a/src/src/smtp_in.c +++ b/src/src/smtp_in.c @@ -1,4 +1,4 @@ -/* $Cambridge: exim/src/src/smtp_in.c,v 1.1 2004/10/07 10:39:01 ph10 Exp $ */ +/* $Cambridge: exim/src/src/smtp_in.c,v 1.4 2004/11/04 12:19:48 ph10 Exp $ */ /************************************************* * Exim - an Internet mail transport agent * @@ -803,8 +803,10 @@ rcpt_count = rcpt_defer_count = rcpt_fail_count = message_size = -1; acl_warn_headers = NULL; queue_only_policy = FALSE; -deliver_freeze = FALSE; /* Can be set by ACL */ -submission_mode = FALSE; /* Can be set by ACL */ +deliver_freeze = FALSE; /* Can be set by ACL */ +submission_mode = FALSE; /* Can be set by ACL */ +active_local_from_check = local_from_check; /* Can be set by ACL */ +active_local_sender_retain = local_sender_retain; /* Can be set by ACL */ sender_address = NULL; raw_sender = NULL; /* After SMTP rewrite, before qualifying */ sender_address_unrewritten = NULL; /* Set only after verify rewrite */ @@ -3031,9 +3033,14 @@ while (done <= 0) smtp_printf("554 Too many recipients\r\n"); break; } - - rc = (acl_smtp_predata == NULL)? OK : - acl_check(ACL_WHERE_PREDATA, NULL, acl_smtp_predata, &user_msg, &log_msg); + + if (acl_smtp_predata == NULL) rc = OK; else + { + enable_dollar_recipients = TRUE; + rc = acl_check(ACL_WHERE_PREDATA, NULL, acl_smtp_predata, &user_msg, + &log_msg); + enable_dollar_recipients = FALSE; + } if (rc == OK) { @@ -3071,7 +3078,7 @@ while (done <= 0) { address_item *addr = deliver_make_addr(address, FALSE); switch(verify_address(addr, NULL, vopt_is_recipient | vopt_qualify, -1, - -1, NULL, NULL, NULL)) + -1, -1, NULL, NULL, NULL)) { case OK: s = string_sprintf("250 <%s> is deliverable", address); @@ -3108,7 +3115,8 @@ while (done <= 0) BOOL save_log_testing_mode = log_testing_mode; address_test_mode = log_testing_mode = TRUE; (void) verify_address(deliver_make_addr(smtp_data, FALSE), smtp_out, - vopt_is_recipient | vopt_qualify | vopt_expn, -1, -1, NULL, NULL, NULL); + vopt_is_recipient | vopt_qualify | vopt_expn, -1, -1, -1, NULL, NULL, + NULL); address_test_mode = FALSE; log_testing_mode = save_log_testing_mode; /* true for -bh */ }