0*.patch
*.orig
*.rej
+.gdb_history
exit(yield);
}
-/* All the modes below here require the remaining configuration sections
-to be read, except that we can skip over the ACL setting when delivering
-specific messages, or doing a queue run. (For various testing cases we could
-skip too, but as they are rare, it doesn't really matter.) The argument is TRUE
-for skipping. */
+/* We used to set up here to skip reading the ACL section, on
+ (msg_action_arg > 0 || (queue_interval == 0 && !daemon_listen)
+Now, since the intro of the ${acl } expansion, ACL definitions may be
+needed in transports so we lost the optimisation. */
-readconf_rest(msg_action_arg > 0 || (queue_interval == 0 && !daemon_listen));
+readconf_rest();
/* The configuration data will have been read into POOL_PERM because we won't
ever want to reset back past it. Change the current pool to POOL_MAIN. In fact,
extern uschar *readconf_printtime(int);
extern uschar *readconf_readname(uschar *, int, uschar *);
extern int readconf_readtime(uschar *, int, BOOL);
-extern void readconf_rest(BOOL);
+extern void readconf_rest();
extern uschar *readconf_retry_error(uschar *, uschar *, int *, int *);
extern void read_message_body(BOOL);
extern void receive_bomb_out(uschar *, uschar *);
/* Now the main function:
-Arguments:
- skip TRUE when this Exim process is doing something that will
- not need the ACL data
-
+Arguments: none
Returns: nothing
*/
static void
-readconf_acl(BOOL skip)
+readconf_acl(void)
{
uschar *p;
-/* Not receiving messages, don't need to parse the ACL data */
-
-/*XXX need to make this more selective */
-#ifndef EXPERIMENTAL_DBL
-if (skip)
- {
- DEBUG(D_acl) debug_printf("skipping ACL configuration - not needed\n");
- while ((p = get_config_line()) != NULL);
- return;
- }
-#endif
-
/* Read each ACL and add it into the tree. Macro (re)definitions are allowed
between ACLs. */
switch(mid)
{
- case 0: readconf_acl(skip_acl); break;
+ case 0: readconf_acl(); break;
case 1: auths_init(); break;
case 2: local_scan_init(); break;
case 3: readconf_retries(); break;
queue_only
+# ----- ACLs ----
+
+begin acl
+
+expand_check:
+ accept message = ACL
+
# ----- Routers -----
begin routers
data = :fail: just discard
retry_use_local_part
senders = :
+ debug_print = R: $router_name (${acl {expand_check}})
client:
driver = accept
retry_use_local_part
transport = send_to_server
+ debug_print = R: $router_name (${acl {expand_check}})
# ----- Transports -----
command_timeout = 1s
hosts = 127.0.0.1
port = PORT_S
+ debug_print = T: $transport_name (${acl {expand_check}})
# ----- Retry -----
quote_local_part: ${quote_local_part:ab\cd"ef}
quote_local_part: ${quote_local_part:}
rxquote:${rxquote:aZ09_,-Q} ${rxquote:ab*cd} ${rxquote:ab\cd"ef}
+hexquote: ${hexquote:\
+ \001\002\003\004\005\006\007 \010\011\012\013\014\015\016\017 \
+\020\021\022\023\024\025\026\027 \030\031\032\033\034\035\036\037 \
+\040\041\042\043\044\045\046\047 \050\051\052\053\054\055\056\057 \
+\060\061\062\063\064\065\066\067 \070\071\072\073\074\075\076\077 \
+\100\101\102\103\104\105\106\107 \110\111\112\113\114\115\116\117 \
+\120\121\122\123\124\125\126\127 \130\131\132\133\134\135\136\137 \
+\140\141\142\143\144\145\146\147 \150\151\152\153\154\155\156\157 \
+\160\161\162\163\164\165\166\167 \170\171\172\173\174\175\176\177}
substr: ${substr_3_2:rhubarb} ${s_-5_2:1234567} ${s_-5_2:12} ${s_-3_2:12}
substr: ${s_3:rhubarb} ${s_-2:rhubarb}
substr: ${s_1:}
configuration file is TESTSUITE/test-config
trusted user
admin user
-skipping ACL configuration - not needed
x in "!bad"? yes (end of list)
LOG: MAIN
=> x <x@y> R=accept T=appendfile
Start queue run: pid=pppp -qq
queue running combined directories
delivering 10HmaX-0005vi-00 (queue run pid ppppp)
+R: client (ACL)
+T: send_to_server (ACL)
delivering 10HmaY-0005vi-00 (queue run pid ppppp)
+R: client (ACL)
+T: send_to_server (ACL)
queue running combined directories
delivering 10HmaX-0005vi-00 (queue run pid ppppp)
+R: client (ACL)
+T: send_to_server (ACL)
Connecting to 127.0.0.1 [127.0.0.1]:1224 ... connected
SMTP<< 220 Server ready
SMTP>> EHLO myhost.test.ex
trusted user
admin user
delivering 10HmaY-0005vi-00 (queue run pid ppppp)
+R: client (ACL)
+T: send_to_server (ACL)
SMTP>> MAIL FROM:<CALLER@test.ex>
SMTP>> RCPT TO:<b@test.ex>
SMTP>> DATA
Start queue run: pid=pppp -qq
queue running combined directories
delivering 10HmaZ-0005vi-00 (queue run pid ppppp)
+R: client (ACL)
+T: send_to_server (ACL)
delivering 10HmbA-0005vi-00 (queue run pid ppppp)
+R: client (ACL)
+T: send_to_server (ACL)
queue running combined directories
delivering 10HmaZ-0005vi-00 (queue run pid ppppp)
+R: client (ACL)
+T: send_to_server (ACL)
Connecting to 127.0.0.1 [127.0.0.1]:1224 ... connected
SMTP<< 220 Server ready
SMTP>> EHLO myhost.test.ex
LOG: MAIN
Completed
delivering 10HmbA-0005vi-00 (queue run pid ppppp)
+R: client (ACL)
+T: send_to_server (ACL)
Connecting to 127.0.0.1 [127.0.0.1]:1224 ... failed: Connection refused
LOG: MAIN
127.0.0.1 [127.0.0.1] Connection refused
LOG: queue_run MAIN
Start queue run: pid=pppp -qqf
delivering 10HmbA-0005vi-00 (queue run pid ppppp)
+R: client (ACL)
+T: send_to_server (ACL)
delivering 10HmbB-0005vi-00 (queue run pid ppppp)
+R: bounce (ACL)
LOG: MAIN
** CALLER@test.ex F=<> R=bounce: just discard
LOG: MAIN
LOG: MAIN
Completed
delivering 10HmbC-0005vi-00 (queue run pid ppppp)
+R: client (ACL)
+T: send_to_server (ACL)
delivering 10HmbA-0005vi-00 (queue run pid ppppp)
+R: client (ACL)
+T: send_to_server (ACL)
Connecting to 127.0.0.1 [127.0.0.1]:1224 ... connected
SMTP<< 220 Server ready
SMTP>> EHLO myhost.test.ex
trusted user
admin user
delivering 10HmbC-0005vi-00 (queue run pid ppppp)
+R: client (ACL)
+T: send_to_server (ACL)
SMTP>> MAIL FROM:<CALLER@test.ex>
SMTP>> RCPT TO:<c@test.ex>
SMTP>> DATA
configuration file is TESTSUITE/test-config
trusted user
admin user
-skipping ACL configuration - not needed
seeking password data for user "CALLER": cache not available
getpwnam() succeeded uid=CALLER_UID gid=CALLER_GID
set_process_info: pppp delivering specified messages
configuration file is TESTSUITE/test-config
trusted user
admin user
-skipping ACL configuration - not needed
>>>>>>>>>>>>>>>> Remote deliveries >>>>>>>>>>>>>>>>
--------> usery@domain.com <--------
smtp transport entered
> quote_local_part: "abcd\"ef"
> quote_local_part: ""
> rxquote:aZ09\_\,\-Q ab\*cd abcd\"ef
+> hexquote: \x01\x02\x03\x04\x05\x06\x07\x20\x08\x09\x0a\x0b\x0c\x0d\x0e\x0f\x20\x10\x11\x12\x13\x14\x15\x16\x17\x20\x18\x19\x1a\x1b\x1c\x1d\x1e\x1f\x20\x20!"#$%&'\x20()*+,-./\x2001234567\x2089:;<=>?\x20@ABCDEFG\x20HIJKLMNO\x20PQRSTUVW\x20XYZ[\]^_\x20`abcdefg\x20hijklmno\x20pqrstuvw\x20xyz{|}~\x7f
> substr: ba 34 1
> substr: barb rhuba
> substr: