Date: Mon, 18 Jul 2005 11:20:31 +0800 (CST) From: Yen-Ming Lee <leeym@FreeBSD.org> To: FreeBSD-gnats-submit@FreeBSD.org Cc: kuriyama@FreeBSD.org Subject: ports/83643: [PATCH] net-mgmt/net-snmp: remove redundant patch Message-ID: <20050718032031.A4948B29CD1@utopia.leeym.com> Resent-Message-ID: <200507180330.j6I3ULuv032963@freefall.freebsd.org>
next in thread | raw e-mail | index | archive | help
>Number: 83643 >Category: ports >Synopsis: [PATCH] net-mgmt/net-snmp: remove redundant patch >Confidential: no >Severity: non-critical >Priority: low >Responsible: freebsd-ports-bugs >State: open >Quarter: >Keywords: >Date-Required: >Class: change-request >Submitter-Id: current-users >Arrival-Date: Mon Jul 18 03:30:21 GMT 2005 >Closed-Date: >Last-Modified: >Originator: Yen-Ming Lee >Release: FreeBSD 5.4-STABLE i386 >Organization: FreeBSD Taiwan >Environment: System: FreeBSD utopia.leeym.com 5.4-STABLE FreeBSD 5.4-STABLE #0: Sun Jul 17 07:50:25 CST 2005 >Description: - the INETADDRESS feature is supported by default, the patch is no longer needed Noticed by: rehula@yahoo-inc.com Removed file(s): - files/extra-patch-snmplib::mib.c Port maintainer (kuriyama@FreeBSD.org) is cc'd. Generated with FreeBSD Port Tools 0.63 >How-To-Repeat: >Fix: --- net-snmp-5.2.1.2.patch begins here --- Index: Makefile =================================================================== RCS file: /home/pcvs/ports/net-mgmt/net-snmp/Makefile,v retrieving revision 1.126 diff -u -u -r1.126 Makefile --- Makefile 13 Jul 2005 02:37:23 -0000 1.126 +++ Makefile 18 Jul 2005 03:18:24 -0000 @@ -16,9 +16,6 @@ MAINTAINER= kuriyama@FreeBSD.org COMMENT= An extendable SNMP implementation -.if defined(WITH_INETADDRESS_HACK) -EXTRA_PATCHES+= ${PATCHDIR}/extra-patch-snmplib::mib.c -.endif .if !defined(WITH_TKMIB) EXTRA_PATCHES+= ${PATCHDIR}/extra-patch-local:Makefile.in .endif Index: files/extra-patch-snmplib::mib.c =================================================================== RCS file: files/extra-patch-snmplib::mib.c diff -N files/extra-patch-snmplib::mib.c --- files/extra-patch-snmplib::mib.c 3 Jan 2004 03:18:29 -0000 1.1 +++ /dev/null 1 Jan 1970 00:00:00 -0000 @@ -1,136 +0,0 @@ ---- snmplib/mib.c.orig Sun Nov 2 12:50:39 2003 -+++ snmplib/mib.c Sat Jan 3 03:08:38 2004 -@@ -167,6 +167,14 @@ - {NULL, 0} /* end of list */ - }; - -+enum inet_address_type { -+ IPV4 = 1, -+ IPV6 = 2, -+ IPV4Z = 3, -+ IPV6Z = 4, -+ DNS = 16 -+}; -+ - - /** - * @internal -@@ -3734,6 +3742,80 @@ - return SNMPERR_SUCCESS; - } - -+/* -+ * dump_realloc_oid_to_inetaddress: -+ * return 1 for success, -+ * return 0 for failure, -+ * return 2 for not handled -+ */ -+ -+int -+dump_realloc_oid_to_inetaddress(const int addr_type, const oid * objid, size_t objidlen, -+ u_char ** buf, size_t * buf_len, -+ size_t * out_len, int allow_realloc, -+ char quotechar) -+{ -+ if (buf) { -+ int i, len; -+ char intbuf[64], * p; -+ u_int32_t zone; -+ -+ memset(intbuf, 0, 64); -+ -+ p = intbuf; -+ *p = quotechar; -+ p++; -+ switch (addr_type) { -+ case IPV4: -+ case IPV4Z: -+ if ((addr_type == IPV4 && objidlen != 4) || -+ (addr_type == IPV4Z && objidlen != 8)) -+ return 2; -+ -+ len = sprintf(p, "%lu.%lu.%lu.%lu", objid[0], objid[1], objid[2], objid[3]); -+ p += len; -+ if (addr_type == IPV4Z) { -+ zone = ntohl(*((u_int32_t *) objid[4])); -+ len = sprintf(p, "\%%lu", zone); -+ p += len; -+ } -+ -+ break; -+ -+ case IPV6: -+ case IPV6Z: -+ if ((addr_type == IPV6 && objidlen != 16) || -+ (addr_type == IPV6Z && objidlen != 20)) -+ return 2; -+ -+ len = 0; -+ for (i = 0; i < 16; i ++) { -+ len += snprintf(p, 4, "%02x:", objid[i]); -+ p += 3; -+ } -+ p-- ; /* do not include the last ':' */ -+ -+ if (addr_type == IPV6Z) { -+ zone = ntohl(*((u_int32_t *) objid[4])); -+ len = sprintf(p, "\%%lu", zone); -+ p += len; -+ } -+ -+ break; -+ -+ case DNS: -+ default: -+ /* DNS can just be handled by dump_realloc_oid_to_string() */ -+ return 2; -+ } -+ -+ *p = quotechar; -+ return snmp_strcat(buf, buf_len, out_len, allow_realloc, -+ (const u_char *) intbuf); -+ } -+ return 1; -+} -+ - int - dump_realloc_oid_to_string(const oid * objid, size_t objidlen, - u_char ** buf, size_t * buf_len, -@@ -4043,7 +4125,36 @@ - } - } else { - if (!*buf_overflow) { -- if (!dump_realloc_oid_to_string -+ struct tree * next_peer; -+ int normal_handling = 1; -+ -+ if (tp->next_peer) { -+ next_peer = tp->next_peer; -+ } -+ -+ /* Try handling the InetAddress in the OID, in case of failure, -+ * use the normal_handling. -+ */ -+ if (tp->next_peer && -+ strcmp(get_tc_descriptor(tp->tc_index), "InetAddress") == 0 && -+ strcmp(get_tc_descriptor(next_peer->tc_index), -+ "InetAddressType") == 0 ) { -+ -+ int ret; -+ int addr_type = *(objid - 1); -+ -+ ret = dump_realloc_oid_to_inetaddress(addr_type, -+ objid + 1, numids - 1, buf, buf_len, out_len, -+ allow_realloc, '"'); -+ if (ret != 2) { -+ normal_handling = 0; -+ if (ret == 0) { -+ *buf_overflow = 1; -+ } -+ -+ } -+ } -+ if (normal_handling && !dump_realloc_oid_to_string - (objid + 1, numids - 1, buf, buf_len, out_len, - allow_realloc, '"')) { - *buf_overflow = 1; --- net-snmp-5.2.1.2.patch ends here --- >Release-Note: >Audit-Trail: >Unformatted:
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20050718032031.A4948B29CD1>