Report & fix from James <list@xdrv.co.uk>; additional tidying and testcase by JGH
Broken-by: acec9514b1
options, and new features, see the NewStuff file next to this ChangeLog.
+Since Exim version 4.90
+-----------------
+
+JH/03 Fix pgsql lookup for multiple result-tuples with a single column.
+ Previously only the last row was returned.
+
+
Exim version 4.90
-----------------
for (i = 2; i >= 0; i--)
{
uschar *pp = Ustrrchr(server, '/');
- if (pp == NULL)
+ if (!pp)
{
*errmsg = string_sprintf("incomplete pgSQL server data: %s",
(i == 2)? server : server_copy);
start is the identification of the server (host or path). See if we have a
cached connection to the server. */
-for (cn = pgsql_connections; cn != NULL; cn = cn->next)
- {
+for (cn = pgsql_connections; cn; cn = cn->next)
if (Ustrcmp(cn->server, server_copy) == 0)
{
pg_conn = cn->handle;
break;
}
- }
/* If there is no cached connection, we must set one up. */
-if (cn == NULL)
+if (!cn)
{
uschar *port = US"";
uschar *last_slash, *last_dot, *p;
p = ++server;
- while (*p != 0 && *p != ')') p++;
+ while (*p && *p != ')') p++;
*p = 0;
last_slash = Ustrrchr(server, '/');
We have to call PQsetdbLogin with '/var/run/postgresql' as the hostname
argument and put '5432' into the port variable. */
- if (last_slash == NULL || last_dot == NULL)
+ if (!last_slash || !last_dot)
{
- *errmsg = string_sprintf("PGSQL invalid filename for socket: %s",
- server);
+ *errmsg = string_sprintf("PGSQL invalid filename for socket: %s", server);
*defer_break = TRUE;
return DEFER;
}
else
{
uschar *p;
- if ((p = Ustrchr(server, ':')) != NULL)
+ if ((p = Ustrchr(server, ':')))
{
*p++ = 0;
port = p;
}
- if (Ustrchr(server, '/') != NULL)
+ if (Ustrchr(server, '/'))
{
*errmsg = string_sprintf("unexpected slash in pgSQL server hostname: %s",
server);
/* Run the query */
- pg_result = PQexec(pg_conn, CS query);
- switch(PQresultStatus(pg_result))
- {
- case PGRES_EMPTY_QUERY:
- case PGRES_COMMAND_OK:
- /* The command was successful but did not return any data since it was
- not SELECT but either an INSERT, UPDATE or DELETE statement. Tell the
- high level code to not cache this query, and clean the current cache for
- this handle by setting *do_cache zero. */
-
- result = string_cat(result, US PQcmdTuples(pg_result));
- *do_cache = 0;
- DEBUG(D_lookup) debug_printf("PGSQL: command does not return any data "
- "but was successful. Rows affected: %s\n", result->s);
- break;
+pg_result = PQexec(pg_conn, CS query);
+switch(PQresultStatus(pg_result))
+ {
+ case PGRES_EMPTY_QUERY:
+ case PGRES_COMMAND_OK:
+ /* The command was successful but did not return any data since it was
+ not SELECT but either an INSERT, UPDATE or DELETE statement. Tell the
+ high level code to not cache this query, and clean the current cache for
+ this handle by setting *do_cache zero. */
+
+ result = string_cat(result, US PQcmdTuples(pg_result));
+ *do_cache = 0;
+ DEBUG(D_lookup) debug_printf("PGSQL: command does not return any data "
+ "but was successful. Rows affected: %s\n", string_from_gstring(result));
+ break;
- case PGRES_TUPLES_OK:
- break;
+ case PGRES_TUPLES_OK:
+ break;
- default:
- /* This was the original code:
- *errmsg = string_sprintf("PGSQL: query failed: %s\n",
- PQresultErrorMessage(pg_result));
- This was suggested by a user:
- */
-
- *errmsg = string_sprintf("PGSQL: query failed: %s (%s) (%s)\n",
- PQresultErrorMessage(pg_result),
- PQresStatus(PQresultStatus(pg_result)), query);
- goto PGSQL_EXIT;
- }
+ default:
+ /* This was the original code:
+ *errmsg = string_sprintf("PGSQL: query failed: %s\n",
+ PQresultErrorMessage(pg_result));
+ This was suggested by a user:
+ */
+
+ *errmsg = string_sprintf("PGSQL: query failed: %s (%s) (%s)\n",
+ PQresultErrorMessage(pg_result),
+ PQresStatus(PQresultStatus(pg_result)), query);
+ goto PGSQL_EXIT;
+ }
/* Result is in pg_result. Find the number of fields returned. If this is one,
we don't add field names to the data. Otherwise we do. If the query did not
result = string_catn(result, US"\n", 1);
if (num_fields == 1)
- result = string_catn(NULL,
+ result = string_catn(result,
US PQgetvalue(pg_result, i, 0), PQgetlength(pg_result, i, 0));
else
{
}
}
-/* If result is NULL then no data has been found and so we return FAIL.
-Otherwise, we must terminate the string which has been built; string_cat()
-always leaves enough room for a terminating zero. */
+/* If result is NULL then no data has been found and so we return FAIL. */
if (!result)
{
yield = FAIL;
*errmsg = US"PGSQL: no data found";
}
-else
- store_reset(result->s + result->ptr + 1);
/* Get here by goto from various error checks. */
if (result)
{
+ store_reset(result->s + result->ptr + 1);
*resultptr = string_from_gstring(result);
return OK;
}
--- /dev/null
+# Exim test configuration 2620
+
+SERVERS=localhost::PORT_N/test/CALLER/
+
+.include DIR/aux-var/std_conf_prefix
+
+primary_hostname = myhost.test.ex
+
+# ----- Main settings -----
+
+domainlist local_domains = @
+hostlist relay_hosts = net-pgsql;select * from them where \
+ id='$sender_host_address'
+
+acl_smtp_rcpt = check_recipient
+
+pgsql_servers = SERVERS
+
+
+# ----- ACL -----
+
+begin acl
+
+check_recipient:
+ accept domains = +local_domains
+ accept hosts = +relay_hosts
+ deny message = relay not permitted
+
+
+# ----- Routers -----
+
+begin routers
+
+r1:
+ driver = accept
+ address_data = ${lookup pgsql{select name from them where id='ph10'}}
+ transport = t1
+
+
+# ----- Transports -----
+
+begin transports
+
+t1:
+ driver = appendfile
+ file = DIR/test-mail/\
+ ${lookup pgsql{select id from them where id='ph10'}{$value}fail}
+ user = CALLER
+
+
+# End
+++ /dev/null
-# Exim test configuration 9200
-
-SERVERS=localhost/test/ph10/
-
-.include DIR/aux-var/std_conf_prefix
-
-primary_hostname = myhost.test.ex
-
-# ----- Main settings -----
-
-domainlist local_domains = @
-hostlist relay_hosts = net-pgsql;select * from them where \
- id='$sender_host_address'
-
-acl_smtp_rcpt = check_recipient
-
-pgsql_servers = SERVERS
-
-
-# ----- ACL -----
-
-begin acl
-
-check_recipient:
- accept domains = +local_domains
- accept hosts = +relay_hosts
- deny message = relay not permitted
-
-
-# ----- Routers -----
-
-begin routers
-
-r1:
- driver = accept
- address_data = ${lookup pgsql{select name from them where id='ph10'}}
- transport = t1
-
-
-# ----- Transports -----
-
-begin transports
-
-t1:
- driver = appendfile
- file = DIR/test-mail/\
- ${lookup pgsql{select id from them where id='ph10'}{$value}fail}
- user = CALLER
-
-
-# End
--- /dev/null
+1999-03-02 09:44:33 10HmaX-0005vi-00 <= CALLER@myhost.test.ex U=CALLER P=local S=sss
+1999-03-02 09:44:33 10HmaX-0005vi-00 => CALLER <CALLER@myhost.test.ex> R=r1 T=t1
+1999-03-02 09:44:33 10HmaX-0005vi-00 Completed
+++ /dev/null
-1999-03-02 09:44:33 10HmaX-0005vi-00 <= CALLER@myhost.test.ex U=CALLER P=local S=sss
-1999-03-02 09:44:33 10HmaX-0005vi-00 => CALLER <CALLER@myhost.test.ex> R=r1 T=t1
-1999-03-02 09:44:33 10HmaX-0005vi-00 Completed
--- /dev/null
+From CALLER@myhost.test.ex Tue Mar 02 09:44:33 1999
+Received: from CALLER by myhost.test.ex with local (Exim x.yz)
+ (envelope-from <CALLER@myhost.test.ex>)
+ id 10HmaX-0005vi-00
+ for CALLER@myhost.test.ex; Tue, 2 Mar 1999 09:44:33 +0000
+Message-Id: <E10HmaX-0005vi-00@myhost.test.ex>
+From: CALLER_NAME <CALLER@myhost.test.ex>
+Date: Tue, 2 Mar 1999 09:44:33 +0000
+
+Test message
+
+++ /dev/null
-From CALLER@myhost.test.ex Tue Mar 02 09:44:33 1999
-Received: from CALLER by myhost.test.ex with local (Exim x.yz)
- (envelope-from <CALLER@myhost.test.ex>)
- id 10HmaX-0005vi-00
- for CALLER@myhost.test.ex; Tue, 2 Mar 1999 09:44:33 +0000
-Message-Id: <E10HmaX-0005vi-00@myhost.test.ex>
-From: CALLER_NAME <CALLER@myhost.test.ex>
-Date: Tue, 2 Mar 1999 09:44:33 +0000
-
-Test message
-
$_ = <SCRIPT>; $lineno++;
chomp;
+ do_substitute($testno);
$line = $_;
if ($debug) { printf ">> daemon: $line >>test-stdout 2>>test-stderr\n"; }
--- /dev/null
+# pgsql lookups
+#
+# first, populate a DB to test against
+sudo rm -fr DIR/pgsql
+perl
+system 'initdb -D DIR/pgsql/data';
+****
+background
+/usr/bin/postgres -D DIR/pgsql/data -p PORT_N -k DIR/pgsql
+****
+perl
+system 'createdb -h localhost -p PORT_N test';
+system 'psql -h localhost -p PORT_N -d test \
+ -c "CREATE TABLE them ( name text, id text );" \
+ -c "INSERT INTO them VALUES ( \'Philip Hazel\', \'ph10\' );" \
+ -c "INSERT INTO them VALUES ( \'Aristotle\', \'aaaa\' );" \
+ -c "INSERT INTO them VALUES ( \'\', \'nothing\' );" \
+ -c "INSERT INTO them VALUES ( \'\"stquot\', \'quote2\' );" \
+ -c "INSERT INTO them VALUES ( \'before\' || CHR(13) || CHR(10) || \'after\', \'newline\' );" \
+ -c "INSERT INTO them VALUES ( \'x\' || CHR(9) || \'x\', \'tab\' );" \
+ -c "INSERT INTO them VALUES ( CHR(39) || \'stquot\', \'quote1\' );" \
+ ';
+****
+#
+# now, the tests
+exim -d-all+lookup -be
+${lookup pgsql {select name from them where id='ph10';}}
+${lookup pgsql {select name from them where id='ph10';}}
+${lookup pgsql {select name from them where id='xxxx';}}
+${lookup pgsql {select name from them where id='nothing';}}
+${lookup pgsql {select id,name from them where id='nothing';}}
+${lookup pgsql {delete from them where id='nonexist';}}
+${lookup pgsql {select * from them where id='quote2';}}
+${lookup pgsql {select * from them where id='newline';}}
+${lookup pgsql {select * from them where id='tab';}}
+${lookup pgsql {select * from them where name='${quote_pgsql:'stquot}';}}
+${lookup pgsql {servers=x:localhost; select name from them where id='ph10';}}
+${lookup pgsql {servers=localhost::PORT_N:x; select name from them where id='ph10';}}
+${lookup pgsql {servers=localhost::PORT_N/test/CALLER/:x; select name from them where id='ph10';}}
+${lookup pgsql {servers=(DIR/pgsql/.s.PGSQL.PORT_N)/test/CALLER/:x; select name from them where id='ph10';}}
+x
+${lookup pgsql {SELECT name FROM them WHERE id IN ('ph10', 'aaaa');}}
+${lookup pgsql {SELECT * FROM them WHERE id IN ('ph10', 'aaaa');}}
+****
+exim -d -bh 10.0.0.0
+mail from:<a@b>
+rcpt to:<c@d>
+rcpt to:<c@d>
+quit
+****
+exim -odi -d CALLER
+Test message
+.
+****
+exim -DSERVERS=\(DIR/pgsql/.s.PGSQL.PORT_N\)/test/CALLER/ -d-all+lookup -be
+${lookup pgsql {select name from them where id='ph10';}}
+****
+#
+perl
+system 'pg_ctl stop -D DIR/pgsql/data -m immediate';
+****
+killdaemon
+sudo rm -fr DIR/pgsql
--- /dev/null
+lookup pgsql
+++ /dev/null
-# pgsql lookups - expects specific data
-exim -d-all+lookup -be
-${lookup pgsql {select name from them where id='ph10';}}
-${lookup pgsql {select name from them where id='ph10';}}
-${lookup pgsql {select name from them where id='xxxx';}}
-${lookup pgsql {select name from them where id='nothing';}}
-${lookup pgsql {select id,name from them where id='nothing';}}
-${lookup pgsql {delete from them where id='nonexist';}}
-${lookup pgsql {select * from them where id='quote2';}}
-${lookup pgsql {select * from them where id='newline';}}
-${lookup pgsql {select * from them where id='tab';}}
-${lookup pgsql {select * from them where name='${quote_pgsql:'stquot}';}}
-${lookup pgsql {servers=x:localhost; select name from them where id='ph10';}}
-${lookup pgsql {servers=localhost:x; select name from them where id='ph10';}}
-${lookup pgsql {servers=localhost/test/CALLER/:x; select name from them where id='ph10';}}
-${lookup pgsql {servers=(/tmp/.s.PGSQL.5432)/test/ph10/:x; select name from them where id='ph10';}}
-****
-exim -d -bh 10.0.0.0
-mail from:<a@b>
-rcpt to:<c@d>
-rcpt to:<c@d>
-quit
-****
-exim -odi -d CALLER
-Test message
-.
-****
-exim -DSERVERS=\(/tmp/.s.PGSQL.5432\)/test/ph10/ -d-all+lookup -be
-${lookup pgsql {select name from them where id='CALLER';}}
-****
--- /dev/null
+
+WARNING: enabling "trust" authentication for local connections
+You can change this by editing pg_hba.conf or using the option -A, or
+--auth-local and --auth-host, the next time you run initdb.
+Exim version x.yz ....
+configuration file is TESTSUITE/test-config
+admin user
+search_open: pgsql "NULL"
+search_find: file="NULL"
+ key="select name from them where id='ph10';" partial=-1 affix=NULL starflags=0
+LRU list:
+internal_search_find: file="NULL"
+ type=pgsql key="select name from them where id='ph10';"
+database lookup required for select name from them where id='ph10';
+PostgreSQL query: select name from them where id='ph10';
+PGSQL new connection: host=localhost port=1223 database=test user=CALLER
+lookup yielded: Philip Hazel
+search_open: pgsql "NULL"
+ cached open
+search_find: file="NULL"
+ key="select name from them where id='ph10';" partial=-1 affix=NULL starflags=0
+LRU list:
+internal_search_find: file="NULL"
+ type=pgsql key="select name from them where id='ph10';"
+cached data used for lookup of select name from them where id='ph10';
+lookup yielded: Philip Hazel
+search_open: pgsql "NULL"
+ cached open
+search_find: file="NULL"
+ key="select name from them where id='xxxx';" partial=-1 affix=NULL starflags=0
+LRU list:
+internal_search_find: file="NULL"
+ type=pgsql key="select name from them where id='xxxx';"
+database lookup required for select name from them where id='xxxx';
+PostgreSQL query: select name from them where id='xxxx';
+PGSQL using cached connection for localhost:1223/test/CALLER
+PGSQL: no data found
+lookup failed
+search_open: pgsql "NULL"
+ cached open
+search_find: file="NULL"
+ key="select name from them where id='nothing';" partial=-1 affix=NULL starflags=0
+LRU list:
+internal_search_find: file="NULL"
+ type=pgsql key="select name from them where id='nothing';"
+database lookup required for select name from them where id='nothing';
+PostgreSQL query: select name from them where id='nothing';
+PGSQL using cached connection for localhost:1223/test/CALLER
+lookup yielded:
+search_open: pgsql "NULL"
+ cached open
+search_find: file="NULL"
+ key="select id,name from them where id='nothing';" partial=-1 affix=NULL starflags=0
+LRU list:
+internal_search_find: file="NULL"
+ type=pgsql key="select id,name from them where id='nothing';"
+database lookup required for select id,name from them where id='nothing';
+PostgreSQL query: select id,name from them where id='nothing';
+PGSQL using cached connection for localhost:1223/test/CALLER
+lookup yielded: id=nothing name=""
+search_open: pgsql "NULL"
+ cached open
+search_find: file="NULL"
+ key="delete from them where id='nonexist';" partial=-1 affix=NULL starflags=0
+LRU list:
+internal_search_find: file="NULL"
+ type=pgsql key="delete from them where id='nonexist';"
+database lookup required for delete from them where id='nonexist';
+PostgreSQL query: delete from them where id='nonexist';
+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
+lookup yielded: 0
+search_open: pgsql "NULL"
+ cached open
+search_find: file="NULL"
+ key="select * from them where id='quote2';" partial=-1 affix=NULL starflags=0
+LRU list:
+internal_search_find: file="NULL"
+ type=pgsql key="select * from them where id='quote2';"
+database lookup required for select * from them where id='quote2';
+PostgreSQL query: select * from them where id='quote2';
+PGSQL using cached connection for localhost:1223/test/CALLER
+lookup yielded: name="\"stquot" id=quote2
+search_open: pgsql "NULL"
+ cached open
+search_find: file="NULL"
+ key="select * from them where id='newline';" partial=-1 affix=NULL starflags=0
+LRU list:
+internal_search_find: file="NULL"
+ type=pgsql key="select * from them where id='newline';"
+database lookup required for select * from them where id='newline';
+PostgreSQL query: select * from them where id='newline';
+PGSQL using cached connection for localhost:1223/test/CALLER
+lookup yielded: name="before\r
+after" id=newline
+search_open: pgsql "NULL"
+ cached open
+search_find: file="NULL"
+ key="select * from them where id='tab';" partial=-1 affix=NULL starflags=0
+LRU list:
+internal_search_find: file="NULL"
+ type=pgsql key="select * from them where id='tab';"
+database lookup required for select * from them where id='tab';
+PostgreSQL query: select * from them where id='tab';
+PGSQL using cached connection for localhost:1223/test/CALLER
+lookup yielded: name="x x" id=tab
+search_open: pgsql "NULL"
+ cached open
+search_find: file="NULL"
+ key="select * from them where name='''stquot';" partial=-1 affix=NULL starflags=0
+LRU list:
+internal_search_find: file="NULL"
+ type=pgsql key="select * from them where name='''stquot';"
+database lookup required for select * from them where name='''stquot';
+PostgreSQL query: select * from them where name='''stquot';
+PGSQL using cached connection for localhost:1223/test/CALLER
+lookup yielded: name='stquot id=quote1
+search_open: pgsql "NULL"
+ cached open
+search_find: file="NULL"
+ key="servers=x:localhost; select name from them where id='ph10';" partial=-1 affix=NULL starflags=0
+LRU list:
+internal_search_find: file="NULL"
+ type=pgsql key="servers=x:localhost; select name from them where id='ph10';"
+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';
+lookup deferred: PostgreSQL server "x" not found in pgsql_servers
+search_open: pgsql "NULL"
+ cached open
+search_find: file="NULL"
+ key="servers=localhost::1223:x; select name from them where id='ph10';" partial=-1 affix=NULL starflags=0
+LRU list:
+internal_search_find: file="NULL"
+ type=pgsql key="servers=localhost::1223:x; select name from them where id='ph10';"
+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';
+PGSQL using cached connection for localhost:1223/test/CALLER
+lookup yielded: Philip Hazel
+search_open: pgsql "NULL"
+ cached open
+search_find: file="NULL"
+ key="servers=localhost::1223/test/CALLER/:x; select name from them where id='ph10';" partial=-1 affix=NULL starflags=0
+LRU list:
+internal_search_find: file="NULL"
+ type=pgsql key="servers=localhost::1223/test/CALLER/:x; select name from them where id='ph10';"
+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';
+PGSQL using cached connection for localhost:1223/test/CALLER
+lookup yielded: Philip Hazel
+search_open: pgsql "NULL"
+ cached open
+search_find: file="NULL"
+ key="servers=(TESTSUITE/pgsql/.s.PGSQL.1223)/test/CALLER/:x; select name from them where id='ph10';" partial=-1 affix=NULL starflags=0
+LRU list:
+internal_search_find: file="NULL"
+ type=pgsql key="servers=(TESTSUITE/pgsql/.s.PGSQL.1223)/test/CALLER/:x; select name from them where id='ph10';"
+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';
+PGSQL new connection: socket=TESTSUITE/pgsql/.s.PGSQL.1223 database=test user=CALLER
+lookup yielded: Philip Hazel
+search_open: pgsql "NULL"
+ cached open
+search_find: file="NULL"
+ key="SELECT name FROM them WHERE id IN ('ph10', 'aaaa');" partial=-1 affix=NULL starflags=0
+LRU list:
+internal_search_find: file="NULL"
+ type=pgsql key="SELECT name FROM them WHERE id IN ('ph10', 'aaaa');"
+database lookup required for SELECT name FROM them WHERE id IN ('ph10', 'aaaa');
+PostgreSQL query: SELECT name FROM them WHERE id IN ('ph10', 'aaaa');
+PGSQL using cached connection for localhost:1223/test/CALLER
+lookup yielded: Philip Hazel
+Aristotle
+search_open: pgsql "NULL"
+ cached open
+search_find: file="NULL"
+ key="SELECT * FROM them WHERE id IN ('ph10', 'aaaa');" partial=-1 affix=NULL starflags=0
+LRU list:
+internal_search_find: file="NULL"
+ type=pgsql key="SELECT * FROM them WHERE id IN ('ph10', 'aaaa');"
+database lookup required for SELECT * FROM them WHERE id IN ('ph10', 'aaaa');
+PostgreSQL query: SELECT * FROM them WHERE id IN ('ph10', 'aaaa');
+PGSQL using cached connection for localhost:1223/test/CALLER
+lookup yielded: name="Philip Hazel" id=ph10
+name=Aristotle id=aaaa
+search_tidyup called
+close PGSQL connection: (TESTSUITE/pgsql/.s.PGSQL.1223)/test/CALLER
+close PGSQL connection: localhost:1223/test/CALLER
+>>>>>>>>>>>>>>>> Exim pid=pppp (main: expansion test) terminating with rc=0 >>>>>>>>>>>>>>>>
+Exim version x.yz ....
+changed uid/gid: forcing real = effective
+ uid=uuuu gid=CALLER_GID pid=pppp
+configuration file is TESTSUITE/test-config
+admin user
+changed uid/gid: privilege not needed
+ uid=EXIM_UID gid=EXIM_GID pid=pppp
+seeking password data for user "CALLER": cache not available
+getpwnam() succeeded uid=CALLER_UID gid=CALLER_GID
+originator: uid=CALLER_UID gid=CALLER_GID login=CALLER name=CALLER_NAME
+sender address = CALLER@myhost.test.ex
+sender_fullhost = [10.0.0.0]
+sender_rcvhost = [10.0.0.0]
+host in hosts_connection_nolog? no (option unset)
+LOG: smtp_connection MAIN
+ SMTP connection from [10.0.0.0]
+host in host_lookup? no (option unset)
+set_process_info: pppp handling incoming connection from [10.0.0.0]
+host in host_reject_connection? no (option unset)
+host in sender_unqualified_hosts? no (option unset)
+host in recipient_unqualified_hosts? no (option unset)
+host in helo_verify_hosts? no (option unset)
+host in helo_try_verify_hosts? no (option unset)
+host in helo_accept_junk_hosts? no (option unset)
+SMTP>> 220 myhost.test.ex ESMTP Exim x.yz Tue, 2 Mar 1999 09:44:33 +0000
+smtp_setup_msg entered
+SMTP<< mail from:<a@b>
+spool directory space = nnnnnK inodes = nnnnn check_space = 10240K inodes = 100 msg_size = 0
+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"
+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"
+check hosts = +relay_hosts
+search_open: pgsql "NULL"
+search_find: file="NULL"
+ key="select * from them where id='10.0.0.0'" partial=-1 affix=NULL starflags=0
+LRU list:
+internal_search_find: file="NULL"
+ type=pgsql key="select * from them where id='10.0.0.0'"
+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
+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"
+ message: relay not permitted
+deny: condition test succeeded in ACL "check_recipient"
+end of ACL "check_recipient": DENY
+SMTP>> 550 relay not permitted
+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"
+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"
+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
+LRU list:
+internal_search_find: file="NULL"
+ type=pgsql key="select * from them where id='10.0.0.0'"
+cached data used for lookup of select * from them where id='10.0.0.0'
+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"
+ message: relay not permitted
+deny: condition test succeeded in ACL "check_recipient"
+end of ACL "check_recipient": DENY
+SMTP>> 550 relay not permitted
+LOG: MAIN REJECT
+ H=[10.0.0.0] F=<a@b> rejected RCPT <c@d>: relay not permitted
+SMTP<< quit
+SMTP>> 221 myhost.test.ex closing connection
+LOG: smtp_connection MAIN
+ SMTP connection from [10.0.0.0] closed by QUIT
+search_tidyup called
+close PGSQL connection: localhost:1223/test/CALLER
+>>>>>>>>>>>>>>>> Exim pid=pppp (main) terminating with rc=0 >>>>>>>>>>>>>>>>
+Exim version x.yz ....
+changed uid/gid: forcing real = effective
+ uid=uuuu gid=CALLER_GID pid=pppp
+configuration file is TESTSUITE/test-config
+admin user
+changed uid/gid: privilege not needed
+ uid=EXIM_UID gid=EXIM_GID pid=pppp
+seeking password data for user "CALLER": cache not available
+getpwnam() succeeded uid=CALLER_UID gid=CALLER_GID
+originator: uid=CALLER_UID gid=CALLER_GID login=CALLER name=CALLER_NAME
+sender address = CALLER@myhost.test.ex
+set_process_info: pppp accepting a local non-SMTP message from <CALLER@myhost.test.ex>
+spool directory space = nnnnnK inodes = nnnnn check_space = 10240K inodes = 100 msg_size = 0
+log directory space = nnnnnK inodes = nnnnn check_space = 10240K inodes = 100
+Sender: CALLER@myhost.test.ex
+Recipients:
+ CALLER
+search_tidyup called
+>>Headers received:
+
+rewrite_one_header: type=F:
+ From: CALLER_NAME <CALLER@myhost.test.ex>
+search_tidyup called
+>>Headers after rewriting and local additions:
+I Message-Id: <E10HmaX-0005vi-00@myhost.test.ex>
+F From: CALLER_NAME <CALLER@myhost.test.ex>
+ Date: Tue, 2 Mar 1999 09:44:33 +0000
+
+Data file name: TESTSUITE/spool//input//10HmaX-0005vi-00-D
+Data file written for message 10HmaX-0005vi-00
+>>Generated Received: header line
+P Received: from CALLER by myhost.test.ex with local (Exim x.yz)
+ (envelope-from <CALLER@myhost.test.ex>)
+ id 10HmaX-0005vi-00
+ for CALLER@myhost.test.ex; Tue, 2 Mar 1999 09:44:33 +0000
+calling local_scan(); timeout=300
+local_scan() returned 0 NULL
+Writing spool header file: TESTSUITE/spool//input//hdr.pppp
+DSN: Write SPOOL :-dsn_envid NULL
+DSN: Write SPOOL :-dsn_ret 0
+DSN: Flags :0
+DSN: **** SPOOL_OUT - address: |CALLER@myhost.test.ex| errorsto: |NULL| orcpt: |NULL| dsn_flags: 0
+Renaming spool header file: TESTSUITE/spool//input//10HmaX-0005vi-00-H
+Size of headers = sss
+LOG: MAIN
+ <= CALLER@myhost.test.ex U=CALLER P=local S=sss
+created log directory TESTSUITE/spool/log
+search_tidyup called
+exec TESTSUITE/eximdir/exim -DEXIM_PATH=TESTSUITE/eximdir/exim -C TESTSUITE/test-config -d=0xfbb95cfd -odi -Mc 10HmaX-0005vi-00
+Exim version x.yz ....
+changed uid/gid: forcing real = effective
+ uid=uuuu gid=EXIM_GID pid=pppp
+configuration file is TESTSUITE/test-config
+trusted user
+admin user
+seeking password data for user "CALLER": cache not available
+getpwnam() succeeded uid=CALLER_UID gid=CALLER_GID
+set_process_info: pppp delivering specified messages
+set_process_info: pppp delivering 10HmaX-0005vi-00
+Trying spool file TESTSUITE/spool//input//10HmaX-0005vi-00-D
+reading spool file 10HmaX-0005vi-00-H
+user=CALLER uid=CALLER_UID gid=CALLER_GID sender=CALLER@myhost.test.ex
+sender_local=1 ident=CALLER
+Non-recipients:
+Empty Tree
+---- End of tree ----
+recipients_count=1
+**** SPOOL_IN - No additional fields
+body_linecount=1 message_linecount=7
+DSN: set orcpt: NULL flags: 0
+Delivery address list:
+ CALLER@myhost.test.ex
+locking TESTSUITE/spool/db/retry.lockfile
+locked TESTSUITE/spool/db/retry.lockfile
+EXIM_DBOPEN: file <TESTSUITE/spool/db/retry> dir <TESTSUITE/spool/db> flags=O_RDONLY
+returned from EXIM_DBOPEN: (nil)
+ensuring TESTSUITE/spool/db/retry.lockfile is owned by exim
+failed to open DB file TESTSUITE/spool/db/retry.lockfile: No such file or directory
+no retry data available
+>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
+Considering: CALLER@myhost.test.ex
+unique = CALLER@myhost.test.ex
+no domain retry record
+no address retry record
+CALLER@myhost.test.ex: queued for routing
+>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
+routing CALLER@myhost.test.ex
+--------> r1 router <--------
+local_part=CALLER domain=myhost.test.ex
+processing address_data
+search_open: pgsql "NULL"
+search_find: file="NULL"
+ key="select name from them where id='ph10'" partial=-1 affix=NULL starflags=0
+LRU list:
+internal_search_find: file="NULL"
+ type=pgsql key="select name from them where id='ph10'"
+database lookup required for select name from them where id='ph10'
+PostgreSQL query: select name from them where id='ph10'
+PGSQL new connection: host=localhost port=1223 database=test user=CALLER
+lookup yielded: Philip Hazel
+calling r1 router
+r1 router called for CALLER@myhost.test.ex
+ domain = myhost.test.ex
+set transport t1
+queued for t1 transport: local_part = CALLER
+domain = myhost.test.ex
+ errors_to=NULL
+ domain_data=NULL localpart_data=NULL
+routed by r1 router
+ envelope to: CALLER@myhost.test.ex
+ transport: t1
+>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
+After routing:
+ Local deliveries:
+ CALLER@myhost.test.ex
+ Remote deliveries:
+ Failed addresses:
+ Deferred addresses:
+search_tidyup called
+close PGSQL connection: localhost:1223/test/CALLER
+>>>>>>>>>>>>>>>> Local deliveries >>>>>>>>>>>>>>>>
+--------> CALLER@myhost.test.ex <--------
+locking TESTSUITE/spool/db/retry.lockfile
+locked TESTSUITE/spool/db/retry.lockfile
+EXIM_DBOPEN: file <TESTSUITE/spool/db/retry> dir <TESTSUITE/spool/db> flags=O_RDONLY
+returned from EXIM_DBOPEN: (nil)
+failed to open DB file TESTSUITE/spool/db/retry: No such file or directory
+no retry data available
+search_tidyup called
+changed uid/gid: local delivery to CALLER <CALLER@myhost.test.ex> transport=t1
+ uid=CALLER_UID gid=CALLER_GID pid=pppp
+ home=NULL current=/
+set_process_info: pppp delivering 10HmaX-0005vi-00 to CALLER using t1
+appendfile transport entered
+search_open: pgsql "NULL"
+search_find: file="NULL"
+ key="select id from them where id='ph10'" partial=-1 affix=NULL starflags=0
+LRU list:
+internal_search_find: file="NULL"
+ type=pgsql key="select id from them where id='ph10'"
+database lookup required for select id from them where id='ph10'
+PostgreSQL query: select id from them where id='ph10'
+PGSQL new connection: host=localhost port=1223 database=test user=CALLER
+lookup yielded: ph10
+appendfile: mode=600 notify_comsat=0 quota=0 warning=0
+ file=TESTSUITE/test-mail/ph10 format=unix
+ message_prefix=From ${if def:return_path{$return_path}{MAILER-DAEMON}} ${tod_bsdinbox}\n
+ message_suffix=\n
+ maildir_use_size_file=no
+ locking by lockfile fcntl
+lock name: TESTSUITE/test-mail/ph10.lock
+hitch name: TESTSUITE/test-mail/ph10.lock.test.ex.dddddddd.pppppppp
+lock file created
+mailbox TESTSUITE/test-mail/ph10 is locked
+writing to file TESTSUITE/test-mail/ph10
+writing data block fd=dddd size=sss timeout=0
+cannot use sendfile for body: spoolfile not wireformat
+writing data block fd=dddd size=sss timeout=0
+writing data block fd=dddd size=sss timeout=0
+appendfile yields 0 with errno=dd more_errno=dd
+search_tidyup called
+close PGSQL connection: localhost:1223/test/CALLER
+journalling CALLER@myhost.test.ex
+t1 transport returned OK for CALLER@myhost.test.ex
+post-process CALLER@myhost.test.ex (0)
+CALLER@myhost.test.ex delivered
+LOG: MAIN
+ => CALLER <CALLER@myhost.test.ex> R=r1 T=t1
+>>>>>>>>>>>>>>>> deliveries are done >>>>>>>>>>>>>>>>
+changed uid/gid: post-delivery tidying
+ uid=EXIM_UID gid=EXIM_GID pid=pppp
+set_process_info: pppp tidying up after delivering 10HmaX-0005vi-00
+Processing retry items
+Succeeded addresses:
+ CALLER@myhost.test.ex: no retry items
+Failed addresses:
+Deferred addresses:
+end of retry processing
+DSN: processing router : r1
+DSN: processing successful delivery address: CALLER@myhost.test.ex
+DSN: Sender_address: CALLER@myhost.test.ex
+DSN: orcpt: NULL flags: 0
+DSN: envid: NULL ret: 0
+DSN: Final recipient: CALLER@myhost.test.ex
+DSN: Remote SMTP server supports DSN: 0
+DSN: not sending DSN success message
+LOG: MAIN
+ Completed
+end delivery of 10HmaX-0005vi-00
+search_tidyup called
+search_tidyup called
+>>>>>>>>>>>>>>>> Exim pid=pppp (main) terminating with rc=0 >>>>>>>>>>>>>>>>
+search_tidyup called
+>>>>>>>>>>>>>>>> Exim pid=pppp (main) terminating with rc=0 >>>>>>>>>>>>>>>>
+Exim version x.yz ....
+configuration file is TESTSUITE/test-config
+admin user
+search_open: pgsql "NULL"
+search_find: file="NULL"
+ key="select name from them where id='ph10';" partial=-1 affix=NULL starflags=0
+LRU list:
+internal_search_find: file="NULL"
+ type=pgsql key="select name from them where id='ph10';"
+database lookup required for select name from them where id='ph10';
+PostgreSQL query: select name from them where id='ph10';
+PGSQL new connection: socket=TESTSUITE/pgsql/.s.PGSQL.1223 database=test user=CALLER
+lookup yielded: Philip Hazel
+search_tidyup called
+close PGSQL connection: (TESTSUITE/pgsql/.s.PGSQL.1223)/test/CALLER
+>>>>>>>>>>>>>>>> Exim pid=pppp (main: expansion test) terminating with rc=0 >>>>>>>>>>>>>>>>
+
+******** SERVER ********
+LOG: redirecting log output to logging collector process
+HINT: Future log output will appear in directory "pg_log".
+++ /dev/null
-Exim version x.yz ....
-configuration file is TESTSUITE/test-config
-admin user
-search_open: pgsql "NULL"
-search_find: file="NULL"
- key="select name from them where id='CALLER';" partial=-1 affix=NULL starflags=0
-LRU list:
-internal_search_find: file="NULL"
- type=pgsql key="select name from them where id='CALLER';"
-database lookup required for select name from them where id='CALLER';
-PostgreSQL query: select name from them where id='CALLER';
-PGSQL new connection: host=localhost port= database=test user=CALLER
-lookup yielded: Philip Hazel
-search_open: pgsql "NULL"
- cached open
-search_find: file="NULL"
- key="select name from them where id='CALLER';" partial=-1 affix=NULL starflags=0
-LRU list:
-internal_search_find: file="NULL"
- type=pgsql key="select name from them where id='CALLER';"
-cached data used for lookup of select name from them where id='CALLER';
-lookup yielded: Philip Hazel
-search_open: pgsql "NULL"
- cached open
-search_find: file="NULL"
- key="select name from them where id='xxxx';" partial=-1 affix=NULL starflags=0
-LRU list:
-internal_search_find: file="NULL"
- type=pgsql key="select name from them where id='xxxx';"
-database lookup required for select name from them where id='xxxx';
-PostgreSQL query: select name from them where id='xxxx';
-PGSQL using cached connection for localhost/test/CALLER
-PGSQL: no data found
-lookup failed
-search_open: pgsql "NULL"
- cached open
-search_find: file="NULL"
- key="select name from them where id='nothing';" partial=-1 affix=NULL starflags=0
-LRU list:
-internal_search_find: file="NULL"
- type=pgsql key="select name from them where id='nothing';"
-database lookup required for select name from them where id='nothing';
-PostgreSQL query: select name from them where id='nothing';
-PGSQL using cached connection for localhost/test/CALLER
-lookup yielded:
-search_open: pgsql "NULL"
- cached open
-search_find: file="NULL"
- key="select id,name from them where id='nothing';" partial=-1 affix=NULL starflags=0
-LRU list:
-internal_search_find: file="NULL"
- type=pgsql key="select id,name from them where id='nothing';"
-database lookup required for select id,name from them where id='nothing';
-PostgreSQL query: select id,name from them where id='nothing';
-PGSQL using cached connection for localhost/test/CALLER
-lookup yielded: id=nothing name=""
-search_open: pgsql "NULL"
- cached open
-search_find: file="NULL"
- key="delete from them where id='nonexist';" partial=-1 affix=NULL starflags=0
-LRU list:
-internal_search_find: file="NULL"
- type=pgsql key="delete from them where id='nonexist';"
-database lookup required for delete from them where id='nonexist';
-PostgreSQL query: delete from them where id='nonexist';
-PGSQL using cached connection for localhost/test/CALLER
-PGSQL: command does not return any data but was successful. Rows affected: 0
-lookup forced cache cleanup
-lookup yielded: 0
-search_open: pgsql "NULL"
- cached open
-search_find: file="NULL"
- key="select * from them where id='quote2';" partial=-1 affix=NULL starflags=0
-LRU list:
-internal_search_find: file="NULL"
- type=pgsql key="select * from them where id='quote2';"
-database lookup required for select * from them where id='quote2';
-PostgreSQL query: select * from them where id='quote2';
-PGSQL using cached connection for localhost/test/CALLER
-lookup yielded: name="\"stquot" id=quote2
-search_open: pgsql "NULL"
- cached open
-search_find: file="NULL"
- key="select * from them where id='newline';" partial=-1 affix=NULL starflags=0
-LRU list:
-internal_search_find: file="NULL"
- type=pgsql key="select * from them where id='newline';"
-database lookup required for select * from them where id='newline';
-PostgreSQL query: select * from them where id='newline';
-PGSQL using cached connection for localhost/test/CALLER
-lookup yielded: name="before
-after" id=newline
-search_open: pgsql "NULL"
- cached open
-search_find: file="NULL"
- key="select * from them where id='tab';" partial=-1 affix=NULL starflags=0
-LRU list:
-internal_search_find: file="NULL"
- type=pgsql key="select * from them where id='tab';"
-database lookup required for select * from them where id='tab';
-PostgreSQL query: select * from them where id='tab';
-PGSQL using cached connection for localhost/test/CALLER
-lookup yielded: name="x x" id=tab
-search_open: pgsql "NULL"
- cached open
-search_find: file="NULL"
- key="select * from them where name='''stquot';" partial=-1 affix=NULL starflags=0
-LRU list:
-internal_search_find: file="NULL"
- type=pgsql key="select * from them where name='''stquot';"
-database lookup required for select * from them where name='''stquot';
-PostgreSQL query: select * from them where name='''stquot';
-PGSQL using cached connection for localhost/test/CALLER
-lookup yielded: name='stquot id=quote1
-search_open: pgsql "NULL"
- cached open
-search_find: file="NULL"
- key="servers=x:localhost; select name from them where id='CALLER';" partial=-1 affix=NULL starflags=0
-LRU list:
-internal_search_find: file="NULL"
- type=pgsql key="servers=x:localhost; select name from them where id='CALLER';"
-database lookup required for servers=x:localhost; select name from them where id='CALLER';
-PostgreSQL query: servers=x:localhost; select name from them where id='CALLER';
-lookup deferred: PostgreSQL server "x" not found in pgsql_servers
-search_open: pgsql "NULL"
- cached open
-search_find: file="NULL"
- key="servers=localhost:x; select name from them where id='CALLER';" partial=-1 affix=NULL starflags=0
-LRU list:
-internal_search_find: file="NULL"
- type=pgsql key="servers=localhost:x; select name from them where id='CALLER';"
-database lookup required for servers=localhost:x; select name from them where id='CALLER';
-PostgreSQL query: servers=localhost:x; select name from them where id='CALLER';
-PGSQL using cached connection for localhost/test/CALLER
-lookup yielded: Philip Hazel
-search_open: pgsql "NULL"
- cached open
-search_find: file="NULL"
- key="servers=localhost/test/CALLER/:x; select name from them where id='CALLER';" partial=-1 affix=NULL starflags=0
-LRU list:
-internal_search_find: file="NULL"
- type=pgsql key="servers=localhost/test/CALLER/:x; select name from them where id='CALLER';"
-database lookup required for servers=localhost/test/CALLER/:x; select name from them where id='CALLER';
-PostgreSQL query: servers=localhost/test/CALLER/:x; select name from them where id='CALLER';
-PGSQL using cached connection for localhost/test/CALLER
-lookup yielded: Philip Hazel
-search_open: pgsql "NULL"
- cached open
-search_find: file="NULL"
- key="servers=(/tmp/.s.PGSQL.5432)/test/CALLER/:x; select name from them where id='CALLER';" partial=-1 affix=NULL starflags=0
-LRU list:
-internal_search_find: file="NULL"
- type=pgsql key="servers=(/tmp/.s.PGSQL.5432)/test/CALLER/:x; select name from them where id='CALLER';"
-database lookup required for servers=(/tmp/.s.PGSQL.5432)/test/CALLER/:x; select name from them where id='CALLER';
-PostgreSQL query: servers=(/tmp/.s.PGSQL.5432)/test/CALLER/:x; select name from them where id='CALLER';
-PGSQL new connection: socket=/tmp/.s.PGSQL.5432 database=test user=CALLER
-lookup yielded: Philip Hazel
-search_tidyup called
-close PGSQL connection: (/tmp/.s.PGSQL.5432)/test/CALLER
-close PGSQL connection: localhost/test/CALLER
->>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=0 >>>>>>>>>>>>>>>>
-Exim version x.yz ....
-changed uid/gid: forcing real = effective
- uid=uuuu gid=CALLER_GID pid=pppp
-configuration file is TESTSUITE/test-config
-admin user
-changed uid/gid: privilege not needed
- uid=EXIM_UID gid=EXIM_GID pid=pppp
-seeking password data for user "CALLER": cache not available
-getpwnam() succeeded uid=CALLER_UID gid=CALLER_GID
-originator: uid=CALLER_UID gid=CALLER_GID login=CALLER name=CALLER_NAME
-sender address = CALLER@myhost.test.ex
-sender_fullhost = [10.0.0.0]
-sender_rcvhost = [10.0.0.0]
-host in hosts_connection_nolog? no (option unset)
-LOG: smtp_connection MAIN
- SMTP connection from [10.0.0.0]
-host in host_lookup? no (option unset)
-set_process_info: pppp handling incoming connection from [10.0.0.0]
-host in host_reject_connection? no (option unset)
-host in sender_unqualified_hosts? no (option unset)
-host in recipient_unqualified_hosts? no (option unset)
-host in helo_verify_hosts? no (option unset)
-host in helo_try_verify_hosts? no (option unset)
-host in helo_accept_junk_hosts? no (option unset)
-SMTP>> 220 myhost.test.ex ESMTP Exim x.yz Tue, 2 Mar 1999 09:44:33 +0000
-smtp_setup_msg entered
-SMTP<< mail from:<a@b>
-SMTP>> 250 OK
-SMTP<< rcpt to:<c@d>
-using ACL "check_recipient"
-processing "accept"
-check domains = +local_domains
-d in "@"? no (end of list)
-d in "+local_domains"? no (end of list)
-accept: condition test failed
-processing "accept"
-check hosts = +relay_hosts
-search_open: pgsql "NULL"
-search_find: file="NULL"
- key="select * from them where id='10.0.0.0'" partial=-1 affix=NULL starflags=0
-LRU list:
-internal_search_find: file="NULL"
- type=pgsql key="select * from them where id='10.0.0.0'"
-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= database=test user=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
-processing "deny"
-deny: condition test succeeded
-SMTP>> 550 relay not permitted
-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"
-check domains = +local_domains
-d in "@"? no (end of list)
-d in "+local_domains"? no (end of list)
-accept: condition test failed
-processing "accept"
-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
-LRU list:
-internal_search_find: file="NULL"
- type=pgsql key="select * from them where id='10.0.0.0'"
-cached data used for lookup of select * from them where id='10.0.0.0'
-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
-processing "deny"
-deny: condition test succeeded
-SMTP>> 550 relay not permitted
-LOG: MAIN REJECT
- H=[10.0.0.0] F=<a@b> rejected RCPT <c@d>: relay not permitted
-SMTP<< quit
-SMTP>> 221 myhost.test.ex closing connection
-LOG: smtp_connection MAIN
- SMTP connection from [10.0.0.0] closed by QUIT
-search_tidyup called
-close PGSQL connection: localhost/test/CALLER
->>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=0 >>>>>>>>>>>>>>>>
-Exim version x.yz ....
-changed uid/gid: forcing real = effective
- uid=uuuu gid=CALLER_GID pid=pppp
-configuration file is TESTSUITE/test-config
-admin user
-changed uid/gid: privilege not needed
- uid=EXIM_UID gid=EXIM_GID pid=pppp
-seeking password data for user "CALLER": cache not available
-getpwnam() succeeded uid=CALLER_UID gid=CALLER_GID
-originator: uid=CALLER_UID gid=CALLER_GID login=CALLER name=CALLER_NAME
-sender address = CALLER@myhost.test.ex
-set_process_info: pppp accepting a local non-SMTP message from <CALLER@myhost.test.ex>
-Sender: CALLER@myhost.test.ex
-Recipients:
- CALLER
-search_tidyup called
->>Headers received:
-
-rewrite_one_header: type=F:
- From: CALLER_NAME <CALLER@myhost.test.ex>
-search_tidyup called
->>Headers after rewriting and local additions:
-I Message-Id: <E10HmaX-0005vi-00@myhost.test.ex>
-F From: CALLER_NAME <CALLER@myhost.test.ex>
- Date: Tue, 2 Mar 1999 09:44:33 +0000
-
-Data file written for message 10HmaX-0005vi-00
->>Generated Received: header line
-P Received: from CALLER by myhost.test.ex with local (Exim x.yz)
- (envelope-from <CALLER@myhost.test.ex>)
- id 10HmaX-0005vi-00
- for CALLER@myhost.test.ex; Tue, 2 Mar 1999 09:44:33 +0000
-calling local_scan(); timeout=300
-local_scan() returned 0 NULL
-Writing spool header file
-Size of headers = sss
-LOG: MAIN
- <= CALLER@myhost.test.ex U=CALLER P=local S=sss
-created log directory TESTSUITE/spool/log
-search_tidyup called
-exec TESTSUITE/eximdir/exim -DEXIM_PATH=TESTSUITE/eximdir/exim -C TESTSUITE/test-config -d=0xfbb95cfd -odi -Mc 10HmaX-0005vi-00
-Exim version x.yz ....
-changed uid/gid: forcing real = effective
- uid=uuuu gid=EXIM_GID pid=pppp
-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
-set_process_info: pppp delivering 10HmaX-0005vi-00
-reading spool file 10HmaX-0005vi-00-H
-user=CALLER uid=CALLER_UID gid=CALLER_GID sender=CALLER@myhost.test.ex
-sender_local=1 ident=CALLER
-Non-recipients:
-Empty Tree
----- End of tree ----
-recipients_count=1
-body_linecount=1 message_linecount=7
-Delivery address list:
- CALLER@myhost.test.ex
-locking TESTSUITE/spool/db/retry.lockfile
-locked TESTSUITE/spool/db/retry.lockfile
-EXIM_DBOPEN(TESTSUITE/spool/db/retry)
-returned from EXIM_DBOPEN
-ensuring TESTSUITE/spool/db/retry.lockfile is owned by exim
-no retry data available
->>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
-Considering: CALLER@myhost.test.ex
-unique = CALLER@myhost.test.ex
-no domain retry record
-no address retry record
-CALLER@myhost.test.ex: queued for routing
->>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
-routing CALLER@myhost.test.ex
---------> r1 router <--------
-local_part=CALLER domain=myhost.test.ex
-processing address_data
-search_open: pgsql "NULL"
-search_find: file="NULL"
- key="select name from them where id='CALLER'" partial=-1 affix=NULL starflags=0
-LRU list:
-internal_search_find: file="NULL"
- type=pgsql key="select name from them where id='CALLER'"
-database lookup required for select name from them where id='CALLER'
-PostgreSQL query: select name from them where id='CALLER'
-PGSQL new connection: host=localhost port= database=test user=CALLER
-lookup yielded: Philip Hazel
-calling r1 router
-r1 router called for CALLER@myhost.test.ex
- domain = myhost.test.ex
-set transport t1
-queued for t1 transport: local_part = CALLER
-domain = myhost.test.ex
- errors_to=NULL
- domain_data=NULL localpart_data=NULL
-routed by r1 router
- envelope to: CALLER@myhost.test.ex
- transport: t1
->>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
-After routing:
- Local deliveries:
- CALLER@myhost.test.ex
- Remote deliveries:
- Failed addresses:
- Deferred addresses:
-search_tidyup called
-close PGSQL connection: localhost/test/CALLER
->>>>>>>>>>>>>>>> Local deliveries >>>>>>>>>>>>>>>>
---------> CALLER@myhost.test.ex <--------
-locking TESTSUITE/spool/db/retry.lockfile
-locked TESTSUITE/spool/db/retry.lockfile
-EXIM_DBOPEN(TESTSUITE/spool/db/retry)
-returned from EXIM_DBOPEN
-no retry data available
-search_tidyup called
-changed uid/gid: local delivery to CALLER <CALLER@myhost.test.ex> transport=t1
- uid=CALLER_UID gid=CALLER_GID pid=pppp
- home=NULL current=/
-set_process_info: pppp delivering 10HmaX-0005vi-00 to CALLER using t1
-appendfile transport entered
-search_open: pgsql "NULL"
-search_find: file="NULL"
- key="select id from them where id='CALLER'" partial=-1 affix=NULL starflags=0
-LRU list:
-internal_search_find: file="NULL"
- type=pgsql key="select id from them where id='CALLER'"
-database lookup required for select id from them where id='CALLER'
-PostgreSQL query: select id from them where id='CALLER'
-PGSQL new connection: host=localhost port= database=test user=CALLER
-lookup yielded: CALLER
-appendfile: mode=600 notify_comsat=0 quota=0 warning=0
- file=TESTSUITE/test-mail/CALLER format=unix
- message_prefix=From ${if def:return_path{$return_path}{MAILER-DAEMON}} ${tod_bsdinbox}\n
- message_suffix=\n
- maildir_use_size_file=no
- locking by lockfile fcntl
-lock name: TESTSUITE/test-mail/CALLER.lock
-hitch name: TESTSUITE/test-mail/CALLER.lock.test.ex.dddddddd.pppppppp
-lock file created
-mailbox TESTSUITE/test-mail/CALLER is locked
-writing to file TESTSUITE/test-mail/CALLER
-writing data block fd=dddd size=sss timeout=0
-writing data block fd=dddd size=sss timeout=0
-writing data block fd=dddd size=sss timeout=0
-appendfile yields 0 with errno=dd more_errno=dd
-search_tidyup called
-close PGSQL connection: localhost/test/CALLER
-journalling CALLER@myhost.test.ex
-t1 transport returned OK for CALLER@myhost.test.ex
-post-process CALLER@myhost.test.ex (0)
-CALLER@myhost.test.ex delivered
-LOG: MAIN
- => CALLER <CALLER@myhost.test.ex> R=r1 T=t1
->>>>>>>>>>>>>>>> deliveries are done >>>>>>>>>>>>>>>>
-changed uid/gid: post-delivery tidying
- uid=EXIM_UID gid=EXIM_GID pid=pppp
-set_process_info: pppp tidying up after delivering 10HmaX-0005vi-00
-Processing retry items
-Succeeded addresses:
-CALLER@myhost.test.ex: no retry items
-Failed addresses:
-Deferred addresses:
-end of retry processing
-LOG: MAIN
- Completed
-end delivery of 10HmaX-0005vi-00
-search_tidyup called
-search_tidyup called
->>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=0 >>>>>>>>>>>>>>>>
-search_tidyup called
->>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=0 >>>>>>>>>>>>>>>>
-Exim version x.yz ....
-configuration file is TESTSUITE/test-config
-admin user
-search_open: pgsql "NULL"
-search_find: file="NULL"
- key="select name from them where id='CALLER';" partial=-1 affix=NULL starflags=0
-LRU list:
-internal_search_find: file="NULL"
- type=pgsql key="select name from them where id='CALLER';"
-database lookup required for select name from them where id='CALLER';
-PostgreSQL query: select name from them where id='CALLER';
-PGSQL new connection: socket=/tmp/.s.PGSQL.5432 database=test user=CALLER
-lookup yielded: Philip Hazel
-search_tidyup called
-close PGSQL connection: (/tmp/.s.PGSQL.5432)/test/CALLER
->>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=0 >>>>>>>>>>>>>>>>
--- /dev/null
+The files belonging to this database system will be owned by user "CALLER".
+This user must also own the server process.
+
+The database cluster will be initialized with locale "C".
+The default database encoding has accordingly been set to "SQL_ASCII".
+The default text search configuration will be set to "english".
+
+Data page checksums are disabled.
+
+creating directory TESTSUITE/pgsql/data ... ok
+creating subdirectories ... ok
+selecting default max_connections ... 100
+selecting default shared_buffers ... 128MB
+selecting dynamic shared memory implementation ... posix
+creating configuration files ... ok
+running bootstrap script ... ok
+performing post-bootstrap initialization ... ok
+syncing data to disk ... ok
+
+Success. You can now start the database server using:
+
+ pg_ctl -D TESTSUITE/pgsql/data -l logfile start
+
+CREATE TABLE
+INSERT 0 1
+INSERT 0 1
+INSERT 0 1
+INSERT 0 1
+INSERT 0 1
+INSERT 0 1
+INSERT 0 1
+> Philip Hazel
+> Philip Hazel
+>
+>
+> id=nothing name=""
+> 0
+> name="\"stquot" id=quote2
+> name="before\r
+after" id=newline
+> name="x x" id=tab
+> name='stquot id=quote1
+> Failed: lookup of "servers=x:localhost; select name from them where id='ph10';" gave DEFER: PostgreSQL server "x" not found in pgsql_servers
+> Philip Hazel
+> Philip Hazel
+> Philip Hazel
+> x
+> Philip Hazel
+Aristotle
+> name="Philip Hazel" id=ph10
+name=Aristotle id=aaaa
+>
+
+**** SMTP testing session as if from host 10.0.0.0
+**** but without any ident (RFC 1413) callback.
+**** This is not for real!
+
+220 myhost.test.ex ESMTP Exim x.yz Tue, 2 Mar 1999 09:44:33 +0000\r
+250 OK\r
+550 relay not permitted\r
+550 relay not permitted\r
+221 myhost.test.ex closing connection\r
+> Philip Hazel
+>
+waiting for server to shut down.... done
+server stopped
+++ /dev/null
-> Philip Hazel
-> Philip Hazel
->
->
-> id=nothing name=""
-> 0
-> name="\"stquot" id=quote2
-> name="before
-after" id=newline
-> name="x x" id=tab
-> name='stquot id=quote1
-> Failed: lookup of "servers=x:localhost; select name from them where id='CALLER';" gave DEFER: PostgreSQL server "x" not found in pgsql_servers
-> Philip Hazel
-> Philip Hazel
-> Philip Hazel
->
-
-**** SMTP testing session as if from host 10.0.0.0
-**** but without any ident (RFC 1413) callback.
-**** This is not for real!
-
-220 myhost.test.ex ESMTP Exim x.yz Tue, 2 Mar 1999 09:44:33 +0000\r
-250 OK\r
-550 relay not permitted\r
-550 relay not permitted\r
-221 myhost.test.ex closing connection\r
-> Philip Hazel
->