{BGP4PATHATTRUNKNOWN, OCTET_STRING, RONLY, bgp4PathAttrTable,
3, {6, 1, 14}},
};
+
\f
static u_char *
bgpVersion (struct variable *v, oid name[], size_t *length, int exact,
void
bgp_snmp_init ()
{
- smux_init (bgpd_oid, sizeof bgpd_oid / sizeof (oid));
+ struct bgp_master *bm;
+
+ if ( !(bm = bgp_get_master ()) )
+ return;
+
+ smux_init (bm->master, bgpd_oid, sizeof bgpd_oid / sizeof (oid));
REGISTER_MIB("mibII/bgp", bgp_variables, variable, bgp_oid);
smux_start ();
}
#include <snmp.h>
#include <snmp_impl.h>
-#include "smux.h"
#include "log.h"
#include "thread.h"
#include "linklist.h"
#include "version.h"
#include "memory.h"
#include "sockunion.h"
+#include "smux.h"
#define min(A,B) ((A) < (B) ? (A) : (B))
SMUX_NODE,
"" /* SMUX has no interface. */
};
+
+/* thread master */
+static struct thread_master *master;
\f
void *
oid_copy (void *dest, void *src, size_t size)
}
}
\f
-extern struct thread_master *master;
+
void
smux_event (enum smux_event event, int sock)
/* Initialize some values then schedule first SMUX connection. */
void
-smux_init (oid defoid[], size_t defoid_len)
+smux_init (struct thread_master *tm, oid defoid[], size_t defoid_len)
{
/* Set default SMUX oid. */
smux_default_oid = defoid;
smux_oid = smux_default_oid;
smux_oid_len = smux_default_oid_len;
smux_passwd = smux_default_passwd;
+
+ /* copy callers thread master */
+ master = tm;
/* Make MIB tree. */
treelist = list_new();
(u_char *) &snmp_in_addr_val \
)
-void smux_init (oid [], size_t);
+void smux_init (struct thread_master *tm, oid [], size_t);
void smux_start (void);
void smux_register_mib(char *, struct variable *, size_t, int, oid [], size_t);
int smux_header_generic (struct variable *, oid [], size_t *, int, size_t *,
WriteMethod **);
-int smux_trap (oid *, size_t, oid *, size_t, struct trap_object *, size_t, unsigned int);
+int smux_trap (oid *, size_t, oid *, size_t, struct trap_object *, size_t, unsigned int, u_char);
int oid_compare (oid *, int, oid *, int);
void oid2in_addr (oid [], int, struct in_addr *);
void
ospf_snmp_init ()
{
+ struct ospf *ospf;
+
ospf_snmp_iflist = list_new ();
ospf_snmp_vl_table = route_table_init ();
- smux_init (ospfd_oid, sizeof (ospfd_oid) / sizeof (oid));
+ smux_init (om->master, ospfd_oid, sizeof (ospfd_oid) / sizeof (oid));
REGISTER_MIB("mibII/ospf", ospf_variables, variable, ospf_oid);
smux_start ();
}
{RIP2PEERRCVBADROUTES, COUNTER, RONLY, rip2PeerTable,
3, {4, 1, 6}}
};
+
+extern struct thread_master *master;
\f
static u_char *
rip2Globals (struct variable *v, oid name[], size_t *length,
return ripVersion1;
else if (rip)
{
- if (rip->version == RIPv2)
+ if (rip->version_send == RIPv2)
return ripVersion2;
- else if (rip->version == RIPv1)
+ else if (rip->version_send == RIPv1)
return ripVersion1;
}
return doNotSend;
{
rip_ifaddr_table = route_table_init ();
- smux_init (ripd_oid, sizeof (ripd_oid) / sizeof (oid));
+ smux_init (master, ripd_oid, sizeof (ripd_oid) / sizeof (oid));
REGISTER_MIB("mibII/rip", rip_variables, variable, rip_oid);
smux_start ();
}
#include "table.h"
#include "zebra/rib.h"
+#include "zebra/zserv.h"
\f
#define IPFWMIB 1,3,6,1,2,1,4,24
#define ZEBRAOID 1,3,6,1,4,1,3317,1,2,1
#define IPADDRESS ASN_IPADDRESS
#define OBJECTIDENTIFIER ASN_OBJECT_ID
\f
+extern struct zebra_t zebrad;
+
oid ipfw_oid [] = { IPFWMIB };
oid zebra_oid [] = { ZEBRAOID };
void
zebra_snmp_init ()
{
- smux_init (zebra_oid, sizeof (zebra_oid) / sizeof (oid));
+ smux_init (zebrad.master, zebra_oid, sizeof (zebra_oid) / sizeof (oid));
REGISTER_MIB("mibII/ipforward", zebra_variables, variable, ipfw_oid);
smux_start ();
}