diff options
author | vincent <vincent> | 2005-09-29 16:34:30 +0000 |
---|---|---|
committer | vincent <vincent> | 2005-09-29 16:34:30 +0000 |
commit | c770db59c4f5b27fda9be25fb8bb1fb977122f2f (patch) | |
tree | f2394367e5e4640708885efe5af37309a713c2bb /lib/smux.c | |
parent | 12e73f006455c00b83777d8ca92c585cc1fd7884 (diff) | |
download | quagga-c770db59c4f5b27fda9be25fb8bb1fb977122f2f.tar.bz2 quagga-c770db59c4f5b27fda9be25fb8bb1fb977122f2f.tar.xz |
2005-09-29 Alain Ritoux <alain.ritoux@6wind.com>
* lib/smux.[ch]: allow to retreive global OID (identified by <0
namelen).
* ospf_ism.c: generate SNMP traps on Interface state change
* ospf_nsm.c: generate SNMP traps on Neighbour state change
* ospf_snmp.[ch]: support for SNMP traps for interface and neighbours.
Diffstat (limited to 'lib/smux.c')
-rw-r--r-- | lib/smux.c | 33 |
1 files changed, 27 insertions, 6 deletions
@@ -1065,13 +1065,34 @@ smux_trap (oid *name, size_t namelen, u_char val_type; /* Make OID. */ - oid_copy (oid, name, namelen); - oid_copy (oid + namelen, trapobj[i].name, trapobj[i].namelen); - oid_copy (oid + namelen + trapobj[i].namelen, iname, inamelen); - oid_len = namelen + trapobj[i].namelen + inamelen; + if (trapobj[i].namelen > 0) + { + oid_copy (oid, name, namelen); + oid_copy (oid + namelen, trapobj[i].name, trapobj[i].namelen); + oid_copy (oid + namelen + trapobj[i].namelen, iname, inamelen); + oid_len = namelen + trapobj[i].namelen + inamelen; + } + else + { + oid_copy (oid, name, namelen); + oid_copy (oid + namelen, trapobj[i].name, trapobj[i].namelen * (-1)); + oid_len = namelen + trapobj[i].namelen * (-1) ; + } - if (debug_smux) - smux_oid_dump ("Trap", oid, oid_len); + if (debug_smux) + { + smux_oid_dump ("Trap", name, namelen); + if (trapobj[i].namelen < 0) + smux_oid_dump ("Trap", + trapobj[i].name, (- 1) * (trapobj[i].namelen)); + else + { + smux_oid_dump ("Trap", trapobj[i].name, (trapobj[i].namelen)); + smux_oid_dump ("Trap", iname, inamelen); + } + smux_oid_dump ("Trap", oid, oid_len); + zlog_info ("BUFSIZ: %d // oid_len: %d", BUFSIZ, oid_len); + } ret = smux_get (oid, &oid_len, 1, &val_type, &val, &val_len); |