Blame SOURCES/net-snmp-5.8-clientaddr-error-message.patch

d2813a
diff -urNp a/snmplib/snmp_api.c b/snmplib/snmp_api.c
d2813a
--- a/snmplib/snmp_api.c	2020-11-26 11:05:51.084788775 +0100
d2813a
+++ b/snmplib/snmp_api.c	2020-11-26 11:08:27.850751397 +0100
d2813a
@@ -235,7 +235,7 @@ static const char *api_errors[-SNMPERR_M
d2813a
     "No error",                 /* SNMPERR_SUCCESS */
d2813a
     "Generic error",            /* SNMPERR_GENERR */
d2813a
     "Invalid local port",       /* SNMPERR_BAD_LOCPORT */
d2813a
-    "Unknown host",             /* SNMPERR_BAD_ADDRESS */
d2813a
+    "Invalid address",          /* SNMPERR_BAD_ADDRESS */
d2813a
     "Unknown session",          /* SNMPERR_BAD_SESSION */
d2813a
     "Too long",                 /* SNMPERR_TOO_LONG */
d2813a
     "No socket",                /* SNMPERR_NO_SOCKET */
d2813a
@@ -1662,7 +1662,9 @@ _sess_open(netsnmp_session * in_session)
d2813a
         DEBUGMSGTL(("_sess_open", "couldn't interpret peername\n"));
d2813a
         in_session->s_snmp_errno = SNMPERR_BAD_ADDRESS;
d2813a
         in_session->s_errno = errno;
d2813a
-        snmp_set_detail(in_session->peername);
d2813a
+        if (!netsnmp_ds_get_string(NETSNMP_DS_LIBRARY_ID,
d2813a
+                                    NETSNMP_DS_LIB_CLIENT_ADDR))
d2813a
+            snmp_set_detail(in_session->peername);
d2813a
         return NULL;
d2813a
     }
d2813a
 
d2813a
diff -ruNp a/snmplib/transports/snmpUDPIPv4BaseDomain.c b/snmplib/transports/snmpUDPIPv4BaseDomain.c
d2813a
--- a/snmplib/transports/snmpUDPIPv4BaseDomain.c	2021-01-06 12:51:51.948106797 +0100
d2813a
+++ b/snmplib/transports/snmpUDPIPv4BaseDomain.c	2021-01-06 14:17:31.029745744 +0100
d2813a
@@ -209,6 +209,8 @@ netsnmp_udpipv4base_transport_bind(netsn
d2813a
         DEBUGMSGTL(("netsnmp_udpbase",
d2813a
                     "failed to bind for clientaddr: %d %s\n",
d2813a
                     errno, strerror(errno)));
d2813a
+        NETSNMP_LOGONCE((LOG_ERR, "Cannot bind for clientaddr: %s\n",
d2813a
+                    strerror(errno)));
d2813a
         netsnmp_socketbase_close(t);
d2813a
         return 1;
d2813a
     }