information. Previously, the credentials would be included if given
as part of the AUTH command line and an ACL denied authentidcation.
+JH/39 Bug 2691: fix $local_part_data. When the matching list element
+ referred to a file, bad data was returned. This likely also affected
+ $domain_part_data.
+
Exim version 4.94
sss = ss + 1;
}
- ss = filebuffer + Ustrlen(filebuffer); /* trailing space */
+ ss = filebuffer + Ustrlen(filebuffer); /* trailing space */
while (ss > filebuffer && isspace(ss[-1])) ss--;
*ss = 0;
ss = filebuffer;
- while (isspace(*ss)) ss++; /* leading space */
+ while (isspace(*ss)) ss++; /* leading space */
- if (*ss == 0) continue; /* ignore empty */
+ if (!*ss) continue; /* ignore empty */
- file_yield = yield; /* positive yield */
- sss = ss; /* for debugging */
+ file_yield = yield; /* positive yield */
+ sss = ss; /* for debugging */
- if (*ss == '!') /* negation */
+ if (*ss == '!') /* negation */
{
file_yield = (file_yield == OK)? FAIL : OK;
while (isspace((*(++ss))));
(void)fclose(f);
HDEBUG(D_lists) debug_printf("%s %s (matched \"%s\" in %s)\n", ot,
yield == OK ? "yes" : "no", sss, filename);
+
+ /* The "pattern" being matched came from the file; we use a stack-local.
+ Copy it to allocated memory now we know it matched. */
+
+ if (valueptr) *valueptr = string_copy(ss);
return file_yield;
case DEFER:
--- /dev/null
+direct_file_user
retry_use_local_part
transport = appendfile
+smartuser_direct:
+ driver = accept
+ domains = test.ex
+ headers_add = "smartuser: dd=$domain_data lpd=$local_part_data"
+ local_parts = DIR/aux-fixed/TESTNUM.listL
+ retry_use_local_part
+ transport = directfile
+
default2:
driver = accept
headers_add = router: defaulted
${if eq {$local_part}{userx}{lc-userx}{\
$local_part}}}}}}
+directfile:
+ driver = appendfile
+ user = CALLER
+ headers_add = "domain_data: $domain_data\n\
+ local_part_data: $local_part_data"
+ file = DIR/test-mail/directfile
+
pipe:
driver = pipe
command = /bin/sh -c "echo $local_part $domain >DIR/test-mail/$local_part"
1999-03-02 09:44:33 10HmbE-0005vi-00 <= CALLER@test.ex U=CALLER P=local S=sss
1999-03-02 09:44:33 10HmbE-0005vi-00 => PIPE <PIPE@PIPE.DOMAIN> R=topipe T=pipe
1999-03-02 09:44:33 10HmbE-0005vi-00 Completed
+1999-03-02 09:44:33 10HmbF-0005vi-00 <= CALLER@test.ex U=CALLER P=local S=sss
+1999-03-02 09:44:33 10HmbF-0005vi-00 => direct_file_user <direct_file_user@test.ex> R=smartuser_direct T=directfile
+1999-03-02 09:44:33 10HmbF-0005vi-00 Completed
--- /dev/null
+From CALLER@test.ex Tue Mar 02 09:44:33 1999
+Received: from CALLER by the.local.host.name with local (Exim x.yz)
+ (envelope-from <CALLER@test.ex>)
+ id 10HmbF-0005vi-00
+ for direct_file_user@test.ex; Tue, 2 Mar 1999 09:44:33 +0000
+Message-Id: <E10HmbF-0005vi-00@the.local.host.name>
+From: CALLER_NAME <CALLER@test.ex>
+Date: Tue, 2 Mar 1999 09:44:33 +0000
+smartuser: dd=test.ex lpd=direct_file_user
+domain_data: test.ex
+local_part_data: direct_file_user
+
+Test use of filename in local_part list
+
Test to uppercased piped address.
.
****
+exim -odi direct_file_user@test.ex
+Test use of filename in local_part list
+.
+****