Does the following address the problem? This fixes the responses for:
check_reverse_client_hostname_access
check_reverse_client_hostname_a_access
check_reverse_client_hostname_mx_access
check_reverse_client_hostname_ns_access
Basically, with all SMTP server responses of the form
5XX 5.X.X <stuff>: Unverified Client host rejected: ....
the stuff should contain the unverified client hostname, not the
verified client hostname (which may be "unknown") and IP address.
Wietse
--- src/smtpd/smtpd_check.c- 2014-09-17 12:31:07.000000000 -0400
+++ src/smtpd/smtpd_check.c 2014-09-20 19:55:29.000000000 -0400
@@ -3941,7 +3941,7 @@
SMTPD_NAME_CLIENT, def_acl);
} else if (is_map_command(state, name, CHECK_REVERSE_CLIENT_ACL, &cpp))
{
status = check_namadr_access(state, *cpp, state->reverse_name,
state->addr,
- FULL, &found, state->namaddr,
+ FULL, &found, state->reverse_name,
SMTPD_NAME_REV_CLIENT, def_acl);
forbid_whitelist(state, name, status, state->reverse_name);
} else if (strcasecmp(name, REJECT_MAPS_RBL) == 0) {
@@ -4031,21 +4031,21 @@
} else if (is_map_command(state, name, CHECK_REVERSE_CLIENT_NS_ACL,
&cpp)) {
if (strcasecmp(state->reverse_name, "unknown") != 0) {
status = check_server_access(state, *cpp, state->reverse_name,
- T_NS, state->namaddr,
+ T_NS, state->reverse_name,
SMTPD_NAME_REV_CLIENT, def_acl);
forbid_whitelist(state, name, status, state->reverse_name);
}
} else if (is_map_command(state, name, CHECK_REVERSE_CLIENT_MX_ACL,
&cpp)) {
if (strcasecmp(state->reverse_name, "unknown") != 0) {
status = check_server_access(state, *cpp, state->reverse_name,
- T_MX, state->namaddr,
+ T_MX, state->reverse_name,
SMTPD_NAME_REV_CLIENT, def_acl);
forbid_whitelist(state, name, status, state->reverse_name);
}
} else if (is_map_command(state, name, CHECK_REVERSE_CLIENT_A_ACL,
&cpp)) {
if (strcasecmp(state->reverse_name, "unknown") != 0) {
status = check_server_access(state, *cpp, state->reverse_name,
- T_A, state->namaddr,
+ T_A, state->reverse_name,
SMTPD_NAME_REV_CLIENT, def_acl);
forbid_whitelist(state, name, status, state->reverse_name);
}