X-Git-Url: https://git.exim.org/exim.git/blobdiff_plain/df98a6ff2e70887890690ffbf8a8ad583d7d7e38..1d2868b2d90c230dd4ae42e6f3c7e4958ed75de5:/test/stderr/2600 diff --git a/test/stderr/2600 b/test/stderr/2600 index 220cb38a2..ae1208ca6 100644 --- a/test/stderr/2600 +++ b/test/stderr/2600 @@ -2,116 +2,146 @@ Exim version x.yz .... configuration file is TESTSUITE/test-config admin user dropping to exim gid; retaining priv uid -search_open: sqlite "TESTSUITE/aux-fixed/sqlitedb" -search_find: file="TESTSUITE/aux-fixed/sqlitedb" - key="select name from them where id='userx';" partial=-1 affix=NULL starflags=0 -LRU list: -internal_search_find: file="TESTSUITE/aux-fixed/sqlitedb" - type=sqlite key="select name from them where id='userx';" -file lookup required for select name from them where id='userx'; - in TESTSUITE/aux-fixed/sqlitedb -lookup yielded: Ayen Other -search_open: sqlite "TESTSUITE/aux-fixed/sqlitedb" - cached open -search_find: file="TESTSUITE/aux-fixed/sqlitedb" - key="select name from them where id='userx';" partial=-1 affix=NULL starflags=0 -LRU list: -internal_search_find: file="TESTSUITE/aux-fixed/sqlitedb" - type=sqlite key="select name from them where id='userx';" -cached data used for lookup of select name from them where id='userx'; - in TESTSUITE/aux-fixed/sqlitedb -lookup yielded: Ayen Other -search_open: sqlite "TESTSUITE/aux-fixed/sqlitedb" - cached open -search_find: file="TESTSUITE/aux-fixed/sqlitedb" - key="select name from them where id='xxxx';" partial=-1 affix=NULL starflags=0 -LRU list: -internal_search_find: file="TESTSUITE/aux-fixed/sqlitedb" - type=sqlite key="select name from them where id='xxxx';" -file lookup required for select name from them where id='xxxx'; - in TESTSUITE/aux-fixed/sqlitedb -lookup forced cache cleanup -lookup failed -search_open: sqlite "TESTSUITE/aux-fixed/sqlitedb" - cached open -search_find: file="TESTSUITE/aux-fixed/sqlitedb" - key="select name from them where id='nothing';" partial=-1 affix=NULL starflags=0 -LRU list: -internal_search_find: file="TESTSUITE/aux-fixed/sqlitedb" - type=sqlite key="select name from them where id='nothing';" -file lookup required for select name from them where id='nothing'; - in TESTSUITE/aux-fixed/sqlitedb -lookup yielded: -search_open: sqlite "TESTSUITE/aux-fixed/sqlitedb" - cached open -search_find: file="TESTSUITE/aux-fixed/sqlitedb" - key="select id,name from them where id='nothing';" partial=-1 affix=NULL starflags=0 -LRU list: -internal_search_find: file="TESTSUITE/aux-fixed/sqlitedb" - type=sqlite key="select id,name from them where id='nothing';" -file lookup required for select id,name from them where id='nothing'; - in TESTSUITE/aux-fixed/sqlitedb -lookup yielded: id=nothing name="" -search_open: sqlite "TESTSUITE/aux-fixed/sqlitedb" - cached open -search_find: file="TESTSUITE/aux-fixed/sqlitedb" - key="select * from them where id='quote2';" partial=-1 affix=NULL starflags=0 -LRU list: -internal_search_find: file="TESTSUITE/aux-fixed/sqlitedb" - type=sqlite key="select * from them where id='quote2';" -file lookup required for select * from them where id='quote2'; - in TESTSUITE/aux-fixed/sqlitedb -lookup yielded: name="\"stquot" id=quote2 -search_open: sqlite "TESTSUITE/aux-fixed/sqlitedb" - cached open -search_find: file="TESTSUITE/aux-fixed/sqlitedb" - key="select * from them where id='newline';" partial=-1 affix=NULL starflags=0 -LRU list: -internal_search_find: file="TESTSUITE/aux-fixed/sqlitedb" - type=sqlite key="select * from them where id='newline';" -file lookup required for select * from them where id='newline'; - in TESTSUITE/aux-fixed/sqlitedb -lookup yielded: name="before -after" id=newline -search_open: sqlite "TESTSUITE/aux-fixed/sqlitedb" - cached open -search_find: file="TESTSUITE/aux-fixed/sqlitedb" - key="select * from them where id='tab';" partial=-1 affix=NULL starflags=0 -LRU list: -internal_search_find: file="TESTSUITE/aux-fixed/sqlitedb" - type=sqlite key="select * from them where id='tab';" -file lookup required for select * from them where id='tab'; - in TESTSUITE/aux-fixed/sqlitedb -lookup yielded: name="x x" id=tab -search_open: sqlite "TESTSUITE/aux-fixed/sqlitedb" - cached open -search_find: file="TESTSUITE/aux-fixed/sqlitedb" - key="select * from them where id='its';" partial=-1 affix=NULL starflags=0 -LRU list: -internal_search_find: file="TESTSUITE/aux-fixed/sqlitedb" - type=sqlite key="select * from them where id='its';" -file lookup required for select * from them where id='its'; - in TESTSUITE/aux-fixed/sqlitedb -lookup yielded: name=it's id=its -search_open: sqlite "TESTSUITE/aux-fixed/sqlitedb" - cached open -search_find: file="TESTSUITE/aux-fixed/sqlitedb" - key="select * from them where name='it''s';" partial=-1 affix=NULL starflags=0 -LRU list: -internal_search_find: file="TESTSUITE/aux-fixed/sqlitedb" - type=sqlite key="select * from them where name='it''s';" -file lookup required for select * from them where name='it''s'; - in TESTSUITE/aux-fixed/sqlitedb -lookup yielded: name=it's id=its + search_open: sqlite "TESTSUITE/aux-fixed/sqlitedb" + search_find: file="TESTSUITE/aux-fixed/sqlitedb" + key="select name from them where id='userx';" partial=-1 affix=NULL starflags=0 opts="file=TESTSUITE/aux-fixed/sqlitedb" + LRU list: + internal_search_find: file="TESTSUITE/aux-fixed/sqlitedb" + type=sqlite key="select name from them where id='userx';" opts="file=TESTSUITE/aux-fixed/sqlitedb" + file lookup required for select name from them where id='userx'; + in TESTSUITE/aux-fixed/sqlitedb + creating new cache entry + lookup yielded: Ayen░Other + search_open: sqlite "TESTSUITE/aux-fixed/sqlitedb" + cached open + search_find: file="TESTSUITE/aux-fixed/sqlitedb" + key="select name from them where id='userx';" partial=-1 affix=NULL starflags=0 opts=NULL + LRU list: + internal_search_find: file="TESTSUITE/aux-fixed/sqlitedb" + type=sqlite key="select name from them where id='userx';" opts=NULL + cached data found but wrong opts; file lookup required for select name from them where id='userx'; + c in TESTSUITE/aux-fixed/sqlitedb + replacing old cache entry + lookup yielded: Ayen░Other + search_open: sqlite "TESTSUITE/aux-fixed/sqlitedb" + cached open + search_find: file="TESTSUITE/aux-fixed/sqlitedb" + key="select name from them where id='userx';" partial=-1 affix=NULL starflags=0 opts="file=TESTSUITE/aux-fixed/sqlitedb" + LRU list: + internal_search_find: file="TESTSUITE/aux-fixed/sqlitedb" + type=sqlite key="select name from them where id='userx';" opts="file=TESTSUITE/aux-fixed/sqlitedb" + cached data found but wrong opts; file lookup required for select name from them where id='userx'; + c in TESTSUITE/aux-fixed/sqlitedb + replacing old cache entry + lookup yielded: Ayen░Other + search_open: sqlite "TESTSUITE/aux-fixed/sqlitedb" + cached open + search_find: file="TESTSUITE/aux-fixed/sqlitedb" + key="select name from them where id='userx';" partial=-1 affix=NULL starflags=0 opts="file=TESTSUITE/aux-fixed/sqlitedb" + LRU list: + internal_search_find: file="TESTSUITE/aux-fixed/sqlitedb" + type=sqlite key="select name from them where id='userx';" opts="file=TESTSUITE/aux-fixed/sqlitedb" + cached data used for lookup of select name from them where id='userx'; + in TESTSUITE/aux-fixed/sqlitedb + lookup yielded: Ayen░Other + search_open: sqlite "TESTSUITE/aux-fixed/sqlitedb" + cached open + search_find: file="TESTSUITE/aux-fixed/sqlitedb" + key="select name from them where id='xxxx';" partial=-1 affix=NULL starflags=0 opts="file=TESTSUITE/aux-fixed/sqlitedb" + LRU list: + internal_search_find: file="TESTSUITE/aux-fixed/sqlitedb" + type=sqlite key="select name from them where id='xxxx';" opts="file=TESTSUITE/aux-fixed/sqlitedb" + file lookup required for select name from them where id='xxxx'; + in TESTSUITE/aux-fixed/sqlitedb + lookup forced cache cleanup + lookup failed + search_open: sqlite "TESTSUITE/aux-fixed/sqlitedb" + cached open + search_find: file="TESTSUITE/aux-fixed/sqlitedb" + key="select name from them where id='nothing';" partial=-1 affix=NULL starflags=0 opts="file=TESTSUITE/aux-fixed/sqlitedb" + LRU list: + internal_search_find: file="TESTSUITE/aux-fixed/sqlitedb" + type=sqlite key="select name from them where id='nothing';" opts="file=TESTSUITE/aux-fixed/sqlitedb" + file lookup required for select name from them where id='nothing'; + in TESTSUITE/aux-fixed/sqlitedb + creating new cache entry + lookup yielded: + search_open: sqlite "TESTSUITE/aux-fixed/sqlitedb" + cached open + search_find: file="TESTSUITE/aux-fixed/sqlitedb" + key="select id,name from them where id='nothing';" partial=-1 affix=NULL starflags=0 opts="file=TESTSUITE/aux-fixed/sqlitedb" + LRU list: + internal_search_find: file="TESTSUITE/aux-fixed/sqlitedb" + type=sqlite key="select id,name from them where id='nothing';" opts="file=TESTSUITE/aux-fixed/sqlitedb" + file lookup required for select id,name from them where id='nothing'; + in TESTSUITE/aux-fixed/sqlitedb + creating new cache entry + lookup yielded: id=nothing░name=""░ + search_open: sqlite "TESTSUITE/aux-fixed/sqlitedb" + cached open + search_find: file="TESTSUITE/aux-fixed/sqlitedb" + key="select * from them where id='quote2';" partial=-1 affix=NULL starflags=0 opts="file=TESTSUITE/aux-fixed/sqlitedb" + LRU list: + internal_search_find: file="TESTSUITE/aux-fixed/sqlitedb" + type=sqlite key="select * from them where id='quote2';" opts="file=TESTSUITE/aux-fixed/sqlitedb" + file lookup required for select * from them where id='quote2'; + in TESTSUITE/aux-fixed/sqlitedb + creating new cache entry + lookup yielded: name="\"stquot"░id=quote2░ + search_open: sqlite "TESTSUITE/aux-fixed/sqlitedb" + cached open + search_find: file="TESTSUITE/aux-fixed/sqlitedb" + key="select * from them where id='newline';" partial=-1 affix=NULL starflags=0 opts="file=TESTSUITE/aux-fixed/sqlitedb" + LRU list: + internal_search_find: file="TESTSUITE/aux-fixed/sqlitedb" + type=sqlite key="select * from them where id='newline';" opts="file=TESTSUITE/aux-fixed/sqlitedb" + file lookup required for select * from them where id='newline'; + in TESTSUITE/aux-fixed/sqlitedb + creating new cache entry + lookup yielded: name="before↩ + after"░id=newline░ + search_open: sqlite "TESTSUITE/aux-fixed/sqlitedb" + cached open + search_find: file="TESTSUITE/aux-fixed/sqlitedb" + key="select * from them where id='tab';" partial=-1 affix=NULL starflags=0 opts="file=TESTSUITE/aux-fixed/sqlitedb" + LRU list: + internal_search_find: file="TESTSUITE/aux-fixed/sqlitedb" + type=sqlite key="select * from them where id='tab';" opts="file=TESTSUITE/aux-fixed/sqlitedb" + file lookup required for select * from them where id='tab'; + in TESTSUITE/aux-fixed/sqlitedb + creating new cache entry + lookup yielded: name="x␉x"░id=tab░ + search_open: sqlite "TESTSUITE/aux-fixed/sqlitedb" + cached open + search_find: file="TESTSUITE/aux-fixed/sqlitedb" + key="select * from them where id='its';" partial=-1 affix=NULL starflags=0 opts="file=TESTSUITE/aux-fixed/sqlitedb" + LRU list: + internal_search_find: file="TESTSUITE/aux-fixed/sqlitedb" + type=sqlite key="select * from them where id='its';" opts="file=TESTSUITE/aux-fixed/sqlitedb" + file lookup required for select * from them where id='its'; + in TESTSUITE/aux-fixed/sqlitedb + creating new cache entry + lookup yielded: name=it's░id=its░ + search_open: sqlite "TESTSUITE/aux-fixed/sqlitedb" + cached open + search_find: file="TESTSUITE/aux-fixed/sqlitedb" + key="select * from them where name='it''s';" partial=-1 affix=NULL starflags=0 opts="file=TESTSUITE/aux-fixed/sqlitedb" + LRU list: + internal_search_find: file="TESTSUITE/aux-fixed/sqlitedb" + type=sqlite key="select * from them where name='it''s';" opts="file=TESTSUITE/aux-fixed/sqlitedb" + file lookup required for select * from them where name='it''s'; + in TESTSUITE/aux-fixed/sqlitedb + creating new cache entry + lookup yielded: name=it's░id=its░ search_tidyup called ->>>>>>>>>>>>>>>> Exim pid=pppp (main: expansion test) terminating with rc=0 >>>>>>>>>>>>>>>> +>>>>>>>>>>>>>>>> Exim pid=p1234 (fresh-exec) terminating with rc=0 >>>>>>>>>>>>>>>> Exim version x.yz .... changed uid/gid: forcing real = effective - uid=uuuu gid=CALLER_GID pid=pppp + uid=uuuu gid=CALLER_GID pid=p1235 configuration file is TESTSUITE/test-config admin user changed uid/gid: privilege not needed - uid=EXIM_UID gid=EXIM_GID pid=pppp + uid=EXIM_UID gid=EXIM_GID pid=p1235 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 @@ -131,82 +161,243 @@ 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<< helo test +test in helo_lookup_domains? + list element: @ + list element: @[] +test in helo_lookup_domains? no (end of list) +sender_fullhost = (test) [10.0.0.0] +sender_rcvhost = [10.0.0.0] (helo=test) +set_process_info: pppp handling incoming connection from (test) [10.0.0.0] +SMTP>> 250 myhost.test.ex Hello test [10.0.0.0] SMTP<< mail from: 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: using ACL "check_recipient" -processing "accept" (TESTSUITE/test-config 23) +processing "accept" (TESTSUITE/test-config 32) check domains = +local_domains -d in "@"? no (end of list) +d in "+local_domains"? + list element: +local_domains + start sublist local_domains + d in "@"? + ╎list element: @ + d in "@"? no (end of list) + end sublist local_domains d in "+local_domains"? no (end of list) accept: condition test failed in ACL "check_recipient" -processing "accept" (TESTSUITE/test-config 24) +processing "accept" (TESTSUITE/test-config 33) check hosts = +relay_hosts -search_open: sqlite "TESTSUITE/aux-fixed/sqlitedb" -search_find: file="TESTSUITE/aux-fixed/sqlitedb" - key="select * from them where id='10.0.0.0'" partial=-1 affix=NULL starflags=0 -LRU list: -internal_search_find: file="TESTSUITE/aux-fixed/sqlitedb" - type=sqlite key="select * from them where id='10.0.0.0'" -file lookup required for select * from them where id='10.0.0.0' - in TESTSUITE/aux-fixed/sqlitedb -lookup forced cache cleanup -lookup failed -host in "sqlite;TESTSUITE/aux-fixed/sqlitedb select * from them where id='10.0.0.0'"? no (end of list) +host in "+relay_hosts"? + list element: +relay_hosts + start sublist relay_hosts + host in "sqlite,file=TESTSUITE/aux-fixed/sqlitedb; select * from them where id='10.0.0.0'"? + ╎list element: sqlite,file=TESTSUITE/aux-fixed/sqlitedb;░select░*░from░them░where░id='10.0.0.0' + ╎search_open: sqlite "TESTSUITE/aux-fixed/sqlitedb" + ╎search_find: file="TESTSUITE/aux-fixed/sqlitedb" + ╎ key="select * from them where id='10.0.0.0'" partial=-1 affix=NULL starflags=0 opts="file=TESTSUITE/aux-fixed/sqlitedb" + ╎LRU list: + ╎internal_search_find: file="TESTSUITE/aux-fixed/sqlitedb" + ╎ type=sqlite key="select * from them where id='10.0.0.0'" opts="file=TESTSUITE/aux-fixed/sqlitedb" + ╎file lookup required for select * from them where id='10.0.0.0' + ╎ in TESTSUITE/aux-fixed/sqlitedb + ╎lookup forced cache cleanup + ╎lookup failed + host in "sqlite,file=TESTSUITE/aux-fixed/sqlitedb; select * from them where id='10.0.0.0'"? no (end of list) + end sublist relay_hosts host in "+relay_hosts"? no (end of list) accept: condition test failed in ACL "check_recipient" -processing "deny" (TESTSUITE/test-config 25) +processing "deny" (TESTSUITE/test-config 34) 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= rejected RCPT : relay not permitted + H=(test) [10.0.0.0] F= rejected RCPT : relay not permitted SMTP<< rcpt to: using ACL "check_recipient" -processing "accept" (TESTSUITE/test-config 23) +processing "accept" (TESTSUITE/test-config 32) check domains = +local_domains -d in "@"? no (end of list) +d in "+local_domains"? + list element: +local_domains + start sublist local_domains + d in "@"? + ╎list element: @ + d in "@"? no (end of list) + end sublist local_domains d in "+local_domains"? no (end of list) accept: condition test failed in ACL "check_recipient" -processing "accept" (TESTSUITE/test-config 24) +processing "accept" (TESTSUITE/test-config 33) check hosts = +relay_hosts -search_open: sqlite "TESTSUITE/aux-fixed/sqlitedb" - cached open -search_find: file="TESTSUITE/aux-fixed/sqlitedb" - key="select * from them where id='10.0.0.0'" partial=-1 affix=NULL starflags=0 -LRU list: -internal_search_find: file="TESTSUITE/aux-fixed/sqlitedb" - type=sqlite key="select * from them where id='10.0.0.0'" -file lookup required for select * from them where id='10.0.0.0' - in TESTSUITE/aux-fixed/sqlitedb -lookup forced cache cleanup -lookup failed -host in "sqlite;TESTSUITE/aux-fixed/sqlitedb select * from them where id='10.0.0.0'"? no (end of list) +host in "+relay_hosts"? + list element: +relay_hosts + start sublist relay_hosts + host in "sqlite,file=TESTSUITE/aux-fixed/sqlitedb; select * from them where id='10.0.0.0'"? + ╎list element: sqlite,file=TESTSUITE/aux-fixed/sqlitedb;░select░*░from░them░where░id='10.0.0.0' + ╎search_open: sqlite "TESTSUITE/aux-fixed/sqlitedb" + ╎ cached open + ╎search_find: file="TESTSUITE/aux-fixed/sqlitedb" + ╎ key="select * from them where id='10.0.0.0'" partial=-1 affix=NULL starflags=0 opts="file=TESTSUITE/aux-fixed/sqlitedb" + ╎LRU list: + ╎internal_search_find: file="TESTSUITE/aux-fixed/sqlitedb" + ╎ type=sqlite key="select * from them where id='10.0.0.0'" opts="file=TESTSUITE/aux-fixed/sqlitedb" + ╎file lookup required for select * from them where id='10.0.0.0' + ╎ in TESTSUITE/aux-fixed/sqlitedb + ╎lookup forced cache cleanup + ╎lookup failed + host in "sqlite,file=TESTSUITE/aux-fixed/sqlitedb; select * from them where id='10.0.0.0'"? no (end of list) + end sublist relay_hosts host in "+relay_hosts"? no (end of list) accept: condition test failed in ACL "check_recipient" -processing "deny" (TESTSUITE/test-config 25) +processing "deny" (TESTSUITE/test-config 34) 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= rejected RCPT : relay not permitted + H=(test) [10.0.0.0] F= rejected RCPT : 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 + SMTP connection from (test) [10.0.0.0] D=qqs closed by QUIT search_tidyup called ->>>>>>>>>>>>>>>> Exim pid=pppp (main) terminating with rc=0 >>>>>>>>>>>>>>>> +>>>>>>>>>>>>>>>> Exim pid=p1235 (fresh-exec) terminating with rc=0 >>>>>>>>>>>>>>>> Exim version x.yz .... changed uid/gid: forcing real = effective - uid=uuuu gid=CALLER_GID pid=pppp + uid=uuuu gid=CALLER_GID pid=p1236 configuration file is TESTSUITE/test-config admin user changed uid/gid: privilege not needed - uid=EXIM_UID gid=EXIM_GID pid=pppp + uid=EXIM_UID gid=EXIM_GID pid=p1236 +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<< helo test +test in helo_lookup_domains? + list element: @ + list element: @[] +test in helo_lookup_domains? no (end of list) +sender_fullhost = (test) [10.0.0.0] +sender_rcvhost = [10.0.0.0] (helo=test) +set_process_info: pppp handling incoming connection from (test) [10.0.0.0] +SMTP>> 250 myhost.test.ex Hello test [10.0.0.0] +SMTP<< mail from: +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: +using ACL "check_recipient" +processing "accept" (TESTSUITE/test-config 32) +check domains = +local_domains +d in "+local_domains"? + list element: +local_domains + start sublist local_domains + d in "@"? + ╎list element: @ + d in "@"? no (end of list) + end sublist local_domains +d in "+local_domains"? no (end of list) +accept: condition test failed in ACL "check_recipient" +processing "accept" (TESTSUITE/test-config 33) +check hosts = +relay_hosts +host in "+relay_hosts"? + list element: +relay_hosts + start sublist relay_hosts + host in "sqlite;TESTSUITE/aux-fixed/sqlitedb select * from them where id='10.0.0.0'"? + ╎list element: sqlite;TESTSUITE/aux-fixed/sqlitedb░select░*░from░them░where░id='10.0.0.0' + ╎search_open: sqlite "TESTSUITE/aux-fixed/sqlitedb" + ╎search_find: file="TESTSUITE/aux-fixed/sqlitedb" + ╎ key="select * from them where id='10.0.0.0'" partial=-1 affix=NULL starflags=0 opts=NULL + ╎LRU list: + ╎internal_search_find: file="TESTSUITE/aux-fixed/sqlitedb" + ╎ type=sqlite key="select * from them where id='10.0.0.0'" opts=NULL + ╎file lookup required for select * from them where id='10.0.0.0' + ╎ in TESTSUITE/aux-fixed/sqlitedb + ╎lookup forced cache cleanup + ╎lookup failed + host in "sqlite;TESTSUITE/aux-fixed/sqlitedb select * from them where id='10.0.0.0'"? no (end of list) + end sublist relay_hosts +host in "+relay_hosts"? no (end of list) +accept: condition test failed in ACL "check_recipient" +processing "deny" (TESTSUITE/test-config 34) + 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=(test) [10.0.0.0] F= rejected RCPT : relay not permitted +SMTP<< rcpt to: +using ACL "check_recipient" +processing "accept" (TESTSUITE/test-config 32) +check domains = +local_domains +d in "+local_domains"? + list element: +local_domains + start sublist local_domains + d in "@"? + ╎list element: @ + d in "@"? no (end of list) + end sublist local_domains +d in "+local_domains"? no (end of list) +accept: condition test failed in ACL "check_recipient" +processing "accept" (TESTSUITE/test-config 33) +check hosts = +relay_hosts +host in "+relay_hosts"? + list element: +relay_hosts + start sublist relay_hosts + host in "sqlite;TESTSUITE/aux-fixed/sqlitedb select * from them where id='10.0.0.0'"? + ╎list element: sqlite;TESTSUITE/aux-fixed/sqlitedb░select░*░from░them░where░id='10.0.0.0' + ╎search_open: sqlite "TESTSUITE/aux-fixed/sqlitedb" + ╎ cached open + ╎search_find: file="TESTSUITE/aux-fixed/sqlitedb" + ╎ key="select * from them where id='10.0.0.0'" partial=-1 affix=NULL starflags=0 opts=NULL + ╎LRU list: + ╎internal_search_find: file="TESTSUITE/aux-fixed/sqlitedb" + ╎ type=sqlite key="select * from them where id='10.0.0.0'" opts=NULL + ╎file lookup required for select * from them where id='10.0.0.0' + ╎ in TESTSUITE/aux-fixed/sqlitedb + ╎lookup forced cache cleanup + ╎lookup failed + host in "sqlite;TESTSUITE/aux-fixed/sqlitedb select * from them where id='10.0.0.0'"? no (end of list) + end sublist relay_hosts +host in "+relay_hosts"? no (end of list) +accept: condition test failed in ACL "check_recipient" +processing "deny" (TESTSUITE/test-config 34) + 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=(test) [10.0.0.0] F= rejected RCPT : relay not permitted +SMTP<< quit +SMTP>> 221 myhost.test.ex closing connection +LOG: smtp_connection MAIN + SMTP connection from (test) [10.0.0.0] D=qqs closed by QUIT +search_tidyup called +>>>>>>>>>>>>>>>> Exim pid=p1236 (fresh-exec) terminating with rc=0 >>>>>>>>>>>>>>>> +Exim version x.yz .... +changed uid/gid: forcing real = effective + uid=uuuu gid=CALLER_GID pid=p1237 +configuration file is TESTSUITE/test-config +admin user +changed uid/gid: privilege not needed + uid=EXIM_UID gid=EXIM_GID pid=p1237 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 @@ -226,72 +417,104 @@ 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<< helo test +test in helo_lookup_domains? + list element: @ + list element: @[] +test in helo_lookup_domains? no (end of list) +sender_fullhost = (test) [10.10.10.10] +sender_rcvhost = [10.10.10.10] (helo=test) +set_process_info: pppp handling incoming connection from (test) [10.10.10.10] +SMTP>> 250 myhost.test.ex Hello test [10.10.10.10] SMTP<< mail from: 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: using ACL "check_recipient" -processing "accept" (TESTSUITE/test-config 23) +processing "accept" (TESTSUITE/test-config 32) check domains = +local_domains -d in "@"? no (end of list) +d in "+local_domains"? + list element: +local_domains + start sublist local_domains + d in "@"? + ╎list element: @ + d in "@"? no (end of list) + end sublist local_domains d in "+local_domains"? no (end of list) accept: condition test failed in ACL "check_recipient" -processing "accept" (TESTSUITE/test-config 24) +processing "accept" (TESTSUITE/test-config 33) check hosts = +relay_hosts -search_open: sqlite "TESTSUITE/aux-fixed/sqlitedb" -search_find: file="TESTSUITE/aux-fixed/sqlitedb" - key="select * from them where id='10.10.10.10'" partial=-1 affix=NULL starflags=0 -LRU list: -internal_search_find: file="TESTSUITE/aux-fixed/sqlitedb" - type=sqlite key="select * from them where id='10.10.10.10'" -file lookup required for select * from them where id='10.10.10.10' - in TESTSUITE/aux-fixed/sqlitedb -lookup yielded: name=ok id=10.10.10.10 -host in "sqlite;TESTSUITE/aux-fixed/sqlitedb select * from them where id='10.10.10.10'"? yes (matched "sqlite;TESTSUITE/aux-fixed/sqlitedb select * from them where id='10.10.10.10'") -host in "+relay_hosts"? yes (matched "+relay_hosts") +host in "+relay_hosts"? + list element: +relay_hosts + start sublist relay_hosts + host in "sqlite;TESTSUITE/aux-fixed/sqlitedb select * from them where id='10.10.10.10'"? + ╎list element: sqlite;TESTSUITE/aux-fixed/sqlitedb░select░*░from░them░where░id='10.10.10.10' + ╎search_open: sqlite "TESTSUITE/aux-fixed/sqlitedb" + ╎search_find: file="TESTSUITE/aux-fixed/sqlitedb" + ╎ key="select * from them where id='10.10.10.10'" partial=-1 affix=NULL starflags=0 opts=NULL + ╎LRU list: + ╎internal_search_find: file="TESTSUITE/aux-fixed/sqlitedb" + ╎ type=sqlite key="select * from them where id='10.10.10.10'" opts=NULL + ╎file lookup required for select * from them where id='10.10.10.10' + ╎ in TESTSUITE/aux-fixed/sqlitedb + ╎creating new cache entry + ╎lookup yielded: name=ok░id=10.10.10.10░ + ╎host in "sqlite;TESTSUITE/aux-fixed/sqlitedb select * from them where id='10.10.10.10'"? yes (matched "sqlite;TESTSUITE/aux-fixed/sqlitedb select * from them where id='10.10.10.10'") + end sublist relay_hosts + host in "+relay_hosts"? yes (matched "+relay_hosts") accept: condition test succeeded in ACL "check_recipient" end of ACL "check_recipient": ACCEPT SMTP>> 250 Accepted -DSN: orcpt: NULL flags: 0 SMTP<< rcpt to: using ACL "check_recipient" -processing "accept" (TESTSUITE/test-config 23) +processing "accept" (TESTSUITE/test-config 32) check domains = +local_domains -d in "@"? no (end of list) +d in "+local_domains"? + list element: +local_domains + start sublist local_domains + d in "@"? + ╎list element: @ + d in "@"? no (end of list) + end sublist local_domains d in "+local_domains"? no (end of list) accept: condition test failed in ACL "check_recipient" -processing "accept" (TESTSUITE/test-config 24) +processing "accept" (TESTSUITE/test-config 33) check hosts = +relay_hosts -search_open: sqlite "TESTSUITE/aux-fixed/sqlitedb" - cached open -search_find: file="TESTSUITE/aux-fixed/sqlitedb" - key="select * from them where id='10.10.10.10'" partial=-1 affix=NULL starflags=0 -LRU list: -internal_search_find: file="TESTSUITE/aux-fixed/sqlitedb" - type=sqlite key="select * from them where id='10.10.10.10'" -cached data used for lookup of select * from them where id='10.10.10.10' - in TESTSUITE/aux-fixed/sqlitedb -lookup yielded: name=ok id=10.10.10.10 -host in "sqlite;TESTSUITE/aux-fixed/sqlitedb select * from them where id='10.10.10.10'"? yes (matched "sqlite;TESTSUITE/aux-fixed/sqlitedb select * from them where id='10.10.10.10'") -host in "+relay_hosts"? yes (matched "+relay_hosts") +host in "+relay_hosts"? + list element: +relay_hosts + start sublist relay_hosts + host in "sqlite;TESTSUITE/aux-fixed/sqlitedb select * from them where id='10.10.10.10'"? + ╎list element: sqlite;TESTSUITE/aux-fixed/sqlitedb░select░*░from░them░where░id='10.10.10.10' + ╎search_open: sqlite "TESTSUITE/aux-fixed/sqlitedb" + ╎ cached open + ╎search_find: file="TESTSUITE/aux-fixed/sqlitedb" + ╎ key="select * from them where id='10.10.10.10'" partial=-1 affix=NULL starflags=0 opts=NULL + ╎LRU list: + ╎internal_search_find: file="TESTSUITE/aux-fixed/sqlitedb" + ╎ type=sqlite key="select * from them where id='10.10.10.10'" opts=NULL + ╎cached data used for lookup of select * from them where id='10.10.10.10' + ╎ in TESTSUITE/aux-fixed/sqlitedb + ╎lookup yielded: name=ok░id=10.10.10.10░ + ╎host in "sqlite;TESTSUITE/aux-fixed/sqlitedb select * from them where id='10.10.10.10'"? yes (matched "sqlite;TESTSUITE/aux-fixed/sqlitedb select * from them where id='10.10.10.10'") + end sublist relay_hosts + host in "+relay_hosts"? yes (matched "+relay_hosts") accept: condition test succeeded in ACL "check_recipient" end of ACL "check_recipient": ACCEPT SMTP>> 250 Accepted -DSN: orcpt: NULL flags: 0 SMTP<< quit SMTP>> 221 myhost.test.ex closing connection LOG: smtp_connection MAIN - SMTP connection from [10.10.10.10] closed by QUIT + SMTP connection from (test) [10.10.10.10] D=qqs closed by QUIT search_tidyup called ->>>>>>>>>>>>>>>> Exim pid=pppp (main) terminating with rc=0 >>>>>>>>>>>>>>>> +>>>>>>>>>>>>>>>> Exim pid=p1237 (fresh-exec) terminating with rc=0 >>>>>>>>>>>>>>>> Exim version x.yz .... changed uid/gid: forcing real = effective - uid=uuuu gid=CALLER_GID pid=pppp + uid=uuuu gid=CALLER_GID pid=p1238 configuration file is TESTSUITE/test-config admin user changed uid/gid: privilege not needed - uid=EXIM_UID gid=EXIM_GID pid=pppp + uid=EXIM_UID gid=EXIM_GID pid=p1238 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 @@ -305,36 +528,37 @@ Recipients: search_tidyup called >>Headers received: -rewrite_one_header: type=F: - From: CALLER_NAME +qualify & rewrite recipients list +rewrite rules on sender address +qualify and rewrite headers + rewrite_one_header: type=F: + From: CALLER_NAME search_tidyup called >>Headers after rewriting and local additions: -I Message-Id: -F From: CALLER_NAME - Date: Tue, 2 Mar 1999 09:44:33 +0000 + I Message-Id: + F From: CALLER_NAME + 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 +Data file name: TESTSUITE/spool//input//10HmaX-000000005vi-0000-D +Data file written for message 10HmaX-000000005vi-0000 >>Generated Received: header line P Received: from CALLER by myhost.test.ex with local (Exim x.yz) (envelope-from ) - id 10HmaX-0005vi-00 - for userx@myhost.test.ex; Tue, 2 Mar 1999 09:44:33 +0000 -Writing spool header file: TESTSUITE/spool//input//hdr.10HmaX-0005vi-00 -DSN: Write SPOOL: -dsn_envid NULL -DSN: Write SPOOL :-dsn_ret 0 -DSN: Flags: 0x0 + id 10HmaX-000000005vi-0000 + for userx@myhost.test.ex; + Tue, 2 Mar 1999 09:44:33 +0000 +Writing spool header file: TESTSUITE/spool//input//hdr.10HmaX-000000005vi-0000 DSN: **** SPOOL_OUT - address: errorsto: orcpt: dsn_flags: 0x0 -Renaming spool header file: TESTSUITE/spool//input//10HmaX-0005vi-00-H +Renaming spool header file: TESTSUITE/spool//input//10HmaX-000000005vi-0000-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=0xf7715cfd -odi -Mc 10HmaX-0005vi-00 +exec TESTSUITE/eximdir/exim -DEXIM_PATH=TESTSUITE/eximdir/exim -DOPT=y -C TESTSUITE/test-config -d=0xf7715cfd -MCd local-accept-delivery -odi -Mc 10HmaX-000000005vi-0000 Exim version x.yz .... changed uid/gid: forcing real = effective - uid=uuuu gid=EXIM_GID pid=pppp + uid=uuuu gid=EXIM_GID pid=p1239 configuration file is TESTSUITE/test-config trusted user admin user @@ -342,17 +566,17 @@ dropping to exim gid; retaining priv uid 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 +set_process_info: pppp delivering 10HmaX-000000005vi-0000 +Trying spool file TESTSUITE/spool//input//10HmaX-000000005vi-0000-D +reading spool file 10HmaX-000000005vi-0000-H user=CALLER uid=CALLER_UID gid=CALLER_GID sender=CALLER@myhost.test.ex sender_local=1 ident=CALLER Non-recipients: -Empty Tree + Empty Tree ---- End of tree ---- recipients_count=1 **** SPOOL_IN - No additional fields -body_linecount=1 message_linecount=7 +body_linecount=1 message_linecount=8 DSN: set orcpt: flags: 0x0 Delivery address list: userx@myhost.test.ex @@ -360,8 +584,7 @@ Delivery address list: locked TESTSUITE/spool/db/retry.lockfile EXIM_DBOPEN: file dir 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 + failed to open DB file TESTSUITE/spool/db/retry: No such file or directory no retry data available >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Considering: userx@myhost.test.ex @@ -374,15 +597,16 @@ routing userx@myhost.test.ex --------> r1 router <-------- local_part=userx domain=myhost.test.ex processing address_data -search_open: sqlite "TESTSUITE/aux-fixed/sqlitedb" -search_find: file="TESTSUITE/aux-fixed/sqlitedb" - key="select name from them where id='userx'" partial=-1 affix=NULL starflags=0 -LRU list: -internal_search_find: file="TESTSUITE/aux-fixed/sqlitedb" - type=sqlite key="select name from them where id='userx'" -file lookup required for select name from them where id='userx' - in TESTSUITE/aux-fixed/sqlitedb -lookup yielded: Ayen Other + search_open: sqlite "TESTSUITE/aux-fixed/sqlitedb" + search_find: file="TESTSUITE/aux-fixed/sqlitedb" + key="select name from them where id='userx'" partial=-1 affix=NULL starflags=0 opts=NULL + LRU list: + internal_search_find: file="TESTSUITE/aux-fixed/sqlitedb" + type=sqlite key="select name from them where id='userx'" opts=NULL + file lookup required for select name from them where id='userx' + in TESTSUITE/aux-fixed/sqlitedb + creating new cache entry + lookup yielded: Ayen░Other calling r1 router r1 router called for userx@myhost.test.ex domain = myhost.test.ex @@ -390,7 +614,7 @@ set transport t1 queued for t1 transport: local_part = userx domain = myhost.test.ex errors_to=NULL - domain_data=NULL localpart_data=NULL + domain_data=NULL local_part_data=NULL routed by r1 router envelope to: userx@myhost.test.ex transport: t1 @@ -412,19 +636,20 @@ search_tidyup called no retry data available search_tidyup called changed uid/gid: local delivery to userx transport=t1 - uid=CALLER_UID gid=CALLER_GID pid=pppp + uid=CALLER_UID gid=CALLER_GID pid=p1240 home=NULL current=/ -set_process_info: pppp delivering 10HmaX-0005vi-00 to userx using t1 +set_process_info: pppp delivering 10HmaX-000000005vi-0000 to userx using t1 appendfile transport entered -search_open: sqlite "TESTSUITE/aux-fixed/sqlitedb" -search_find: file="TESTSUITE/aux-fixed/sqlitedb" - key="select id from them where id='userx'" partial=-1 affix=NULL starflags=0 -LRU list: -internal_search_find: file="TESTSUITE/aux-fixed/sqlitedb" - type=sqlite key="select id from them where id='userx'" -file lookup required for select id from them where id='userx' - in TESTSUITE/aux-fixed/sqlitedb -lookup yielded: userx + search_open: sqlite "TESTSUITE/aux-fixed/sqlitedb" + search_find: file="TESTSUITE/aux-fixed/sqlitedb" + key="select id from them where id='userx'" partial=-1 affix=NULL starflags=0 opts=NULL + LRU list: + internal_search_find: file="TESTSUITE/aux-fixed/sqlitedb" + type=sqlite key="select id from them where id='userx'" opts=NULL + file lookup required for select id from them where id='userx' + in TESTSUITE/aux-fixed/sqlitedb + creating new cache entry + lookup yielded: userx appendfile: mode=600 notify_comsat=0 quota=0 warning=0 file=TESTSUITE/test-mail/userx format=unix message_prefix=From ${if def:return_path{$return_path}{MAILER-DAEMON}} ${tod_bsdinbox}\n @@ -450,8 +675,8 @@ LOG: MAIN => userx 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 + uid=EXIM_UID gid=EXIM_GID pid=p1239 +set_process_info: pppp tidying up after delivering 10HmaX-000000005vi-0000 Processing retry items Succeeded addresses: userx@myhost.test.ex: no retry items @@ -468,24 +693,66 @@ DSN: Remote SMTP server supports DSN: 0 DSN: not sending DSN success message LOG: MAIN Completed -end delivery of 10HmaX-0005vi-00 +end delivery of 10HmaX-000000005vi-0000 +search_tidyup called +search_tidyup called +>>>>>>>>>>>>>>>> Exim pid=p1239 (local-accept-delivery) terminating with rc=0 >>>>>>>>>>>>>>>> +search_tidyup called +>>>>>>>>>>>>>>>> Exim pid=p1238 (fresh-exec) terminating with rc=0 >>>>>>>>>>>>>>>> +Exim version x.yz .... +configuration file is TESTSUITE/test-config +admin user +dropping to exim gid; retaining priv uid + search_open: sqlite "TESTSUITE/aux-fixed/sqlitedb" + search_find: file="TESTSUITE/aux-fixed/sqlitedb" + key="select name from them where id='userx';" partial=-1 affix=NULL starflags=0 opts=NULL + LRU list: + internal_search_find: file="TESTSUITE/aux-fixed/sqlitedb" + type=sqlite key="select name from them where id='userx';" opts=NULL + file lookup required for select name from them where id='userx'; + in TESTSUITE/aux-fixed/sqlitedb + creating new cache entry + lookup yielded: Ayen░Other search_tidyup called +>>>>>>>>>>>>>>>> Exim pid=p1241 (fresh-exec) terminating with rc=0 >>>>>>>>>>>>>>>> +Exim version x.yz .... +configuration file is TESTSUITE/test-config +admin user +dropping to exim gid; retaining priv uid + search_open: sqlite "NULL" + Using sqlite_dbfile: TESTSUITE/aux-fixed/sqlitedb + search_find: file="NULL" + key="select name from them where id='userx';" partial=-1 affix=NULL starflags=0 opts=NULL + LRU list: + internal_search_find: file="NULL" + type=sqlite key="select name from them where id='userx';" opts=NULL + database lookup required for select name from them where id='userx'; + creating new cache entry + lookup yielded: Ayen░Other search_tidyup called ->>>>>>>>>>>>>>>> Exim pid=pppp (main) terminating with rc=0 >>>>>>>>>>>>>>>> +>>>>>>>>>>>>>>>> Exim pid=p1242 (fresh-exec) terminating with rc=0 >>>>>>>>>>>>>>>> +Exim version x.yz .... +configuration file is TESTSUITE/test-config +admin user +dropping to exim gid; retaining priv uid + search_open: sqlite "NULL" + Using sqlite_dbfile: nonabsolute_filename search_tidyup called ->>>>>>>>>>>>>>>> Exim pid=pppp (main) terminating with rc=0 >>>>>>>>>>>>>>>> +>>>>>>>>>>>>>>>> Exim pid=p1243 (fresh-exec) terminating with rc=0 >>>>>>>>>>>>>>>> Exim version x.yz .... configuration file is TESTSUITE/test-config admin user dropping to exim gid; retaining priv uid -search_open: sqlite "TESTSUITE/aux-fixed/sqlitedb" -search_find: file="TESTSUITE/aux-fixed/sqlitedb" - key="select name from them where id='userx';" partial=-1 affix=NULL starflags=0 -LRU list: -internal_search_find: file="TESTSUITE/aux-fixed/sqlitedb" - type=sqlite key="select name from them where id='userx';" -file lookup required for select name from them where id='userx'; - in TESTSUITE/aux-fixed/sqlitedb -lookup yielded: Ayen Other + search_open: sqlite "NULL" + Using sqlite_dbfile: TESTSUITE/missingfile + search_find: file="NULL" + key="select name from them where id='userx';" partial=-1 affix=NULL starflags=0 opts=NULL + LRU list: + internal_search_find: file="NULL" + type=sqlite key="select name from them where id='userx';" opts=NULL + database lookup required for select name from them where id='userx'; + sqlite3_exec failed: no such table: them + creating new cache entry + lookup failed search_tidyup called ->>>>>>>>>>>>>>>> Exim pid=pppp (main: expansion test) terminating with rc=0 >>>>>>>>>>>>>>>> +>>>>>>>>>>>>>>>> Exim pid=p1244 (fresh-exec) terminating with rc=0 >>>>>>>>>>>>>>>>