summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorJeremy Harris <jgh146exb@wizmail.org>2020-04-06 00:28:06 +0100
committerJeremy Harris <jgh146exb@wizmail.org>2020-04-06 13:14:05 +0100
commit0b4dfe7aa1f12214abdfa1037497d6c49a471612 (patch)
tree7a033655ce31568e0fd78417b4b98fa3143668cd /test
parentba74fb8d95d2e9af2122e0a95c4d5334b4f0466c (diff)
MySQL, pgsql: per-query server options outside the lookup string. Bug 2546
Diffstat (limited to 'test')
-rw-r--r--test/confs/261027
-rw-r--r--test/confs/262026
-rw-r--r--test/stderr/2610155
-rw-r--r--test/stderr/2620206
4 files changed, 361 insertions, 53 deletions
diff --git a/test/confs/2610 b/test/confs/2610
index 9e2217215..5a964276e 100644
--- a/test/confs/2610
+++ b/test/confs/2610
@@ -11,7 +11,9 @@ hostlist relay_hosts = net-mysql;select * from them where id='$sender_host_add
acl_smtp_rcpt = check_recipient
-mysql_servers = 127.0.0.1::PORT_N/test/root/
+PARTIAL = 127.0.0.1::PORT_N
+SSPEC = PARTIAL/test/root/
+mysql_servers = SSPEC
# ----- ACL -----
@@ -19,6 +21,29 @@ mysql_servers = 127.0.0.1::PORT_N/test/root/
begin acl
check_recipient:
+ # Tainted-data checks
+ warn
+ # taint only in lookup string
+ set acl_m0 = ok: ${lookup mysql {select name from them where id = '$local_part'}}
+ # option on lookup type unaffected
+ set acl_m0 = ok: ${lookup mysql,servers=SSPEC {select name from them where id = '$local_part'}}
+ # partial server-spec, indexing main-option, works
+ set acl_m0 = ok: ${lookup mysql,servers=PARTIAL {select name from them where id = '$local_part'}}
+ # oldstyle server spec, prepended to lookup string, fails with taint
+ set acl_m0 = FAIL: ${lookup mysql {servers=SSPEC; select name from them where id = '$local_part'}}
+
+ # In list-stle lookup, tainted lookup string is ok if server spec comes from main-option
+ warn set acl_m0 = ok: hostlist
+ hosts = net-mysql;select * from them where id='$local_part'
+ # ... but setting a per-query servers spec fails due to the taint
+ warn set acl_m0 = FAIL: hostlist
+ hosts = <& net-mysql;servers=SSPEC; select * from them where id='$local_part'
+
+ # The newer server-list-as-option-to-lookup-type is not a solution to tainted data in the lookup, because
+ # string-expansion is done before list-expansion so the taint contaminates the entire list.
+ warn set acl_m0 = FAIL: hostlist
+ hosts = <& net-mysql,servers=SSPEC; select * from them where id='$local_part'
+
accept domains = +local_domains
accept hosts = +relay_hosts
deny message = relay not permitted
diff --git a/test/confs/2620 b/test/confs/2620
index 009e74fd8..e63fca286 100644
--- a/test/confs/2620
+++ b/test/confs/2620
@@ -1,6 +1,7 @@
# Exim test configuration 2620
-SERVERS=localhost::PORT_N/test/CALLER/
+PARTIAL=localhost::PORT_N
+SERVERS=PARTIAL/test/CALLER/
.include DIR/aux-var/std_conf_prefix
@@ -22,6 +23,29 @@ pgsql_servers = SERVERS
begin acl
check_recipient:
+ # Tainted-data checks
+ warn
+ # taint only in lookup string
+ set acl_m0 = ok: ${lookup pgsql {select name from them where id = '$local_part'}}
+ # option on lookup type unaffected
+ set acl_m0 = ok: ${lookup pgsql,servers=SSPEC {select name from them where id = '$local_part'}}
+ # partial server-spec, indexing main-option, works
+ set acl_m0 = ok: ${lookup pgsql,servers=PARTIAL {select name from them where id = '$local_part'}}
+ # oldstyle server spec, prepended to lookup string, fails with taint
+ set acl_m0 = FAIL: ${lookup pgsql {servers=SSPEC; select name from them where id = '$local_part'}}
+
+ # In list-stle lookup, tainted lookup string is ok if server spec comes from main-option
+ warn set acl_m0 = ok: hostlist
+ hosts = net-pgsql;select * from them where id='$local_part'
+ # ... but setting a per-query servers spec fails due to the taint
+ warn set acl_m0 = FAIL: hostlist
+ hosts = <& net-pgsql;servers=SSPEC; select * from them where id='$local_part'
+
+ # The newer server-list-as-option-to-lookup-type is not a solution to tainted data in the lookup, because
+ # string-expansion is done before list-expansion so the taint contaminates the entire list.
+ warn set acl_m0 = FAIL: hostlist
+ hosts = <& net-pgsql,servers=SSPEC; select * from them where id='$local_part'
+
accept domains = +local_domains
accept hosts = +relay_hosts
deny message = relay not permitted
diff --git a/test/stderr/2610 b/test/stderr/2610
index a59624c15..951ddecff 100644
--- a/test/stderr/2610
+++ b/test/stderr/2610
@@ -9,7 +9,7 @@ dropping to exim gid; retaining priv uid
internal_search_find: file="NULL"
type=mysql key="select name from them where id='ph10';" opts=NULL
database lookup required for select name from them where id='ph10';
- MySQL query: select name from them where id='ph10';
+ MySQL query: "select name from them where id='ph10';" opts 'NULL'
MYSQL new connection: host=127.0.0.1 port=1223 socket=NULL database=test user=root
lookup yielded: Philip Hazel
search_open: mysql "NULL"
@@ -29,7 +29,7 @@ dropping to exim gid; retaining priv uid
internal_search_find: file="NULL"
type=mysql key="select name from them where id='xxxx';" opts=NULL
database lookup required for select name from them where id='xxxx';
- MySQL query: select name from them where id='xxxx';
+ MySQL query: "select name from them where id='xxxx';" opts 'NULL'
MYSQL using cached connection for 127.0.0.1:1223/test/root
MYSQL: no data found
lookup failed
@@ -41,7 +41,7 @@ dropping to exim gid; retaining priv uid
internal_search_find: file="NULL"
type=mysql key="select name from them where id='nothing';" opts=NULL
database lookup required for select name from them where id='nothing';
- MySQL query: select name from them where id='nothing';
+ MySQL query: "select name from them where id='nothing';" opts 'NULL'
MYSQL using cached connection for 127.0.0.1:1223/test/root
lookup yielded:
search_open: mysql "NULL"
@@ -52,7 +52,7 @@ dropping to exim gid; retaining priv uid
internal_search_find: file="NULL"
type=mysql key="select id,name from them where id='nothing';" opts=NULL
database lookup required for select id,name from them where id='nothing';
- MySQL query: select id,name from them where id='nothing';
+ MySQL query: "select id,name from them where id='nothing';" opts 'NULL'
MYSQL using cached connection for 127.0.0.1:1223/test/root
lookup yielded: id=nothing name=""
search_open: mysql "NULL"
@@ -63,7 +63,7 @@ dropping to exim gid; retaining priv uid
internal_search_find: file="NULL"
type=mysql key="delete from them where id='nonexist';" opts=NULL
database lookup required for delete from them where id='nonexist';
- MySQL query: delete from them where id='nonexist';
+ MySQL query: "delete from them where id='nonexist';" opts 'NULL'
MYSQL using cached connection for 127.0.0.1:1223/test/root
MYSQL: query was not one that returns data
lookup forced cache cleanup
@@ -76,7 +76,7 @@ dropping to exim gid; retaining priv uid
internal_search_find: file="NULL"
type=mysql key="select * from them where id='quote';" opts=NULL
database lookup required for select * from them where id='quote';
- MySQL query: select * from them where id='quote';
+ MySQL query: "select * from them where id='quote';" opts 'NULL'
MYSQL using cached connection for 127.0.0.1:1223/test/root
MYSQL: no data found
lookup failed
@@ -88,7 +88,7 @@ dropping to exim gid; retaining priv uid
internal_search_find: file="NULL"
type=mysql key="select * from them where id='filter';" opts=NULL
database lookup required for select * from them where id='filter';
- MySQL query: select * from them where id='filter';
+ MySQL query: "select * from them where id='filter';" opts 'NULL'
MYSQL using cached connection for 127.0.0.1:1223/test/root
MYSQL: no data found
lookup failed
@@ -100,7 +100,7 @@ dropping to exim gid; retaining priv uid
internal_search_find: file="NULL"
type=mysql key="select * from them where id='quote2';" opts=NULL
database lookup required for select * from them where id='quote2';
- MySQL query: select * from them where id='quote2';
+ MySQL query: "select * from them where id='quote2';" opts 'NULL'
MYSQL using cached connection for 127.0.0.1:1223/test/root
lookup yielded: name="\"stquot" id=quote2
search_open: mysql "NULL"
@@ -111,7 +111,7 @@ dropping to exim gid; retaining priv uid
internal_search_find: file="NULL"
type=mysql key="select * from them where id='nlonly';" opts=NULL
database lookup required for select * from them where id='nlonly';
- MySQL query: select * from them where id='nlonly';
+ MySQL query: "select * from them where id='nlonly';" opts 'NULL'
MYSQL using cached connection for 127.0.0.1:1223/test/root
MYSQL: no data found
lookup failed
@@ -123,7 +123,7 @@ dropping to exim gid; retaining priv uid
internal_search_find: file="NULL"
type=mysql key="servers=x:127.0.0.1::1223; select name from them where id='ph10';" opts=NULL
database lookup required for servers=x:127.0.0.1::1223; select name from them where id='ph10';
- MySQL query: servers=x:127.0.0.1::1223; select name from them where id='ph10';
+ MySQL query: "servers=x:127.0.0.1::1223; select name from them where id='ph10';" opts 'NULL'
lookup deferred: MySQL server "x" not found in mysql_servers
search_open: mysql "NULL"
cached open
@@ -133,7 +133,7 @@ dropping to exim gid; retaining priv uid
internal_search_find: file="NULL"
type=mysql key="servers=127.0.0.1::1223:x; select name from them where id='ph10';" opts=NULL
database lookup required for servers=127.0.0.1::1223:x; select name from them where id='ph10';
- MySQL query: servers=127.0.0.1::1223:x; select name from them where id='ph10';
+ MySQL query: "servers=127.0.0.1::1223:x; select name from them where id='ph10';" opts 'NULL'
MYSQL using cached connection for 127.0.0.1:1223/test/root
lookup yielded: Philip Hazel
search_open: mysql "NULL"
@@ -144,7 +144,7 @@ dropping to exim gid; retaining priv uid
internal_search_find: file="NULL"
type=mysql key="servers=127.0.0.1::1223/test/root/:x; select name from them where id='ph10';" opts=NULL
database lookup required for servers=127.0.0.1::1223/test/root/:x; select name from them where id='ph10';
- MySQL query: servers=127.0.0.1::1223/test/root/:x; select name from them where id='ph10';
+ MySQL query: "servers=127.0.0.1::1223/test/root/:x; select name from them where id='ph10';" opts 'NULL'
MYSQL using cached connection for 127.0.0.1:1223/test/root
lookup yielded: Philip Hazel
search_open: mysql "NULL"
@@ -155,7 +155,7 @@ dropping to exim gid; retaining priv uid
internal_search_find: file="NULL"
type=mysql key="servers=ip4.ip4.ip4.ip4::1223/test/root/:127.0.0.1::1223; select name from them where id='ph10';" opts=NULL
database lookup required for servers=ip4.ip4.ip4.ip4::1223/test/root/:127.0.0.1::1223; select name from them where id='ph10';
- MySQL query: servers=ip4.ip4.ip4.ip4::1223/test/root/:127.0.0.1::1223; select name from them where id='ph10';
+ MySQL query: "servers=ip4.ip4.ip4.ip4::1223/test/root/:127.0.0.1::1223; select name from them where id='ph10';" opts 'NULL'
MYSQL new connection: host=ip4.ip4.ip4.ip4 port=1223 socket=NULL database=test user=root
lookup yielded: Philip Hazel
search_open: mysql "NULL"
@@ -166,7 +166,7 @@ dropping to exim gid; retaining priv uid
internal_search_find: file="NULL"
type=mysql key="servers=localhost(TESTSUITE/mysql/sock)/test/root/; select name from them where id='ph10';" opts=NULL
database lookup required for servers=localhost(TESTSUITE/mysql/sock)/test/root/; select name from them where id='ph10';
- MySQL query: servers=localhost(TESTSUITE/mysql/sock)/test/root/; select name from them where id='ph10';
+ MySQL query: "servers=localhost(TESTSUITE/mysql/sock)/test/root/; select name from them where id='ph10';" opts 'NULL'
MYSQL new connection: host=localhost port=0 socket=TESTSUITE/mysql/sock database=test user=root
lookup yielded: Philip Hazel
search_open: mysql "NULL"
@@ -177,7 +177,7 @@ dropping to exim gid; retaining priv uid
internal_search_find: file="NULL"
type=mysql key="SELECT name FROM them WHERE id IN ('ph10', 'aaaa');" opts=NULL
database lookup required for SELECT name FROM them WHERE id IN ('ph10', 'aaaa');
- MySQL query: SELECT name FROM them WHERE id IN ('ph10', 'aaaa');
+ MySQL query: "SELECT name FROM them WHERE id IN ('ph10', 'aaaa');" opts 'NULL'
MYSQL using cached connection for 127.0.0.1:1223/test/root
lookup yielded: Philip Hazel
Aristotle
@@ -189,7 +189,7 @@ dropping to exim gid; retaining priv uid
internal_search_find: file="NULL"
type=mysql key="SELECT * FROM them WHERE id IN ('ph10', 'aaaa');" opts=NULL
database lookup required for SELECT * FROM them WHERE id IN ('ph10', 'aaaa');
- MySQL query: SELECT * FROM them WHERE id IN ('ph10', 'aaaa');
+ MySQL query: "SELECT * FROM them WHERE id IN ('ph10', 'aaaa');" opts 'NULL'
MYSQL using cached connection for 127.0.0.1:1223/test/root
lookup yielded: name="Philip Hazel" id=ph10
name=Aristotle id=aaaa
@@ -201,7 +201,7 @@ dropping to exim gid; retaining priv uid
internal_search_find: file="NULL"
type=mysql key="delete from them where id='aaaa'" opts=NULL
database lookup required for delete from them where id='aaaa'
- MySQL query: delete from them where id='aaaa'
+ MySQL query: "delete from them where id='aaaa'" opts 'NULL'
MYSQL using cached connection for 127.0.0.1:1223/test/root
MYSQL: query was not one that returns data
lookup forced cache cleanup
@@ -243,28 +243,135 @@ log directory space = nnnnnK inodes = nnnnn check_space = 10240K inodes = 100
SMTP>> 250 OK
SMTP<< rcpt to:<c@d>
using ACL "check_recipient"
-processing "accept" (TESTSUITE/test-config 22)
+processing "warn" (TESTSUITE/test-config 25)
+ search_open: mysql "NULL"
+ search_find: file="NULL"
+ key="select name from them where id = 'c'" partial=-1 affix=NULL starflags=0 opts=NULL
+ LRU list:
+ internal_search_find: file="NULL"
+ type=mysql key="select name from them where id = 'c'" opts=NULL
+ database lookup required for select name from them where id = 'c'
+ MySQL query: "select name from them where id = 'c'" opts 'NULL'
+ MYSQL new connection: host=127.0.0.1 port=1223 socket=NULL database=test user=root
+ MYSQL: no data found
+ lookup failed
+check set acl_m0 = ok: ${lookup mysql {select name from them where id = '$local_part'}}
+ = ok:
+ search_open: mysql "NULL"
+ cached open
+ search_find: file="NULL"
+ key="select name from them where id = 'c'" partial=-1 affix=NULL starflags=0 opts="servers=127.0.0.1::1223/test/root/"
+ LRU list:
+ internal_search_find: file="NULL"
+ type=mysql key="select name from them where id = 'c'" opts="servers=127.0.0.1::1223/test/root/"
+ cached data found but either wrong opts or dated; database lookup required for select name from them where id = 'c'
+ MySQL query: "select name from them where id = 'c'" opts 'servers=127.0.0.1::1223/test/root/'
+ MYSQL using cached connection for 127.0.0.1:1223/test/root
+ MYSQL: no data found
+ lookup failed
+check set acl_m0 = ok: ${lookup mysql,servers=127.0.0.1::1223/test/root/ {select name from them where id = '$local_part'}}
+ = ok:
+ search_open: mysql "NULL"
+ cached open
+ search_find: file="NULL"
+ key="select name from them where id = 'c'" partial=-1 affix=NULL starflags=0 opts="servers=127.0.0.1::1223"
+ LRU list:
+ internal_search_find: file="NULL"
+ type=mysql key="select name from them where id = 'c'" opts="servers=127.0.0.1::1223"
+ cached data found but either wrong opts or dated; database lookup required for select name from them where id = 'c'
+ MySQL query: "select name from them where id = 'c'" opts 'servers=127.0.0.1::1223'
+ MYSQL using cached connection for 127.0.0.1:1223/test/root
+ MYSQL: no data found
+ lookup failed
+check set acl_m0 = ok: ${lookup mysql,servers=127.0.0.1::1223 {select name from them where id = '$local_part'}}
+ = ok:
+ search_open: mysql "NULL"
+ cached open
+ search_find: file="NULL"
+ key="servers=127.0.0.1::1223/test/root/; select name from them where id = 'c'" partial=-1 affix=NULL starflags=0 opts=NULL
+ LRU list:
+ internal_search_find: file="NULL"
+ type=mysql key="servers=127.0.0.1::1223/test/root/; select name from them where id = 'c'" opts=NULL
+ database lookup required for servers=127.0.0.1::1223/test/root/; select name from them where id = 'c'
+ MySQL query: "servers=127.0.0.1::1223/test/root/; select name from them where id = 'c'" opts 'NULL'
+ lookup deferred: MySQL server "127.0.0.1:1223/test/root/" is tainted
+warn: condition test deferred in ACL "check_recipient"
+LOG: MAIN
+ H=[10.0.0.0] Warning: ACL "warn" statement skipped: condition test deferred: MySQL server "127.0.0.1:1223/test/root/" is tainted
+processing "warn" (TESTSUITE/test-config 36)
+check set acl_m0 = ok: hostlist
+check hosts = net-mysql;select * from them where id='$local_part'
+search_open: mysql "NULL"
+ cached open
+search_find: file="NULL"
+ key="select * from them where id='c'" partial=-1 affix=NULL starflags=0 opts=NULL
+LRU list:
+internal_search_find: file="NULL"
+ type=mysql key="select * from them where id='c'" opts=NULL
+database lookup required for select * from them where id='c'
+MySQL query: "select * from them where id='c'" opts 'NULL'
+MYSQL using cached connection for 127.0.0.1:1223/test/root
+MYSQL: no data found
+lookup failed
+host in "net-mysql;select * from them where id='c'"? no (end of list)
+warn: condition test failed in ACL "check_recipient"
+processing "warn" (TESTSUITE/test-config 39)
+check set acl_m0 = FAIL: hostlist
+check hosts = <& net-mysql;servers=127.0.0.1::1223/test/root/; select * from them where id='$local_part'
+search_open: mysql "NULL"
+ cached open
+search_find: file="NULL"
+ key="servers=127.0.0.1::1223/test/root/; select * from them where id='c'" partial=-1 affix=NULL starflags=0 opts=NULL
+LRU list:
+internal_search_find: file="NULL"
+ type=mysql key="servers=127.0.0.1::1223/test/root/; select * from them where id='c'" opts=NULL
+database lookup required for servers=127.0.0.1::1223/test/root/; select * from them where id='c'
+MySQL query: "servers=127.0.0.1::1223/test/root/; select * from them where id='c'" opts 'NULL'
+lookup deferred: MySQL server "127.0.0.1:1223/test/root/" is tainted
+host in "<& net-mysql;servers=127.0.0.1::1223/test/root/; select * from them where id='c'"? list match deferred for net-mysql;servers=127.0.0.1::1223/test/root/; select * from them where id='c'
+warn: condition test deferred in ACL "check_recipient"
+LOG: MAIN
+ H=[10.0.0.0] Warning: ACL "warn" statement skipped: condition test deferred: MySQL server "127.0.0.1:1223/test/root/" is tainted
+processing "warn" (TESTSUITE/test-config 44)
+check set acl_m0 = FAIL: hostlist
+check hosts = <& net-mysql,servers=127.0.0.1::1223/test/root/; select * from them where id='$local_part'
+search_open: mysql "NULL"
+ cached open
+search_find: file="NULL"
+ key=" select * from them where id='c'" partial=-1 affix=NULL starflags=0 opts="servers=127.0.0.1::1223/test/root/"
+LRU list:
+internal_search_find: file="NULL"
+ type=mysql key=" select * from them where id='c'" opts="servers=127.0.0.1::1223/test/root/"
+database lookup required for select * from them where id='c'
+MySQL query: " select * from them where id='c'" opts 'servers=127.0.0.1::1223/test/root/'
+lookup deferred: MySQL server "127.0.0.1:1223/test/root/" is tainted
+host in "<& net-mysql,servers=127.0.0.1::1223/test/root/; select * from them where id='c'"? list match deferred for net-mysql,servers=127.0.0.1::1223/test/root/; select * from them where id='c'
+warn: condition test deferred in ACL "check_recipient"
+LOG: MAIN
+ H=[10.0.0.0] Warning: ACL "warn" statement skipped: condition test deferred: MySQL server "127.0.0.1:1223/test/root/" is tainted
+processing "accept" (TESTSUITE/test-config 47)
check domains = +local_domains
d in "@"? no (end of list)
d in "+local_domains"? no (end of list)
accept: condition test failed in ACL "check_recipient"
-processing "accept" (TESTSUITE/test-config 23)
+processing "accept" (TESTSUITE/test-config 48)
check hosts = +relay_hosts
search_open: mysql "NULL"
+ cached open
search_find: file="NULL"
key="select * from them where id='10.0.0.0'" partial=-1 affix=NULL starflags=0 opts=NULL
LRU list:
internal_search_find: file="NULL"
type=mysql key="select * from them where id='10.0.0.0'" opts=NULL
database lookup required for select * from them where id='10.0.0.0'
-MySQL query: select * from them where id='10.0.0.0'
-MYSQL new connection: host=127.0.0.1 port=1223 socket=NULL database=test user=root
+MySQL query: "select * from them where id='10.0.0.0'" opts 'NULL'
+MYSQL using cached connection for 127.0.0.1:1223/test/root
MYSQL: no data found
lookup failed
host in "net-mysql;select * from them where id='10.0.0.0'"? no (end of list)
host in "+relay_hosts"? no (end of list)
accept: condition test failed in ACL "check_recipient"
-processing "deny" (TESTSUITE/test-config 24)
+processing "deny" (TESTSUITE/test-config 49)
message: relay not permitted
deny: condition test succeeded in ACL "check_recipient"
end of ACL "check_recipient": DENY
@@ -374,7 +481,7 @@ processing address_data
internal_search_find: file="NULL"
type=mysql key="select name from them where id='ph10'" opts=NULL
database lookup required for select name from them where id='ph10'
- MySQL query: select name from them where id='ph10'
+ MySQL query: "select name from them where id='ph10'" opts 'NULL'
MYSQL new connection: host=127.0.0.1 port=1223 socket=NULL database=test user=root
lookup yielded: Philip Hazel
calling r1 router
@@ -418,7 +525,7 @@ appendfile transport entered
internal_search_find: file="NULL"
type=mysql key="select id from them where id='ph10'" opts=NULL
database lookup required for select id from them where id='ph10'
- MySQL query: select id from them where id='ph10'
+ MySQL query: "select id from them where id='ph10'" opts 'NULL'
MYSQL new connection: host=127.0.0.1 port=1223 socket=NULL database=test user=root
lookup yielded: ph10
appendfile: mode=600 notify_comsat=0 quota=0 warning=0
diff --git a/test/stderr/2620 b/test/stderr/2620
index 2eae8eeca..337d51850 100644
--- a/test/stderr/2620
+++ b/test/stderr/2620
@@ -13,7 +13,7 @@ dropping to exim gid; retaining priv uid
internal_search_find: file="NULL"
type=pgsql key="select name from them where id='ph10';" opts=NULL
database lookup required for select name from them where id='ph10';
- PostgreSQL query: select name from them where id='ph10';
+ PostgreSQL query: "select name from them where id='ph10';" opts 'NULL'
PGSQL new connection: host=localhost port=1223 database=test user=CALLER
lookup yielded: Philip Hazel
search_open: pgsql "NULL"
@@ -33,7 +33,7 @@ dropping to exim gid; retaining priv uid
internal_search_find: file="NULL"
type=pgsql key="select name from them where id='xxxx';" opts=NULL
database lookup required for select name from them where id='xxxx';
- PostgreSQL query: select name from them where id='xxxx';
+ PostgreSQL query: "select name from them where id='xxxx';" opts 'NULL'
PGSQL using cached connection for localhost:1223/test/CALLER
PGSQL: no data found
lookup failed
@@ -45,7 +45,7 @@ dropping to exim gid; retaining priv uid
internal_search_find: file="NULL"
type=pgsql key="select name from them where id='nothing';" opts=NULL
database lookup required for select name from them where id='nothing';
- PostgreSQL query: select name from them where id='nothing';
+ PostgreSQL query: "select name from them where id='nothing';" opts 'NULL'
PGSQL using cached connection for localhost:1223/test/CALLER
lookup yielded:
search_open: pgsql "NULL"
@@ -56,7 +56,7 @@ dropping to exim gid; retaining priv uid
internal_search_find: file="NULL"
type=pgsql key="select id,name from them where id='nothing';" opts=NULL
database lookup required for select id,name from them where id='nothing';
- PostgreSQL query: select id,name from them where id='nothing';
+ PostgreSQL query: "select id,name from them where id='nothing';" opts 'NULL'
PGSQL using cached connection for localhost:1223/test/CALLER
lookup yielded: id=nothing name=""
search_open: pgsql "NULL"
@@ -67,7 +67,7 @@ dropping to exim gid; retaining priv uid
internal_search_find: file="NULL"
type=pgsql key="delete from them where id='nonexist';" opts=NULL
database lookup required for delete from them where id='nonexist';
- PostgreSQL query: delete from them where id='nonexist';
+ PostgreSQL query: "delete from them where id='nonexist';" opts 'NULL'
PGSQL using cached connection for localhost:1223/test/CALLER
PGSQL: command does not return any data but was successful. Rows affected: 0
lookup forced cache cleanup
@@ -80,7 +80,7 @@ dropping to exim gid; retaining priv uid
internal_search_find: file="NULL"
type=pgsql key="select * from them where id='quote2';" opts=NULL
database lookup required for select * from them where id='quote2';
- PostgreSQL query: select * from them where id='quote2';
+ PostgreSQL query: "select * from them where id='quote2';" opts 'NULL'
PGSQL using cached connection for localhost:1223/test/CALLER
lookup yielded: name="\"stquot" id=quote2
search_open: pgsql "NULL"
@@ -91,7 +91,7 @@ dropping to exim gid; retaining priv uid
internal_search_find: file="NULL"
type=pgsql key="select * from them where id='newline';" opts=NULL
database lookup required for select * from them where id='newline';
- PostgreSQL query: select * from them where id='newline';
+ PostgreSQL query: "select * from them where id='newline';" opts 'NULL'
PGSQL using cached connection for localhost:1223/test/CALLER
lookup yielded: name="before
after" id=newline
@@ -103,7 +103,7 @@ dropping to exim gid; retaining priv uid
internal_search_find: file="NULL"
type=pgsql key="select * from them where id='tab';" opts=NULL
database lookup required for select * from them where id='tab';
- PostgreSQL query: select * from them where id='tab';
+ PostgreSQL query: "select * from them where id='tab';" opts 'NULL'
PGSQL using cached connection for localhost:1223/test/CALLER
lookup yielded: name="x x" id=tab
search_open: pgsql "NULL"
@@ -114,7 +114,7 @@ dropping to exim gid; retaining priv uid
internal_search_find: file="NULL"
type=pgsql key="select * from them where name='''stquot';" opts=NULL
database lookup required for select * from them where name='''stquot';
- PostgreSQL query: select * from them where name='''stquot';
+ PostgreSQL query: "select * from them where name='''stquot';" opts 'NULL'
PGSQL using cached connection for localhost:1223/test/CALLER
lookup yielded: name='stquot id=quote1
search_open: pgsql "NULL"
@@ -125,7 +125,7 @@ dropping to exim gid; retaining priv uid
internal_search_find: file="NULL"
type=pgsql key="servers=x:localhost; select name from them where id='ph10';" opts=NULL
database lookup required for servers=x:localhost; select name from them where id='ph10';
- PostgreSQL query: servers=x:localhost; select name from them where id='ph10';
+ PostgreSQL query: "servers=x:localhost; select name from them where id='ph10';" opts 'NULL'
lookup deferred: PostgreSQL server "x" not found in pgsql_servers
search_open: pgsql "NULL"
cached open
@@ -135,7 +135,7 @@ dropping to exim gid; retaining priv uid
internal_search_find: file="NULL"
type=pgsql key="servers=localhost::1223:x; select name from them where id='ph10';" opts=NULL
database lookup required for servers=localhost::1223:x; select name from them where id='ph10';
- PostgreSQL query: servers=localhost::1223:x; select name from them where id='ph10';
+ PostgreSQL query: "servers=localhost::1223:x; select name from them where id='ph10';" opts 'NULL'
PGSQL using cached connection for localhost:1223/test/CALLER
lookup yielded: Philip Hazel
search_open: pgsql "NULL"
@@ -146,7 +146,7 @@ dropping to exim gid; retaining priv uid
internal_search_find: file="NULL"
type=pgsql key="servers=localhost::1223/test/CALLER/:x; select name from them where id='ph10';" opts=NULL
database lookup required for servers=localhost::1223/test/CALLER/:x; select name from them where id='ph10';
- PostgreSQL query: servers=localhost::1223/test/CALLER/:x; select name from them where id='ph10';
+ PostgreSQL query: "servers=localhost::1223/test/CALLER/:x; select name from them where id='ph10';" opts 'NULL'
PGSQL using cached connection for localhost:1223/test/CALLER
lookup yielded: Philip Hazel
search_open: pgsql "NULL"
@@ -157,7 +157,7 @@ dropping to exim gid; retaining priv uid
internal_search_find: file="NULL"
type=pgsql key="servers=(TESTSUITE/pgsql/.s.PGSQL.1223)/test/CALLER/:x; select name from them where id='ph10';" opts=NULL
database lookup required for servers=(TESTSUITE/pgsql/.s.PGSQL.1223)/test/CALLER/:x; select name from them where id='ph10';
- PostgreSQL query: servers=(TESTSUITE/pgsql/.s.PGSQL.1223)/test/CALLER/:x; select name from them where id='ph10';
+ PostgreSQL query: "servers=(TESTSUITE/pgsql/.s.PGSQL.1223)/test/CALLER/:x; select name from them where id='ph10';" opts 'NULL'
PGSQL new connection: socket=TESTSUITE/pgsql/.s.PGSQL.1223 database=test user=CALLER
lookup yielded: Philip Hazel
search_open: pgsql "NULL"
@@ -168,7 +168,7 @@ dropping to exim gid; retaining priv uid
internal_search_find: file="NULL"
type=pgsql key="SELECT name FROM them WHERE id IN ('ph10', 'aaaa');" opts=NULL
database lookup required for SELECT name FROM them WHERE id IN ('ph10', 'aaaa');
- PostgreSQL query: SELECT name FROM them WHERE id IN ('ph10', 'aaaa');
+ PostgreSQL query: "SELECT name FROM them WHERE id IN ('ph10', 'aaaa');" opts 'NULL'
PGSQL using cached connection for localhost:1223/test/CALLER
lookup yielded: Philip Hazel
Aristotle
@@ -180,7 +180,7 @@ dropping to exim gid; retaining priv uid
internal_search_find: file="NULL"
type=pgsql key="SELECT * FROM them WHERE id IN ('ph10', 'aaaa');" opts=NULL
database lookup required for SELECT * FROM them WHERE id IN ('ph10', 'aaaa');
- PostgreSQL query: SELECT * FROM them WHERE id IN ('ph10', 'aaaa');
+ PostgreSQL query: "SELECT * FROM them WHERE id IN ('ph10', 'aaaa');" opts 'NULL'
PGSQL using cached connection for localhost:1223/test/CALLER
lookup yielded: name="Philip Hazel" id=ph10
name=Aristotle id=aaaa
@@ -192,7 +192,7 @@ dropping to exim gid; retaining priv uid
internal_search_find: file="NULL"
type=pgsql key="delete from them where id='aaaa'" opts=NULL
database lookup required for delete from them where id='aaaa'
- PostgreSQL query: delete from them where id='aaaa'
+ PostgreSQL query: "delete from them where id='aaaa'" opts 'NULL'
PGSQL using cached connection for localhost:1223/test/CALLER
PGSQL: command does not return any data but was successful. Rows affected: 1
lookup forced cache cleanup
@@ -233,28 +233,107 @@ log directory space = nnnnnK inodes = nnnnn check_space = 10240K inodes = 100
SMTP>> 250 OK
SMTP<< rcpt to:<c@d>
using ACL "check_recipient"
-processing "accept" (TESTSUITE/test-config 25)
+processing "warn" (TESTSUITE/test-config 27)
+ search_open: pgsql "NULL"
+ search_find: file="NULL"
+ key="select name from them where id = 'c'" partial=-1 affix=NULL starflags=0 opts=NULL
+ LRU list:
+ internal_search_find: file="NULL"
+ type=pgsql key="select name from them where id = 'c'" opts=NULL
+ database lookup required for select name from them where id = 'c'
+ PostgreSQL query: "select name from them where id = 'c'" opts 'NULL'
+ PGSQL new connection: host=localhost port=1223 database=test user=CALLER
+ PGSQL: no data found
+ lookup failed
+check set acl_m0 = ok: ${lookup pgsql {select name from them where id = '$local_part'}}
+ = ok:
+ search_open: pgsql "NULL"
+ cached open
+ search_find: file="NULL"
+ key="select name from them where id = 'c'" partial=-1 affix=NULL starflags=0 opts="servers=SSPEC"
+ LRU list:
+ internal_search_find: file="NULL"
+ type=pgsql key="select name from them where id = 'c'" opts="servers=SSPEC"
+ cached data found but either wrong opts or dated; database lookup required for select name from them where id = 'c'
+ PostgreSQL query: "select name from them where id = 'c'" opts 'servers=SSPEC'
+ lookup deferred: PostgreSQL server "SSPEC" not found in pgsql_servers
+warn: condition test deferred in ACL "check_recipient"
+LOG: MAIN
+ H=[10.0.0.0] Warning: ACL "warn" statement skipped: condition test deferred: PostgreSQL server "SSPEC" not found in pgsql_servers
+processing "warn" (TESTSUITE/test-config 38)
+check set acl_m0 = ok: hostlist
+check hosts = net-pgsql;select * from them where id='$local_part'
+search_open: pgsql "NULL"
+ cached open
+search_find: file="NULL"
+ key="select * from them where id='c'" partial=-1 affix=NULL starflags=0 opts=NULL
+LRU list:
+internal_search_find: file="NULL"
+ type=pgsql key="select * from them where id='c'" opts=NULL
+database lookup required for select * from them where id='c'
+PostgreSQL query: "select * from them where id='c'" opts 'NULL'
+PGSQL using cached connection for localhost:1223/test/CALLER
+PGSQL: no data found
+lookup failed
+host in "net-pgsql;select * from them where id='c'"? no (end of list)
+warn: condition test failed in ACL "check_recipient"
+processing "warn" (TESTSUITE/test-config 41)
+check set acl_m0 = FAIL: hostlist
+check hosts = <& net-pgsql;servers=SSPEC; select * from them where id='$local_part'
+search_open: pgsql "NULL"
+ cached open
+search_find: file="NULL"
+ key="servers=SSPEC; select * from them where id='c'" partial=-1 affix=NULL starflags=0 opts=NULL
+LRU list:
+internal_search_find: file="NULL"
+ type=pgsql key="servers=SSPEC; select * from them where id='c'" opts=NULL
+database lookup required for servers=SSPEC; select * from them where id='c'
+PostgreSQL query: "servers=SSPEC; select * from them where id='c'" opts 'NULL'
+lookup deferred: PostgreSQL server "SSPEC" not found in pgsql_servers
+host in "<& net-pgsql;servers=SSPEC; select * from them where id='c'"? list match deferred for net-pgsql;servers=SSPEC; select * from them where id='c'
+warn: condition test deferred in ACL "check_recipient"
+LOG: MAIN
+ H=[10.0.0.0] Warning: ACL "warn" statement skipped: condition test deferred: PostgreSQL server "SSPEC" not found in pgsql_servers
+processing "warn" (TESTSUITE/test-config 46)
+check set acl_m0 = FAIL: hostlist
+check hosts = <& net-pgsql,servers=SSPEC; select * from them where id='$local_part'
+search_open: pgsql "NULL"
+ cached open
+search_find: file="NULL"
+ key=" select * from them where id='c'" partial=-1 affix=NULL starflags=0 opts="servers=SSPEC"
+LRU list:
+internal_search_find: file="NULL"
+ type=pgsql key=" select * from them where id='c'" opts="servers=SSPEC"
+database lookup required for select * from them where id='c'
+PostgreSQL query: " select * from them where id='c'" opts 'servers=SSPEC'
+lookup deferred: PostgreSQL server "SSPEC" not found in pgsql_servers
+host in "<& net-pgsql,servers=SSPEC; select * from them where id='c'"? list match deferred for net-pgsql,servers=SSPEC; select * from them where id='c'
+warn: condition test deferred in ACL "check_recipient"
+LOG: MAIN
+ H=[10.0.0.0] Warning: ACL "warn" statement skipped: condition test deferred: PostgreSQL server "SSPEC" not found in pgsql_servers
+processing "accept" (TESTSUITE/test-config 49)
check domains = +local_domains
d in "@"? no (end of list)
d in "+local_domains"? no (end of list)
accept: condition test failed in ACL "check_recipient"
-processing "accept" (TESTSUITE/test-config 26)
+processing "accept" (TESTSUITE/test-config 50)
check hosts = +relay_hosts
search_open: pgsql "NULL"
+ cached open
search_find: file="NULL"
key="select * from them where id='10.0.0.0'" partial=-1 affix=NULL starflags=0 opts=NULL
LRU list:
internal_search_find: file="NULL"
type=pgsql key="select * from them where id='10.0.0.0'" opts=NULL
database lookup required for select * from them where id='10.0.0.0'
-PostgreSQL query: select * from them where id='10.0.0.0'
-PGSQL new connection: host=localhost port=1223 database=test user=CALLER
+PostgreSQL query: "select * from them where id='10.0.0.0'" opts 'NULL'
+PGSQL using cached connection for localhost:1223/test/CALLER
PGSQL: no data found
lookup failed
host in "net-pgsql;select * from them where id='10.0.0.0'"? no (end of list)
host in "+relay_hosts"? no (end of list)
accept: condition test failed in ACL "check_recipient"
-processing "deny" (TESTSUITE/test-config 27)
+processing "deny" (TESTSUITE/test-config 51)
message: relay not permitted
deny: condition test succeeded in ACL "check_recipient"
end of ACL "check_recipient": DENY
@@ -263,12 +342,85 @@ LOG: MAIN REJECT
H=[10.0.0.0] F=<a@b> rejected RCPT <c@d>: relay not permitted
SMTP<< rcpt to:<c@d>
using ACL "check_recipient"
-processing "accept" (TESTSUITE/test-config 25)
+processing "warn" (TESTSUITE/test-config 27)
+ search_open: pgsql "NULL"
+ cached open
+ search_find: file="NULL"
+ key="select name from them where id = 'c'" partial=-1 affix=NULL starflags=0 opts=NULL
+ LRU list:
+ internal_search_find: file="NULL"
+ type=pgsql key="select name from them where id = 'c'" opts=NULL
+ cached data used for lookup of select name from them where id = 'c'
+ lookup failed
+check set acl_m0 = ok: ${lookup pgsql {select name from them where id = '$local_part'}}
+ = ok:
+ search_open: pgsql "NULL"
+ cached open
+ search_find: file="NULL"
+ key="select name from them where id = 'c'" partial=-1 affix=NULL starflags=0 opts="servers=SSPEC"
+ LRU list:
+ internal_search_find: file="NULL"
+ type=pgsql key="select name from them where id = 'c'" opts="servers=SSPEC"
+ cached data found but either wrong opts or dated; database lookup required for select name from them where id = 'c'
+ PostgreSQL query: "select name from them where id = 'c'" opts 'servers=SSPEC'
+ lookup deferred: PostgreSQL server "SSPEC" not found in pgsql_servers
+warn: condition test deferred in ACL "check_recipient"
+LOG: MAIN
+ H=[10.0.0.0] Warning: ACL "warn" statement skipped: condition test deferred: PostgreSQL server "SSPEC" not found in pgsql_servers
+processing "warn" (TESTSUITE/test-config 38)
+check set acl_m0 = ok: hostlist
+check hosts = net-pgsql;select * from them where id='$local_part'
+search_open: pgsql "NULL"
+ cached open
+search_find: file="NULL"
+ key="select * from them where id='c'" partial=-1 affix=NULL starflags=0 opts=NULL
+LRU list:
+internal_search_find: file="NULL"
+ type=pgsql key="select * from them where id='c'" opts=NULL
+cached data used for lookup of select * from them where id='c'
+lookup failed
+host in "net-pgsql;select * from them where id='c'"? no (end of list)
+warn: condition test failed in ACL "check_recipient"
+processing "warn" (TESTSUITE/test-config 41)
+check set acl_m0 = FAIL: hostlist
+check hosts = <& net-pgsql;servers=SSPEC; select * from them where id='$local_part'
+search_open: pgsql "NULL"
+ cached open
+search_find: file="NULL"
+ key="servers=SSPEC; select * from them where id='c'" partial=-1 affix=NULL starflags=0 opts=NULL
+LRU list:
+internal_search_find: file="NULL"
+ type=pgsql key="servers=SSPEC; select * from them where id='c'" opts=NULL
+database lookup required for servers=SSPEC; select * from them where id='c'
+PostgreSQL query: "servers=SSPEC; select * from them where id='c'" opts 'NULL'
+lookup deferred: PostgreSQL server "SSPEC" not found in pgsql_servers
+host in "<& net-pgsql;servers=SSPEC; select * from them where id='c'"? list match deferred for net-pgsql;servers=SSPEC; select * from them where id='c'
+warn: condition test deferred in ACL "check_recipient"
+LOG: MAIN
+ H=[10.0.0.0] Warning: ACL "warn" statement skipped: condition test deferred: PostgreSQL server "SSPEC" not found in pgsql_servers
+processing "warn" (TESTSUITE/test-config 46)
+check set acl_m0 = FAIL: hostlist
+check hosts = <& net-pgsql,servers=SSPEC; select * from them where id='$local_part'
+search_open: pgsql "NULL"
+ cached open
+search_find: file="NULL"
+ key=" select * from them where id='c'" partial=-1 affix=NULL starflags=0 opts="servers=SSPEC"
+LRU list:
+internal_search_find: file="NULL"
+ type=pgsql key=" select * from them where id='c'" opts="servers=SSPEC"
+database lookup required for select * from them where id='c'
+PostgreSQL query: " select * from them where id='c'" opts 'servers=SSPEC'
+lookup deferred: PostgreSQL server "SSPEC" not found in pgsql_servers
+host in "<& net-pgsql,servers=SSPEC; select * from them where id='c'"? list match deferred for net-pgsql,servers=SSPEC; select * from them where id='c'
+warn: condition test deferred in ACL "check_recipient"
+LOG: MAIN
+ H=[10.0.0.0] Warning: ACL "warn" statement skipped: condition test deferred: PostgreSQL server "SSPEC" not found in pgsql_servers
+processing "accept" (TESTSUITE/test-config 49)
check domains = +local_domains
d in "@"? no (end of list)
d in "+local_domains"? no (end of list)
accept: condition test failed in ACL "check_recipient"
-processing "accept" (TESTSUITE/test-config 26)
+processing "accept" (TESTSUITE/test-config 50)
check hosts = +relay_hosts
search_open: pgsql "NULL"
cached open
@@ -282,7 +434,7 @@ lookup failed
host in "net-pgsql;select * from them where id='10.0.0.0'"? no (end of list)
host in "+relay_hosts"? no (end of list)
accept: condition test failed in ACL "check_recipient"
-processing "deny" (TESTSUITE/test-config 27)
+processing "deny" (TESTSUITE/test-config 51)
message: relay not permitted
deny: condition test succeeded in ACL "check_recipient"
end of ACL "check_recipient": DENY
@@ -392,7 +544,7 @@ processing address_data
internal_search_find: file="NULL"
type=pgsql key="select name from them where id='ph10'" opts=NULL
database lookup required for select name from them where id='ph10'
- PostgreSQL query: select name from them where id='ph10'
+ PostgreSQL query: "select name from them where id='ph10'" opts 'NULL'
PGSQL new connection: host=localhost port=1223 database=test user=CALLER
lookup yielded: Philip Hazel
calling r1 router
@@ -436,7 +588,7 @@ appendfile transport entered
internal_search_find: file="NULL"
type=pgsql key="select id from them where id='ph10'" opts=NULL
database lookup required for select id from them where id='ph10'
- PostgreSQL query: select id from them where id='ph10'
+ PostgreSQL query: "select id from them where id='ph10'" opts 'NULL'
PGSQL new connection: host=localhost port=1223 database=test user=CALLER
lookup yielded: ph10
appendfile: mode=600 notify_comsat=0 quota=0 warning=0
@@ -500,7 +652,7 @@ dropping to exim gid; retaining priv uid
internal_search_find: file="NULL"
type=pgsql key="select name from them where id='ph10';" opts=NULL
database lookup required for select name from them where id='ph10';
- PostgreSQL query: select name from them where id='ph10';
+ PostgreSQL query: "select name from them where id='ph10';" opts 'NULL'
PGSQL new connection: socket=TESTSUITE/pgsql/.s.PGSQL.1223 database=test user=CALLER
lookup yielded: Philip Hazel
search_tidyup called