static int snmpwalk_parse_oid(struct snmp_toolinfo *tool, struct snmp_object *obj, char *argv) { if (argv == NULL) return (-1); if (ISSET_NUMERIC(*tool)) { if (snmp_parse_numoid(argv, &(obj->val.var)) < 0) return (-1); } else { if(snmpwalk_parse_stroid(tool, obj, argv) < 0) return (-1); } return(1); }
static int32_t snmptools_parse_oid(struct snmp_toolinfo *snmptoolctx, struct snmp_object *obj, char *argv) { if (argv == NULL) return (-1); if (ISSET_NUMERIC(snmptoolctx)) { if (snmp_parse_numoid(argv, &(obj->val.var)) < 0) return (-1); } else { if (snmptools_parse_stroid(snmptoolctx, obj, argv) == NULL && snmp_parse_numoid(argv, &(obj->val.var)) < 0) return (-1); } return (1); }
/* ***************************************************************************** * bsnmpget private functions. */ static int32_t snmpget_verify_vbind(struct snmp_toolinfo *snmptoolctx, struct snmp_pdu *pdu, struct snmp_object *obj) { if (pdu->version == SNMP_V1 && obj->val.syntax == SNMP_SYNTAX_COUNTER64) { warnx("64-bit counters are not supported in SNMPv1 PDU"); return (-1); } if (ISSET_NUMERIC(snmptoolctx) || pdu->type == SNMP_PDU_GETNEXT || pdu->type == SNMP_PDU_GETBULK) return (1); if (pdu->type == SNMP_PDU_GET && obj->val.syntax == SNMP_SYNTAX_NULL) { warnx("Only leaf object values can be added to GET PDU"); return (-1); } return (1); }