diff options
author | Jochen Friedrich <jochen@scram.de> | 2009-07-31 19:26:32 +0000 |
---|---|---|
committer | Jochen Friedrich <jochen@scram.de> | 2009-07-31 19:26:32 +0000 |
commit | b38c3c8894e233fa191ebc37b7e8b543f32013c1 (patch) | |
tree | 591cd02fdfa886b7fb290e9caa47518ad9dbd5b5 /debian/patches | |
parent | ce1187bf761cf3be0e1d90eb2833cd8e2594c333 (diff) | |
download | pkg-net-snmp-b38c3c8894e233fa191ebc37b7e8b543f32013c1.tar.gz |
Update to 5.4.2.1
git-svn-id: svn://svn.debian.org/pkg-net-snmp/trunk@269 db575a87-f10d-0410-9662-f1d5ac62e4ba
Diffstat (limited to 'debian/patches')
-rw-r--r-- | debian/patches/25_duplicate_iftable.patch | 104 |
1 files changed, 51 insertions, 53 deletions
diff --git a/debian/patches/25_duplicate_iftable.patch b/debian/patches/25_duplicate_iftable.patch index 3a6c226..d940147 100644 --- a/debian/patches/25_duplicate_iftable.patch +++ b/debian/patches/25_duplicate_iftable.patch @@ -1,7 +1,54 @@ -Index: snmplib/snmp_enum.c -=================================================================== ---- snmplib/snmp_enum.c (Revision 16802) -+++ snmplib/snmp_enum.c (Arbeitskopie) +diff -ru net-snmp-5.4.2.1.orig/agent/mibgroup/if-mib/data_access/interface.c net-snmp-5.4.2.1/agent/mibgroup/if-mib/data_access/interface.c +--- net-snmp-5.4.2.1.orig/agent/mibgroup/if-mib/data_access/interface.c 2008-02-23 00:52:33.000000000 +0100 ++++ net-snmp-5.4.2.1/agent/mibgroup/if-mib/data_access/interface.c 2009-07-31 17:10:49.000000000 +0200 +@@ -469,12 +469,12 @@ + if (index != tmp) { + static int logged = 0; + if (!logged) { +- snmp_log(LOG_ERR, "IfIndex of an interface changed. Such " \ +- "interfaces will appear multiple times in IF-MIB.\n"); ++ snmp_log(LOG_ERR, "IfIndex of an interface changed.\n"); + logged = 1; + } +- DEBUGMSGTL(("access:interface:ifIndex", "index %d != tmp for %s\n", +- index, name)); ++ se_remove_value_from_slist("interfaces", name); ++ se_add_pair_to_slist("interfaces", strdup(name), index); ++ DEBUGMSGTL(("access:interface:ifIndex", "ifname %s, old index %d, already existing, replaced with %d\n", name, tmp, index)); + } + } + +diff -ru net-snmp-5.4.2.1.orig/agent/mibgroup/if-mib/ifTable/ifTable_data_access.c net-snmp-5.4.2.1/agent/mibgroup/if-mib/ifTable/ifTable_data_access.c +--- net-snmp-5.4.2.1.orig/agent/mibgroup/if-mib/ifTable/ifTable_data_access.c 2008-02-12 20:05:24.000000000 +0100 ++++ net-snmp-5.4.2.1/agent/mibgroup/if-mib/ifTable/ifTable_data_access.c 2009-07-31 17:04:17.000000000 +0200 +@@ -266,8 +266,21 @@ + _add_new_interface(netsnmp_interface_entry *ifentry, + netsnmp_container *container) + { +- ifTable_rowreq_ctx *rowreq_ctx; +- ++ ifTable_rowreq_ctx *rowreq_ctx, *container_entry; ++ netsnmp_iterator *ctxit; ++ ctxit = CONTAINER_ITERATOR(container); ++ container_entry = ITERATOR_FIRST(ctxit); ++ ++ for(; container_entry; container_entry = ITERATOR_NEXT(ctxit)) { ++ if(!strcmp(ifentry->name, container_entry->data.ifName) && \ ++ ifentry->index != container_entry->data.ifentry->index) { ++ DEBUGMSGTL(("ifTable:access", "removing old entry %s (index %d != %d)\n", ++ container_entry->data.ifName, container_entry->data.ifentry->index, ifentry->index)); ++ se_remove_value_from_slist("interfaces", container_entry->data.ifName); ++ CONTAINER_REMOVE(container, container_entry); ++ ifTable_release_rowreq_ctx(container_entry); ++ } ++ } + DEBUGMSGTL(("ifTable:access", "creating new entry\n")); + + /* +Nur in net-snmp-5.4.2.1/agent/mibgroup/if-mib/ifTable: ifTable_data_access.c.orig. +diff -ru net-snmp-5.4.2.1.orig/snmplib/snmp_enum.c net-snmp-5.4.2.1/snmplib/snmp_enum.c +--- net-snmp-5.4.2.1.orig/snmplib/snmp_enum.c 2005-02-09 20:46:35.000000000 +0100 ++++ net-snmp-5.4.2.1/snmplib/snmp_enum.c 2009-07-31 17:04:17.000000000 +0200 @@ -213,6 +213,27 @@ return SE_DNE; /* XXX: um, no good solution here */ } @@ -50,52 +97,3 @@ Index: snmplib/snmp_enum.c int se_find_free_value_in_slist(const char *listname) { -Index: agent/mibgroup/if-mib/ifTable/ifTable_data_access.c -=================================================================== ---- agent/mibgroup/if-mib/ifTable/ifTable_data_access.c (Revision 16802) -+++ agent/mibgroup/if-mib/ifTable/ifTable_data_access.c (Arbeitskopie) -@@ -266,8 +266,21 @@ - _add_new_interface(netsnmp_interface_entry *ifentry, - netsnmp_container *container) - { -- ifTable_rowreq_ctx *rowreq_ctx; -+ ifTable_rowreq_ctx *rowreq_ctx, *container_entry; -+ netsnmp_iterator *ctxit; -+ ctxit = CONTAINER_ITERATOR(container); -+ container_entry = ITERATOR_FIRST(ctxit); - -+ for(; container_entry; container_entry = ITERATOR_NEXT(ctxit)) { -+ if(!strcmp(ifentry->name, container_entry->data.ifName) && \ -+ ifentry->index != container_entry->data.ifentry->index) { -+ DEBUGMSGTL(("ifTable:access", "removing old entry %s (index %d != %d)\n", -+ container_entry->data.ifName, container_entry->data.ifentry->index, ifentry->index)); -+ se_remove_value_from_slist("interfaces", container_entry->data.ifName); -+ CONTAINER_REMOVE(container, container_entry); -+ ifTable_release_rowreq_ctx(container_entry); -+ } -+ } - DEBUGMSGTL(("ifTable:access", "creating new entry\n")); - - /* -Index: agent/mibgroup/if-mib/data_access/interface.c -=================================================================== ---- agent/mibgroup/if-mib/data_access/interface.c (Revision 16802) -+++ agent/mibgroup/if-mib/data_access/interface.c (Arbeitskopie) -@@ -467,14 +467,9 @@ - } - else - if (index != tmp) { -- static int logged = 0; -- if (!logged) { -- snmp_log(LOG_ERR, "IfIndex of an interface changed. Such " \ -- "interfaces will appear multiple times in IF-MIB.\n"); -- logged = 1; -- } -- DEBUGMSGTL(("access:interface:ifIndex", "index %d != tmp for %s\n", -- index, name)); -+ se_remove_value_from_slist("interfaces", name); -+ se_add_pair_to_slist("interfaces", strdup(name), index); -+ DEBUGMSGTL(("access:interface:ifIndex", "ifname %s, old index %d, already existing, replaced with %d\n", name, tmp, index)); - } - } - |