/* Register one instance node in mib-tree according to given oid with lua callback. */ int mib_node_reg(const oid_t *oid, uint32_t len, int callback) { int i; struct mib_instance_node *in; assert(oid != NULL); mib_tree_init_check(); /* Prefix must match root oid */ if (len == 0) { SMARTSNMP_LOG(L_WARNING, "The register group node oid cannot be empty\n"); return -1; } if (len > MIB_OID_MAX_LEN) { SMARTSNMP_LOG(L_WARNING, "The register group oid cannot be longer than %d\n", MIB_OID_MAX_LEN); return -1; } in = mib_tree_instance_insert(oid, len, callback); if (in == NULL) { SMARTSNMP_LOG(L_WARNING, "Register group node oid: "); for (i = 0; i < len; i++) { SMARTSNMP_LOG(L_WARNING, "%d ", oid[i]); } SMARTSNMP_LOG(L_WARNING, "fail, node already exists or oid overlaps.\n"); return -1; } return 0; }
/* Register one instance node in mib-tree according to oid with callback defined * in Lua files. */ int mib_node_reg(const oid_t *oid, uint32_t len, const char *lua_callback) { int i; struct mib_group_node *gn; struct mib_instance_node *in; gn = mib_tree_group_insert(oid, len - 1); if (gn == NULL) { goto NODE_REG_FAIL; } in = mib_tree_instance_insert(oid, len, lua_callback); if (in == NULL) { goto NODE_REG_FAIL; } return 0; NODE_REG_FAIL: CREDO_SNMP_LOG(SNMP_LOG_WARNING, "Register oid: "); for (i = 0; i < len; i++) { CREDO_SNMP_LOG(SNMP_LOG_WARNING, "%d ", oid[i]); } CREDO_SNMP_LOG(SNMP_LOG_WARNING, "fail, node already exists or oid overlaps.\n"); return -1; }