aboutsummaryrefslogtreecommitdiff
path: root/net-mgmt/net-snmp/files/patch-snmpUCDIPv6Domain.c
diff options
context:
space:
mode:
Diffstat (limited to 'net-mgmt/net-snmp/files/patch-snmpUCDIPv6Domain.c')
-rw-r--r--net-mgmt/net-snmp/files/patch-snmpUCDIPv6Domain.c30
1 files changed, 30 insertions, 0 deletions
diff --git a/net-mgmt/net-snmp/files/patch-snmpUCDIPv6Domain.c b/net-mgmt/net-snmp/files/patch-snmpUCDIPv6Domain.c
new file mode 100644
index 000000000000..33b240f33d1c
--- /dev/null
+++ b/net-mgmt/net-snmp/files/patch-snmpUCDIPv6Domain.c
@@ -0,0 +1,30 @@
+--- snmplib/snmpUDPIPv6Domain.c.orig Mon Jul 8 11:03:05 2002
++++ snmplib/snmpUDPIPv6Domain.c Thu Jul 25 19:31:27 2002
+@@ -59,13 +59,21 @@
+ if (to == NULL) {
+ return strdup("UDP/IPv6: unknown");
+ } else {
+- char addr[INET6_ADDRSTRLEN];
+- char tmp[INET6_ADDRSTRLEN + 8];
++ char tmp[NI_MAXHOST];
+
+- sprintf(tmp, "[%s]:%hd",
+- inet_ntop(AF_INET6, (void *) &(to->sin6_addr), addr,
+- INET6_ADDRSTRLEN), ntohs(to->sin6_port));
+- return strdup(tmp);
++/*
++ * NI_WITHSCOPEID will be obsoleted. But some implementations require
++ * this flag to retrieve scoped name.
++ * (2002-07-25: kuriyama@FreeBSD.org)
++ */
++#ifndef NI_WITHSCOPEID
++#define NI_WITHSCOPEID 0
++#endif
++ if (getnameinfo(to, sizeof(struct sockaddr_in6), tmp, sizeof(tmp),
++ NULL, 0, NI_NUMERICHOST | NI_WITHSCOPEID)) {
++ return strdup("UDP/IPv6: unknown");
++ }
++ return strdup(tmp);
+ }
+ }
+