Exemple #1
0
/* 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;
}
Exemple #2
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;
}