--------> r1 router <--------
local_part=CALLER domain=test.ex
checking local_parts
-CALLER in "never"? no (end of list)
-CALLER in "never1"? no (end of list)
-CALLER in "CALLER"? yes (matched "CALLER")
-data from lookup saved for cache for +local_localparts: key 'CALLER' value 'CALLER'
-CALLER in "+never_localparts : +n1_localparts : ! +local_localparts"? no (matched "! +local_localparts")
+CALLER in "+never_localparts : +n1_localparts : ! +local_localparts"?
+ list element: +never_localparts
+ start sublist never_localparts
+ CALLER in "never"?
+ ╎list element: never
+ CALLER in "never"? no (end of list)
+ end sublist never_localparts
+ list element: +n1_localparts
+ start sublist n1_localparts
+ CALLER in "never1"?
+ ╎list element: never1
+ CALLER in "never1"? no (end of list)
+ end sublist n1_localparts
+ list element: ! +local_localparts
+ start sublist local_localparts
+ CALLER in "CALLER"?
+ ╎list element: CALLER
+ ╎CALLER in "CALLER"? yes (matched "CALLER")
+ end sublist local_localparts
+ data from lookup saved for cache for +local_localparts: key 'CALLER' value 'CALLER'
+ CALLER in "+never_localparts : +n1_localparts : ! +local_localparts"? no (matched "! +local_localparts")
r1 router skipped: local_parts mismatch
--------> r2 router <--------
local_part=CALLER domain=test.ex
checking local_parts
-cached no match for +never_localparts
-cached lookup data = NULL
-cached no match for +n1_localparts
-cached lookup data = NULL
-CALLER in "<; never2 ; +n1_localparts"? no (end of list)
-cached yes match for +local_localparts
-cached lookup data = CALLER
-CALLER in "+never_localparts : +n2_localparts : !+local_localparts"? no (matched "!+local_localparts" - cached)
+CALLER in "+never_localparts : +n2_localparts : !+local_localparts"?
+ list element: +never_localparts
+ start sublist never_localparts
+ cached no match for +never_localparts
+ cached lookup data = NULL
+ list element: +n2_localparts
+ start sublist n2_localparts
+ CALLER in "<; never2 ; +n1_localparts"?
+ ╎list element: never2
+ ╎list element: +n1_localparts
+ ╎ start sublist n1_localparts
+ ╎cached no match for +n1_localparts
+ ╎cached lookup data = NULL
+ CALLER in "<; never2 ; +n1_localparts"? no (end of list)
+ end sublist n2_localparts
+ list element: !+local_localparts
+ start sublist local_localparts
+ cached yes match for +local_localparts
+ cached lookup data = CALLER
+ CALLER in "+never_localparts : +n2_localparts : !+local_localparts"? no (matched "!+local_localparts" - cached)
r2 router skipped: local_parts mismatch
--------> r3 router <--------
local_part=CALLER domain=test.ex
checking local_parts
-cached yes match for +local_localparts
-cached lookup data = CALLER
-CALLER in "+local_localparts"? yes (matched "+local_localparts" - cached)
+CALLER in "+local_localparts"?
+ list element: +local_localparts
+ start sublist local_localparts
+ cached yes match for +local_localparts
+ cached lookup data = CALLER
+ CALLER in "+local_localparts"? yes (matched "+local_localparts" - cached)
checking for local user
seeking password data for user "CALLER": using cached result
getpwnam() succeeded uid=CALLER_UID gid=CALLER_GID
--------> r1 router <--------
local_part=CALLER domain=test.ex
checking local_parts
-CALLER in "never"? no (end of list)
-CALLER in "never1"? no (end of list)
-CALLER in "CALLER"? yes (matched "CALLER")
-data from lookup saved for cache for +local_localparts: key 'CALLER' value 'CALLER'
-CALLER in "+never_localparts : +n1_localparts : ! +local_localparts"? no (matched "! +local_localparts")
+CALLER in "+never_localparts : +n1_localparts : ! +local_localparts"?
+ list element: +never_localparts
+ start sublist never_localparts
+ CALLER in "never"?
+ ╎list element: never
+ CALLER in "never"? no (end of list)
+ end sublist never_localparts
+ list element: +n1_localparts
+ start sublist n1_localparts
+ CALLER in "never1"?
+ ╎list element: never1
+ CALLER in "never1"? no (end of list)
+ end sublist n1_localparts
+ list element: ! +local_localparts
+ start sublist local_localparts
+ CALLER in "CALLER"?
+ ╎list element: CALLER
+ ╎CALLER in "CALLER"? yes (matched "CALLER")
+ end sublist local_localparts
+ data from lookup saved for cache for +local_localparts: key 'CALLER' value 'CALLER'
+ CALLER in "+never_localparts : +n1_localparts : ! +local_localparts"? no (matched "! +local_localparts")
r1 router skipped: local_parts mismatch
--------> r2 router <--------
local_part=CALLER domain=test.ex
checking local_parts
-cached no match for +never_localparts
-cached lookup data = NULL
-cached no match for +n1_localparts
-cached lookup data = NULL
-CALLER in "<; never2 ; +n1_localparts"? no (end of list)
-cached yes match for +local_localparts
-cached lookup data = CALLER
-CALLER in "+never_localparts : +n2_localparts : !+local_localparts"? no (matched "!+local_localparts" - cached)
+CALLER in "+never_localparts : +n2_localparts : !+local_localparts"?
+ list element: +never_localparts
+ start sublist never_localparts
+ cached no match for +never_localparts
+ cached lookup data = NULL
+ list element: +n2_localparts
+ start sublist n2_localparts
+ CALLER in "<; never2 ; +n1_localparts"?
+ ╎list element: never2
+ ╎list element: +n1_localparts
+ ╎ start sublist n1_localparts
+ ╎cached no match for +n1_localparts
+ ╎cached lookup data = NULL
+ CALLER in "<; never2 ; +n1_localparts"? no (end of list)
+ end sublist n2_localparts
+ list element: !+local_localparts
+ start sublist local_localparts
+ cached yes match for +local_localparts
+ cached lookup data = CALLER
+ CALLER in "+never_localparts : +n2_localparts : !+local_localparts"? no (matched "!+local_localparts" - cached)
r2 router skipped: local_parts mismatch
--------> r3 router <--------
local_part=CALLER domain=test.ex
checking local_parts
-cached yes match for +local_localparts
-cached lookup data = CALLER
-CALLER in "+local_localparts"? yes (matched "+local_localparts" - cached)
+CALLER in "+local_localparts"?
+ list element: +local_localparts
+ start sublist local_localparts
+ cached yes match for +local_localparts
+ cached lookup data = CALLER
+ CALLER in "+local_localparts"? yes (matched "+local_localparts" - cached)
checking for local user
seeking password data for user "CALLER": using cached result
getpwnam() succeeded uid=CALLER_UID gid=CALLER_GID
--------> r1 router <--------
local_part=unknown domain=test.ex
checking local_parts
-unknown in "never"? no (end of list)
-unknown in "never1"? no (end of list)
-unknown in "CALLER"? no (end of list)
+unknown in "+never_localparts : +n1_localparts : ! +local_localparts"?
+ list element: +never_localparts
+ start sublist never_localparts
+ unknown in "never"?
+ ╎list element: never
+ unknown in "never"? no (end of list)
+ end sublist never_localparts
+ list element: +n1_localparts
+ start sublist n1_localparts
+ unknown in "never1"?
+ ╎list element: never1
+ unknown in "never1"? no (end of list)
+ end sublist n1_localparts
+ list element: ! +local_localparts
+ start sublist local_localparts
+ unknown in "CALLER"?
+ ╎list element: CALLER
+ unknown in "CALLER"? no (end of list)
+ end sublist local_localparts
unknown in "+never_localparts : +n1_localparts : ! +local_localparts"? yes (end of list)
calling r1 router
r1 router called for unknown@test.ex
domain = test.ex
route_item = never
+test.ex in "never"?
+ list element: never
test.ex in "never"? no (end of list)
r1 router declined for unknown@test.ex
--------> r2 router <--------
local_part=unknown domain=test.ex
checking local_parts
-cached no match for +never_localparts
-cached lookup data = NULL
-cached no match for +n1_localparts
-cached lookup data = NULL
-unknown in "<; never2 ; +n1_localparts"? no (end of list)
-cached no match for +local_localparts
-cached lookup data = NULL
+unknown in "+never_localparts : +n2_localparts : !+local_localparts"?
+ list element: +never_localparts
+ start sublist never_localparts
+ cached no match for +never_localparts
+ cached lookup data = NULL
+ list element: +n2_localparts
+ start sublist n2_localparts
+ unknown in "<; never2 ; +n1_localparts"?
+ ╎list element: never2
+ ╎list element: +n1_localparts
+ ╎ start sublist n1_localparts
+ ╎cached no match for +n1_localparts
+ ╎cached lookup data = NULL
+ unknown in "<; never2 ; +n1_localparts"? no (end of list)
+ end sublist n2_localparts
+ list element: !+local_localparts
+ start sublist local_localparts
+ cached no match for +local_localparts
+ cached lookup data = NULL
unknown in "+never_localparts : +n2_localparts : !+local_localparts"? yes (end of list)
calling r2 router
r2 router called for unknown@test.ex
domain = test.ex
-test.ex in "*"? yes (matched "*")
+test.ex in "*"?
+ list element: *
+ test.ex in "*"? yes (matched "*")
DNS lookup of test.ex (MX) using fakens
DNS lookup of test.ex (MX) gave NO_DATA
returning DNS_NODATA
--------> r3 router <--------
local_part=unknown domain=test.ex
checking local_parts
-cached no match for +local_localparts
-cached lookup data = NULL
+unknown in "+local_localparts"?
+ list element: +local_localparts
+ start sublist local_localparts
+ cached no match for +local_localparts
+ cached lookup data = NULL
unknown in "+local_localparts"? no (end of list)
r3 router skipped: local_parts mismatch
--------> r4 router <--------
local_part=unknown domain=test.ex
checking local_parts
-cached no match for +local_localparts
-cached lookup data = NULL
-unknown in "test.ex"? no (end of list)
-unknown in "unexpanded"? no (end of list)
+unknown in "+local_localparts : +expanded : +unexpanded"?
+ list element: +local_localparts
+ start sublist local_localparts
+ cached no match for +local_localparts
+ cached lookup data = NULL
+ list element: +expanded
+ start sublist expanded
+ unknown in "test.ex"?
+ ╎list element: test.ex
+ unknown in "test.ex"? no (end of list)
+ end sublist expanded
+ list element: +unexpanded
+ start sublist unexpanded
+ unknown in "unexpanded"?
+ ╎list element: unexpanded
+ unknown in "unexpanded"? no (end of list)
+ end sublist unexpanded
unknown in "+local_localparts : +expanded : +unexpanded"? no (end of list)
r4 router skipped: local_parts mismatch
--------> r5 router <--------
local_part=unknown domain=test.ex
checking local_parts
-cached no match for +local_localparts
-cached lookup data = NULL
-unknown in "test.ex"? no (end of list)
-cached no match for +unexpanded
-cached lookup data = NULL
+unknown in "+local_localparts : +expanded : +unexpanded"?
+ list element: +local_localparts
+ start sublist local_localparts
+ cached no match for +local_localparts
+ cached lookup data = NULL
+ list element: +expanded
+ start sublist expanded
+ unknown in "test.ex"?
+ ╎list element: test.ex
+ unknown in "test.ex"? no (end of list)
+ end sublist expanded
+ list element: +unexpanded
+ start sublist unexpanded
+ cached no match for +unexpanded
+ cached lookup data = NULL
unknown in "+local_localparts : +expanded : +unexpanded"? no (end of list)
r5 router skipped: local_parts mismatch
no more routers