Viktor Dukhovni:
> On Wed, Sep 02, 2015 at 05:16:13PM +0200, Markus Benning wrote:
> 
> > when running multiple checks in a policy daemon each check
> > needs to be running on a different port in the policy daemon
> > for the policy daemon to be able differentiate between the
> > checks when processing the request.
> > 
> > What about adding a "virtual servers" feature to the policy check
> > similar to the Host: header in HTTP?
> 
> Instead of focusing how you got there (consolidating multiple
> instances of the service onto a single port), it makes more sense
> to focus on the resulting semantics.  Namely, you want to send the
> policy service a "query type" or a "context" string so that it can
> perform a suitable "lookup".

I agree that "context" is better than "vhost". To avoid collisions
with future protocol extensions I would make the name more specifc,
and use "policy_context" or something like that.

> > In main.cf:
> > 
> > smtpd_client_restrictions =
> >   check_policy_service { inet:localhost:12345, timeout=10s,
> >     default_action=DUNNO, vhost=reputation }
> >   check_policy_service { inet:localhost:12345, timeout=10s,
> >     default_action=DUNNO, vhost=accounting }

Reusing the same client socket for multiple policy clients requires
a reference-counting mechanism that is best implemented in the lower
layers of the Postfix infrastructure. It is a unlikely that one
Postfix daemon process will be making multiple simultaneous requests
to the same endpoint, but it if does at some point in the future,
then the *_clnt APIs would need to be updated with an extra flag
to prevent client endpoint sharing.

Can you update the patch?

        Wietse

Reply via email to