Wietse Venema:
> 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

This patch is for Postfix 2.11, 2.10, 2.9, 2.8 and perhaps earlier.

        Wietse

--- ./smtpd_check.c.orig        2013-11-12 13:00:11.000000000 -0500
+++ ./smtpd_check.c     2014-09-20 20:34:20.000000000 -0400
@@ -3844,7 +3844,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) {
@@ -3927,14 +3927,14 @@
        } 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);
            }

Reply via email to