f2a73c83ccd8b8bf704ccefd7a19073c0d85afe8
[users/heiko/exim.git] / src / src / routers / README
1 ROUTERS:
2
3 The yield of a router is one of:
4
5   OK              the address was routed and either added to one of the
6                   addr_local or addr_remote chains, or one or more new
7                   addresses were added to addr_new. The original may be added
8                   to addr_succeed.
9
10   REROUTED        this is used when a child address is created and added to
11                   addr_new as a consequence of a domain widening or because
12                   "self = reroute" was encountered. The only time it is handled
13                   differently from OK is when verifying, to force it to
14                   continue with the child address.
15
16   DECLINE         the address was not routed; pass to next router unless
17                   no_more is set. It is permitted for additional addresses to
18                   have been added to addr_new (or indeed for addresses to have
19                   been put on the other chains).
20
21   PASS            the address was not routed, but might have been modified;
22                   pass to the next router unconditionally.
23
24   DISCARD         the address was discarded (:blackhole: or "seen finish")
25
26   FAIL            the address was not routed; do not pass to any subseqent
27                   routers, i.e. cause routing to fail.
28
29   DEFER           retry this address later.
30
31 Both ERROR and DEFER cause the message to be kept on the queue; either may
32 request freezing, but nowadays we try not to request freezing from routers
33 because it may hold up other addresses in the message.
34
35
36 When routing succeeds, the following field in the address can be set:
37
38   transport       points to the transport instance control block
39
40   uid, gid        are the uid and gid under which a local transport is to be
41                   run if the transport does not itself specify them.
42
43   initgroups      is set true if initgroups() is to be called when using the
44                   uid and gid set up by the router.
45
46   fallback_hosts  fallback host list - relevant only if the router sets up
47                   a remote transport for the address.
48
49   errors_address  where to send error messages for this address.
50
51   extra_headers   additional headers to be added to the message for this
52                   address.
53
54   remove_headers  the names of headers to be removed from the message for this
55                   address
56
57 ****