Autor: John Jetmore Fecha: A: exim-users Asunto: [Exim] router_home_directory question
I wrote way too much in asking this question, so here's the short question
with supplemental data below:
Is a transport supposed to try to re-expand the home directory set by the
router_home_directory option, and if so, why would it be unable to do so
if the router could?
the looong version of the question:
I'm trying to use the router_home_directory option and it has generated a
question for me. The option expands correctly and allows me to use $home
in my redirect router (specifically "data = $home/Maildir/"). The wierd
thing is that this home directory seems to be passed to the transport
unexpanded, and then the transport can't re-expand it. See the following
snippet of exim -d output for the successful expansion and then "home="
being set back to the unexpanded string:
rda_interpret (string): $home/Maildir/
expanded: /path/to/home/Maildir/
file is not a filter file
parse_forward_list: /path/to/home/Maildir/
extract item: /path/to/home/Maildir/
set transport address_directory
psp_local_user router generated /path/to/home/Maildir/
pipe, file, or autoreply
errors_to=NULL transport=address_directory
uid=500 gid=60001 home=${extract{5}{:}{${lookup{${lc:$local_part}}lsearch{${extract{4}{:}{$domain_data}}}}}}
Also of interest is that the uid and gid above are also generated as
expansion items, and are passed to the transport as static strings, not
expansion items.
So, routing goes beautifully and collects all the information it's
supposed to get, but transporting panics with the following error:
LOG: MAIN PANIC
home directory "${extract{5}{:}{${lookup{${lc:$local_part}}lsearch{${extract{4}{:}{$domain_data}}}}}}"
failed to expand for address_directory transport: failed to open for linear search: No such file or directory
which is saying it can no longer expand the home directory I defined.
So my questions are these
a) is the transport supposed to be re-expanding the home option
b) if (a) is true, why can't it re-expand it?
I'm thinking $domain_data is no longer defined when the transport gets it,
but this is really frustrating. I would like that string to only be
expanded in the router, then passed statically.