--- embedaddon/quagga/ripd/rip_snmp.c 2012/02/21 17:26:12 1.1.1.1 +++ embedaddon/quagga/ripd/rip_snmp.c 2016/11/02 10:09:10 1.1.1.3 @@ -22,14 +22,8 @@ #include #ifdef HAVE_SNMP -#ifdef HAVE_NETSNMP #include #include -#else -#include -#include -#include -#endif #include "if.h" #include "log.h" @@ -39,7 +33,7 @@ #include "smux.h" #include "ripd/ripd.h" - + /* RIPv2-MIB. */ #define RIPV2MIB 1,3,6,1,2,1,23 @@ -82,7 +76,7 @@ #define TIMETICKS ASN_TIMETICKS #define IPADDRESS ASN_IPADDRESS #define STRING ASN_OCTET_STR - + /* Define SNMP local variables. */ SNMP_LOCAL_VARIABLES @@ -155,7 +149,7 @@ struct variable rip_variables[] = }; extern struct thread_master *master; - + static u_char * rip2Globals (struct variable *v, oid name[], size_t *length, int exact, size_t *var_len, WriteMethod **write_method) @@ -301,7 +295,7 @@ rip2PeerLookup (struct variable *v, oid name[], size_t peer = rip_peer_lookup (addr); - if (peer->domain == name[v->namelen + sizeof (struct in_addr)]) + if (peer->domain == (int)name[v->namelen + sizeof (struct in_addr)]) return peer; return NULL; @@ -317,8 +311,8 @@ rip2PeerLookup (struct variable *v, oid name[], size_t peer = rip_peer_lookup (addr); if (peer) { - if ((len < sizeof (struct in_addr) + 1) || - (peer->domain > name[v->namelen + sizeof (struct in_addr)])) + if ((len < (int)sizeof (struct in_addr) + 1) || + (peer->domain > (int)name[v->namelen + sizeof (struct in_addr)])) { oid_copy_addr (name + v->namelen, &peer->addr, sizeof (struct in_addr)); @@ -351,6 +345,10 @@ rip2IfStatEntry (struct variable *v, oid name[], size_ static struct in_addr addr; static long valid = SNMP_VALID; + if (smux_header_table(v, name, length, exact, var_len, write_method) + == MATCH_FAILED) + return NULL; + memset (&addr, 0, sizeof (struct in_addr)); /* Lookup interface. */ @@ -454,6 +452,10 @@ rip2IfConfAddress (struct variable *v, oid name[], siz struct interface *ifp; struct rip_interface *ri; + if (smux_header_table(v, name, length, exact, val_len, write_method) + == MATCH_FAILED) + return NULL; + memset (&addr, 0, sizeof (struct in_addr)); /* Lookup interface. */ @@ -523,6 +525,10 @@ rip2PeerTable (struct variable *v, oid name[], size_t /* static time_t uptime; */ struct rip_peer *peer; + + if (smux_header_table(v, name, length, exact, val_len, write_method) + == MATCH_FAILED) + return NULL; memset (&addr, 0, sizeof (struct in_addr));