I have a policy server that needs to be able to make policy decisions after a
before-queue content filter. The problem is that the client IP address
reported by the second smtpd instance to the policy server is that of the
proxy (i.e. localhost), rather than of the sending server. Would it make
sense to add the values provided by XFORWARD to the list of attributes passed
to the policy server? For example:
--- smtpd_check.c.orig 2010-03-06 19:35:24.000000000 -0500
+++ smtpd_check.c 2010-05-26 11:57:41.000000000 -0400
@@ -3417,6 +3417,10 @@
ATTR_TYPE_STR, MAIL_ATTR_ACT_PROTO_NAME, state->protocol,
ATTR_TYPE_STR, MAIL_ATTR_ACT_CLIENT_ADDR, state->addr,
ATTR_TYPE_STR, MAIL_ATTR_ACT_CLIENT_NAME, state->name,
+ ATTR_TYPE_STR, MAIL_ATTR_LOG_CLIENT_ADDR,
FORWARD_ADDR(state),
+ ATTR_TYPE_STR, MAIL_ATTR_LOG_CLIENT_NAME,
FORWARD_NAME(state),
+ ATTR_TYPE_STR, MAIL_ATTR_LOG_HELO_NAME,
state->helo_name ?
FORWARD_HELO(state) : "",
+ ATTR_TYPE_STR, MAIL_ATTR_LOG_PROTO_NAME,
FORWARD_PROTO(state),
ATTR_TYPE_STR, MAIL_ATTR_ACT_REVERSE_CLIENT_NAME,
state->reverse_name,
ATTR_TYPE_STR, MAIL_ATTR_ACT_HELO_NAME,
--
Joshua Pettett