A comparison of the output with "-d -bt" and "-d -bv" seems to point to
the issue.
Everything is essentially the same until the first alias redirect router
is encountered. At the point where the "guts" of the alias redirect
router appears, namely the statement "data = <string to expand>", the
-bt execution expands the string as expected, whereas -bv does
absolutely nothing with it. More precisely:
With -bt, the line:
rda_interpret <the string to expand>
is followed by 15 lines detailing the expansion, ending with:
lookup yielded: <the desired result>
followed by
expanded: <the desired result>
With -bv, the line:
rda_interpret <the string to expand>
is immediately followed on the next line with
expanded: <nothing, zilch, nil, nada>
followed a few lines later by "router declined"
Going further, I retried with -d+expand -bv. The following seems to be
the essence of the issue:
rda_interpret (string): ${if exists{/etc/virtual/${domain}/aliases}
{${lookup{$local_part} lsearch {/etc/virtual/${domain}/aliases}}}}
expanding: /etc/virtual/${domain}/aliases
result: /etc/virtual/mydomain.com/aliases <<----this file
exists!!!
condition: exists{/etc/virtual/${domain}/aliases}
result: false <<----wrong!!
expanding: $local_part
result:
skipping: result is not used
expanding: /etc/virtual/${domain}/aliases
result: /etc/virtual//aliases
skipping: result is not used
expanding: ${lookup{$local_part} lsearch {/etc/virtual/${domain}/aliases}}
result:
skipping: result is not used
Can someone shed light on this?