snmp/snmp_iface.patch

changeset 588
300d43423c2e
     1.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     1.2 +++ b/snmp/snmp_iface.patch	Wed Feb 08 20:07:00 2012 +0200
     1.3 @@ -0,0 +1,149 @@
     1.4 +Index: agent/mibgroup/ip-mib/data_access/ipaddress_common.c
     1.5 +--- agent/mibgroup/ip-mib/data_access/ipaddress_common.c.orig	2011-09-28 06:53:47.000000000 +0200
     1.6 ++++ agent/mibgroup/ip-mib/data_access/ipaddress_common.c	2012-02-18 21:20:51.943118452 +0100
     1.7 +@@ -452,6 +452,7 @@
     1.8 + {
     1.9 +     const netsnmp_ipaddress_entry *lh = (const netsnmp_ipaddress_entry *)lhs;
    1.10 +     const netsnmp_ipaddress_entry *rh = (const netsnmp_ipaddress_entry *)rhs;
    1.11 ++    int   rc;
    1.12 + 
    1.13 +     netsnmp_assert(NULL != lhs);
    1.14 +     netsnmp_assert(NULL != rhs);
    1.15 +@@ -467,7 +468,19 @@
    1.16 +     /*
    1.17 +      * length equal, compare address
    1.18 +      */
    1.19 +-    return memcmp(lh->ia_address, rh->ia_address, lh->ia_address_len);
    1.20 ++    rc = memcmp(lh->ia_address, rh->ia_address, lh->ia_address_len);
    1.21 ++    if (rc)
    1.22 ++        return rc;
    1.23 ++
    1.24 ++    /*
    1.25 ++     * address same, compare ifIndex
    1.26 ++     */
    1.27 ++    if (lh->if_index < rh->if_index)
    1.28 ++        return -1;
    1.29 ++    else if (lh->if_index > rh->if_index)
    1.30 ++        return 1;
    1.31 ++
    1.32 ++    return 0;
    1.33 + }
    1.34 + 
    1.35 + #ifndef NETSNMP_FEATURE_REMOVE_IPADDRESS_COMMON_COPY_UTILITIES
    1.36 +Index: agent/mibgroup/ip-mib/ipAddressTable/ipAddressTable_constants.h
    1.37 +--- agent/mibgroup/ip-mib/ipAddressTable/ipAddressTable_constants.h.orig	2011-09-28 06:53:47.000000000 +0200
    1.38 ++++ agent/mibgroup/ip-mib/ipAddressTable/ipAddressTable_constants.h	2012-02-18 21:20:51.939850024 +0100
    1.39 +@@ -106,7 +106,9 @@
    1.40 +      * simplistic map of address length to type
    1.41 +      */
    1.42 + #define INTERNAL_IPADDRESSTABLE_IPADDRESSADDRTYPE_IPV4  4
    1.43 ++#define INTERNAL_IPADDRESSTABLE_IPADDRESSADDRTYPE_IPV4Z 5
    1.44 + #define INTERNAL_IPADDRESSTABLE_IPADDRESSADDRTYPE_IPV6  16
    1.45 ++#define INTERNAL_IPADDRESSTABLE_IPADDRESSADDRTYPE_IPV6Z 17
    1.46 + 
    1.47 + 
    1.48 + /*************************************************************
    1.49 +Index: agent/mibgroup/ip-mib/ipAddressTable/ipAddressTable_data_access.c
    1.50 +--- agent/mibgroup/ip-mib/ipAddressTable/ipAddressTable_data_access.c.orig	2012-02-18 21:02:55.315118127 +0100
    1.51 ++++ agent/mibgroup/ip-mib/ipAddressTable/ipAddressTable_data_access.c	2012-02-18 21:20:51.933373869 +0100
    1.52 +@@ -262,9 +262,10 @@
    1.53 +     if ((NULL != rowreq_ctx) &&
    1.54 +         (MFD_SUCCESS ==
    1.55 +          ipAddressTable_indexes_set(rowreq_ctx,
    1.56 +-                                    ipaddress_entry->ia_address_len,
    1.57 ++                                    ipaddress_entry->ia_address_len + 1,
    1.58 +                                     ipaddress_entry->ia_address,
    1.59 +-                                    ipaddress_entry->ia_address_len))) {
    1.60 ++                                    ipaddress_entry->ia_address_len,
    1.61 ++                                    ipaddress_entry->if_index))) {
    1.62 +         if (CONTAINER_INSERT(container, rowreq_ctx) < 0) {
    1.63 +             DEBUGMSGTL (("ipAddressTable:access","container insert failed for new entry\n"));
    1.64 +             ipAddressTable_release_rowreq_ctx(rowreq_ctx);
    1.65 +Index: agent/mibgroup/ip-mib/ipAddressTable/ipAddressTable.c
    1.66 +--- agent/mibgroup/ip-mib/ipAddressTable/ipAddressTable.c.orig	2011-09-28 06:53:47.000000000 +0200
    1.67 ++++ agent/mibgroup/ip-mib/ipAddressTable/ipAddressTable.c	2012-02-18 21:24:03.877503380 +0100
    1.68 +@@ -355,10 +355,18 @@
    1.69 +         *mib_ipAddressAddrType_val_ptr = INETADDRESSTYPE_IPV4;
    1.70 +         break;
    1.71 + 
    1.72 ++    case INTERNAL_IPADDRESSTABLE_IPADDRESSADDRTYPE_IPV4Z:
    1.73 ++        *mib_ipAddressAddrType_val_ptr = INETADDRESSTYPE_IPV4Z;
    1.74 ++        break;
    1.75 ++
    1.76 +     case INTERNAL_IPADDRESSTABLE_IPADDRESSADDRTYPE_IPV6:
    1.77 +         *mib_ipAddressAddrType_val_ptr = INETADDRESSTYPE_IPV6;
    1.78 +         break;
    1.79 + 
    1.80 ++    case INTERNAL_IPADDRESSTABLE_IPADDRESSADDRTYPE_IPV6Z:
    1.81 ++        *mib_ipAddressAddrType_val_ptr = INETADDRESSTYPE_IPV6Z;
    1.82 ++        break;
    1.83 ++
    1.84 +     default:
    1.85 +         snmp_log(LOG_ERR, "couldn't map value %ld for ipAddressAddrType\n",
    1.86 +                  raw_ipAddressAddrType_val);
    1.87 +@@ -389,8 +397,10 @@
    1.88 + ipAddressTable_indexes_set_tbl_idx(ipAddressTable_mib_index * tbl_idx,
    1.89 +                                    long ipAddressAddrType_val,
    1.90 +                                    u_char *ipAddressAddr_val_ptr,
    1.91 +-                                   size_t ipAddressAddr_val_ptr_len)
    1.92 ++                                   size_t ipAddressAddr_val_ptr_len,
    1.93 ++                                   long ipAddressAddr_ifIndex)
    1.94 + {
    1.95 ++    uint32_t zone = htonl(ipAddressAddr_ifIndex);
    1.96 +     DEBUGMSGTL(("verbose:ipAddressTable:ipAddressTable_indexes_set_tbl_idx", "called\n"));
    1.97 + 
    1.98 +     /*
    1.99 +@@ -416,6 +426,11 @@
   1.100 +     memcpy(tbl_idx->ipAddressAddr, ipAddressAddr_val_ptr,
   1.101 +            ipAddressAddr_val_ptr_len * sizeof(ipAddressAddr_val_ptr[0]));
   1.102 + 
   1.103 ++    /** zone */
   1.104 ++    tbl_idx->ipAddressAddr_len += sizeof(zone);
   1.105 ++    memcpy(&tbl_idx->ipAddressAddr[ipAddressAddr_val_ptr_len *
   1.106 ++                                   sizeof(ipAddressAddr_val_ptr[0])],
   1.107 ++           &zone, sizeof(zone));
   1.108 + 
   1.109 +     return MFD_SUCCESS;
   1.110 + }                               /* ipAddressTable_indexes_set_tbl_idx */
   1.111 +@@ -437,7 +452,8 @@
   1.112 + ipAddressTable_indexes_set(ipAddressTable_rowreq_ctx * rowreq_ctx,
   1.113 +                            u_long ipAddressAddrType_val,
   1.114 +                            u_char *ipAddressAddr_val_ptr,
   1.115 +-                           size_t ipAddressAddr_val_ptr_len)
   1.116 ++                           size_t ipAddressAddr_val_ptr_len,
   1.117 ++                           long ipAddressAddr_ifIndex)
   1.118 + {
   1.119 +     DEBUGMSGTL(("verbose:ipAddressTable:ipAddressTable_indexes_set",
   1.120 +                 "called\n"));
   1.121 +@@ -446,7 +462,8 @@
   1.122 +         ipAddressTable_indexes_set_tbl_idx(&rowreq_ctx->tbl_idx,
   1.123 +                                            ipAddressAddrType_val,
   1.124 +                                            ipAddressAddr_val_ptr,
   1.125 +-                                           ipAddressAddr_val_ptr_len))
   1.126 ++                                           ipAddressAddr_val_ptr_len,
   1.127 ++                                           ipAddressAddr_ifIndex))
   1.128 +         return MFD_ERROR;
   1.129 + 
   1.130 +     /*
   1.131 +Index: agent/mibgroup/ip-mib/ipAddressTable/ipAddressTable.h
   1.132 +--- agent/mibgroup/ip-mib/ipAddressTable/ipAddressTable.h.orig	2011-09-28 06:53:47.000000000 +0200
   1.133 ++++ agent/mibgroup/ip-mib/ipAddressTable/ipAddressTable.h	2012-02-18 21:25:15.751422674 +0100
   1.134 +@@ -273,14 +273,16 @@
   1.135 +                                            long ipAddressAddrType_val,
   1.136 +                                            u_char *ipAddressAddr_val_ptr,
   1.137 +                                            size_t
   1.138 +-                                           ipAddressAddr_val_ptr_len);
   1.139 ++                                           ipAddressAddr_val_ptr_len,
   1.140 ++                                           long ipAddressAddr_ifIndex);
   1.141 +     int             ipAddressTable_indexes_set(ipAddressTable_rowreq_ctx *
   1.142 +                                                rowreq_ctx,
   1.143 +                                                u_long
   1.144 +                                                ipAddressAddrType_val,
   1.145 +                                                u_char *ipAddressAddr_val_ptr,
   1.146 +                                                size_t
   1.147 +-                                               ipAddressAddr_val_ptr_len);
   1.148 ++                                               ipAddressAddr_val_ptr_len,
   1.149 ++                                               long ipAddressAddr_ifIndex);
   1.150 + 
   1.151 + 
   1.152 + 

mercurial