On Thu, 13 Mar 2003, Rick Ennis wrote:
> So that means they don't persist between the acls and the routers? But what
> about $address_data? Looking at entry 38 under the 4.11 ChangeLog...
>
> > 38. After verify=recipient in an ACL, the value of $address_data is the
> last
> > value that was set while routing the address.
>
> Does that not mean back in the acl?
I see your confusion, and I'm glad to have done so, because it shows me
that I have to explain this carefully in the next edition of the manual.
1. When the routers are run as part of a verify=xxx condition an an ACL,
the $acl_xxx variables are available to the routers, and $address_data
comes back, as you say.
2. Once a message is accepted, however, the $acl_variables are
forgotten. When the routers are run as part of the delivery process, the
$acl_variables are not available. This is the case that Nico and I were
discussing.
> 1) I tried setting
> address_data = $local_part
> in my router that's doing the verify. But I didn't have much luck with
> expand_string("$address_data") in local_scan.
That's because $address_data is cleared at the end of the ACL (because
it's a per-recipient thing, and there may be multiple recipients).
> 2) I tried the same thing as #1 above, but added
> warn set acl_m1 = $address_data
> in an acl immediately after my verify = recipient.
> I then used expand_string("$acl_m1") in local_scan and still didn't get what
> I wanted.
At first sight, I would have expected that to work.
> Is there a standard solution to this one? There must be a way to get at the
> routed address from within local_scan b/c the verifying stage has to have
> already completed. Am I just being dense?
Well, the list of recipients is available to local_scan()...
--
Philip Hazel University of Cambridge Computing Service,
ph10@??? Cambridge, England. Phone: +44 1223 334714.