NetSNMP-OID
view release on metacpan or search on metacpan
double
constant(sv,arg)
PREINIT:
STRLEN len;
INPUT:
SV * sv
char * s = SvPV(sv, len);
int arg
CODE:
RETVAL = constant(s,len,arg);
OUTPUT:
RETVAL
int
_snmp_oid_compare(oid1, oid2)
netsnmp_oid *oid1;
netsnmp_oid *oid2;
CODE:
RETVAL = snmp_oid_compare((oid *) oid1->name, oid1->len,
(oid *) oid2->name, oid2->len);
OUTPUT:
RETVAL
MODULE = NetSNMP::OID PACKAGE = netsnmp_oidPtr PREFIX = nsop_
void
nsop_DESTROY(oid1)
netsnmp_oid *oid1
CODE:
{
if (oid1->name != oid1->namebuf) {
free(oid1->name);
}
free(oid1);
}
char *
nsop_to_string(oid1)
netsnmp_oid *oid1
PREINIT:
static char mystr[SNMP_MAXBUF];
CODE:
{
if (oid1->len == 0)
snprintf(mystr, sizeof(mystr), "Illegal OID");
else
snprint_objid(mystr, sizeof(mystr),
(oid *) oid1->name, oid1->len);
RETVAL = mystr;
}
OUTPUT:
RETVAL
void
nsop_to_array(oid1)
netsnmp_oid *oid1;
PREINIT:
int i;
PPCODE:
EXTEND(SP, oid1->len);
for(i=0; i < (int)oid1->len; i++) {
PUSHs(sv_2mortal(newSVnv(oid1->name[i])));
}
SV *
nsop_get_indexes(oid1)
netsnmp_oid *oid1;
PREINIT:
int i, nodecount;
struct tree *tp, *tpe, *tpnode, *indexnode;
struct index_list *index;
netsnmp_variable_list vbdata;
u_char *buf = NULL;
size_t buf_len = 256, out_len = 0;
oid name[MAX_OID_LEN];
size_t name_len = MAX_OID_LEN;
oid *oidp;
size_t oidp_len;
AV *myret;
int is_private;
CODE:
{
memset(&vbdata, 0, sizeof(vbdata));
if (NULL == (tp = get_tree(oid1->name, oid1->len,
get_tree_head()))) {
RETVAL = NULL;
return;
}
if ((buf = (u_char *) calloc(buf_len, 1)) == NULL) {
RETVAL = NULL;
return;
}
nodecount = 0;
for(tpnode = tp; tpnode; tpnode = tpnode->parent) {
nodecount++;
if (nodecount == 2)
tpe = tpnode;
if (nodecount == 3 &&
(strlen(tpnode->label) < 6 ||
strcmp(tpnode->label + strlen(tpnode->label) - 5,
"Table"))) {
/* we're not within a table. bad logic, little choice */
RETVAL = NULL;
return;
}
}
if (tpe->augments && strlen(tpe->augments) > 0) {
/* we're augmenting another table, so use that entry instead */
if (!snmp_parse_oid(tpe->augments, name, &name_len) ||
(NULL ==
(tpe = get_tree(name, name_len,
get_tree_head())))) {
RETVAL = NULL;
return; /* XXX: better error recovery needed? */
}
( run in 0.561 second using v1.01-cache-2.11-cpan-71847e10f99 )