6
#include <net-snmp/net-snmp-config.h>
7
#include <net-snmp/net-snmp-includes.h>
9
/* pulled from Dave's, yet-to-be-used, net-snmp library rewrite.
10
autocompatibility for the future? */
12
typedef struct netsnmp_oid_s {
15
oid namebuf[ MAX_OID_LEN ];
21
croak("%s not implemented on this architecture", s);
26
constant(char *name, int len, int arg)
33
nso_newarrayptr(oid *name, size_t name_len)
36
RETVAL = SNMP_MALLOC_TYPEDEF(netsnmp_oid);
37
RETVAL->name = RETVAL->namebuf;
38
RETVAL->len = name_len;
39
memcpy(RETVAL->name, name, name_len * sizeof(oid));
43
MODULE = NetSNMP::OID PACKAGE = NetSNMP::OID PREFIX=nso_
46
nso_newptr(initstring)
49
RETVAL = SNMP_MALLOC_TYPEDEF(netsnmp_oid);
50
RETVAL->name = RETVAL->namebuf;
51
RETVAL->len = sizeof(RETVAL->namebuf)/sizeof(RETVAL->namebuf[0]);
52
if (!snmp_parse_oid(initstring, (oid *) RETVAL->name, &RETVAL->len)) {
53
snmp_log(LOG_ERR, "Can't parse: %s\n", initstring);
66
char * s = SvPV(sv, len);
69
RETVAL = constant(s,len,arg);
74
_snmp_oid_compare(oid1, oid2)
78
RETVAL = snmp_oid_compare((oid *) oid1->name, oid1->len,
79
(oid *) oid2->name, oid2->len);
83
MODULE = NetSNMP::OID PACKAGE = netsnmp_oidPtr PREFIX = nsop_
95
static char mystr[SNMP_MAXBUF];
99
snprintf(mystr, sizeof(mystr), "Illegal OID");
101
snprint_objid(mystr, sizeof(mystr),
102
(oid *) oid1->name, oid1->len);
116
EXTEND(SP, oid1->len);
117
for(i=0; i < oid1->len; i++) {
118
PUSHs(sv_2mortal(newSVnv(oid1->name[i])));
122
nsop_append(oid1, string)
126
oid name[MAX_OID_LEN];
127
size_t name_len = MAX_OID_LEN;
131
if (!snmp_parse_oid(string, (oid *) name, &name_len)) {
134
if (oid1->len + name_len > MAX_OID_LEN) {
137
for(i = 0; i < (int)name_len; i++) {
138
oid1->name[i+oid1->len] = name[i];
140
oid1->len += name_len;
144
nsop_append_oid(oid1, oid2)
151
if (oid1->len + oid2->len > MAX_OID_LEN) {
154
for(i = 0; i < (int)oid2->len; i++) {
155
oid1->name[i+oid1->len] = oid2->name[i];
157
oid1->len += oid2->len;
177
oid2 = nso_newarrayptr(oid1->name, oid1->len);