X-Git-Url: https://git.netwichtig.de/gitweb/?a=blobdiff_plain;f=doc%2Fdoc-docbook%2Fspec.xfpt;h=2a3fb6c51c117a071871445b53256c24a9bc168d;hb=46d2a5e6f6e7709d172903b13945d23fc0a2c888;hp=b9f012aef9a4f37ab732581010efa336753c093c;hpb=8102279385f5f70c959aa219feca37031c0a1828;p=user%2Fhenk%2Fcode%2Fexim.git diff --git a/doc/doc-docbook/spec.xfpt b/doc/doc-docbook/spec.xfpt index b9f012aef..2a3fb6c51 100644 --- a/doc/doc-docbook/spec.xfpt +++ b/doc/doc-docbook/spec.xfpt @@ -6770,7 +6770,12 @@ by default, but has an option to omit them (see section &<>&). whose name is the key by calling the &[lstat()]& function. The key may not contain any forward slash characters. If &[lstat()]& succeeds, the result of the lookup is the name of the entry, which may be a file, directory, -symbolic link, or any other kind of directory entry. An example of how this +symbolic link, or any other kind of directory entry. +.new +.cindex "tainted data" "dsearch result" +It is regarded as untainted. +.wen +An example of how this lookup can be used to support virtual domains is given in section &<>&. .next @@ -36779,12 +36784,18 @@ to a router of this form: virtual: driver = redirect domains = dsearch;/etc/mail/virtual - data = ${lookup{$local_part}lsearch{/etc/mail/virtual/$domain}} + data = ${lookup{$local_part}lsearch{/etc/mail/virtual/$domain_data}} no_more .endd +.new The &%domains%& option specifies that the router is to be skipped, unless there is a file in the &_/etc/mail/virtual_& directory whose name is the same as the -domain that is being processed. When the router runs, it looks up the local +domain that is being processed. +The &(dsearch)& lookup used results in an untainted version of &$domain$& +being placed into the &$domain_data$& variable. +.wen + +When the router runs, it looks up the local part in the file to find a new address (or list of addresses). The &%no_more%& setting ensures that if the lookup fails (leading to &%data%& being an empty string), Exim gives up on the address without trying any subsequent routers.