示例#1
0
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);
}
示例#2
0
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);
}
示例#3
0
/* *****************************************************************************
 * 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);
}