Merge branch 'master' into transp_logging_1031
authorJeremy Harris <jgh146exb@wizmail.org>
Sun, 21 Jul 2013 16:15:21 +0000 (17:15 +0100)
committerJeremy Harris <jgh146exb@wizmail.org>
Sun, 21 Jul 2013 16:15:21 +0000 (17:15 +0100)
Conflicts:
src/src/readconf.c

.gitignore
src/src/exim.c
src/src/functions.h
src/src/readconf.c
test/confs/0218
test/scripts/0000-Basic/0002
test/stderr/0021
test/stderr/0218
test/stderr/2600
test/stderr/5400
test/stdout/0002

index 094ad96961ec0ae8b03fea896e2c6151822cbf26..478c603cc9213ca5013b025779103fa86c41ff38 100644 (file)
@@ -5,3 +5,4 @@ exim-packaging-*
 0*.patch
 *.orig
 *.rej
+.gdb_history
index 3f5e0e15321115485726e4de1fba293e303dcae4..1d3d327232902d31ce9cd049910a4dcbd1e8890a 100644 (file)
@@ -4273,13 +4273,12 @@ if (msg_action_arg > 0 && msg_action != MSG_DELIVER && msg_action != MSG_LOAD)
   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,
index e76cd140e294d6e5a3406c5c055d347f6ba63232..d381b569a89c7a3f62412a06feb6c7a58b07c5b3 100644 (file)
@@ -255,7 +255,7 @@ extern void    readconf_print(uschar *, uschar *, BOOL);
 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 *);
index b1b26ff67d9e0fdb8a5d1f53bfe85961e78cd079..207b3693d60d1d27cd1ebabed0bbf077d94fd5ef 100644 (file)
@@ -3972,30 +3972,15 @@ return acl_line;
 
 /* 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. */
 
@@ -4129,7 +4114,7 @@ while(next_section[0] != 0)
 
   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;
index a585870ef1bc0bd9d56035004e0dfea25a033bc9..4458e18466500788049fae32eaed33e8c2355357 100644 (file)
@@ -19,6 +19,13 @@ queue_run_in_order
 queue_only
 
 
+# ----- ACLs ----
+
+begin acl
+
+expand_check:
+  accept message = ACL
+
 # ----- Routers -----
 
 begin routers
@@ -30,11 +37,13 @@ bounce:
   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 -----
@@ -47,6 +56,7 @@ send_to_server:
   command_timeout = 1s
   hosts = 127.0.0.1
   port = PORT_S
+  debug_print = T: $transport_name  (${acl {expand_check}})
 
 
 # ----- Retry -----
index e35e4a0820842526f6b64aa3ea29cb3f9ba615da..1ea5c4a48ae783613af70985d3e8b2ab318c1ad5 100644 (file)
@@ -215,6 +215,15 @@ quote_local_part: ${quote_local_part:x:y}
 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:}
index 4f43e05c92f22a4c2e4addb3099492eaca6e0500..64c72d2bff0d39da89792f803623b916a2de5d73 100644 (file)
@@ -176,7 +176,6 @@ Exim version x.yz ....
 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
index 67ae81ee605617885b32110186abf444281e3f03..bf017625609ca6296fd137c6324f6d7ced7f651a 100644 (file)
@@ -6,9 +6,15 @@ LOG: queue_run MAIN
   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
@@ -31,6 +37,8 @@ configuration file is TESTSUITE/test-config
 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
@@ -56,9 +64,15 @@ LOG: queue_run MAIN
   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
@@ -83,6 +97,8 @@ LOG: MAIN
 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
@@ -97,7 +113,10 @@ admin user
 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
@@ -105,7 +124,11 @@ 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
@@ -135,6 +158,8 @@ configuration file is TESTSUITE/test-config
 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
index 2df984486624f1e5052f6f7f371fe6cf0a85c0bb..57026026d4471df8e695e9c4cff1a6d0e89fafcd 100644 (file)
@@ -319,7 +319,6 @@ changed uid/gid: forcing real = effective
 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
index bc3dba5ddb738dc21f95e852c4424dcdefd587ed..73934dd920a1a7aa95464d31fe10bca40344cd6c 100644 (file)
@@ -125,7 +125,6 @@ Exim version x.yz ....
 configuration file is TESTSUITE/test-config
 trusted user
 admin user
-skipping ACL configuration - not needed
 >>>>>>>>>>>>>>>> Remote deliveries >>>>>>>>>>>>>>>>
 --------> usery@domain.com <--------
 smtp transport entered
index 61144f157ea40669ccafa82f8b34aef7b03e2939..35f1bb99b149411f3809261332b33d0bfea00194 100644 (file)
 > 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: