Refactor collectd binary to separate Unix-specific code.
[collectd.git] / src / snmp_agent.c
index 5c2350e..0d1c577 100644 (file)
@@ -71,7 +71,7 @@ struct data_definition_s {
   char *type;
   char *type_instance;
   const table_definition_t *table;
-  _Bool is_instance;
+  bool is_instance;
   oid_t *oids;
   size_t oids_len;
   double scale;
@@ -90,7 +90,7 @@ struct snmp_agent_ctx_s {
 };
 typedef struct snmp_agent_ctx_s snmp_agent_ctx_t;
 
-static snmp_agent_ctx_t *g_agent = NULL;
+static snmp_agent_ctx_t *g_agent;
 
 #define CHECK_DD_TYPE(_dd, _p, _pi, _t, _ti)                                   \
   (_dd->plugin ? !strcmp(_dd->plugin, _p) : 0) &&                              \
@@ -285,8 +285,8 @@ static int snmp_agent_validate_data(void) {
 
 static void snmp_agent_generate_oid2string(oid_t *oid, size_t offset,
                                            char *key) {
-  int key_len = oid->oid[offset];
-  int i;
+  size_t key_len = oid->oid[offset];
+  size_t i;
 
   for (i = 0; i < key_len && offset < oid->oid_len; i++)
     key[i] = oid->oid[++offset];
@@ -295,10 +295,10 @@ static void snmp_agent_generate_oid2string(oid_t *oid, size_t offset,
 }
 
 static int snmp_agent_generate_string2oid(oid_t *oid, const char *key) {
-  int key_len = strlen(key);
+  size_t key_len = strlen(key);
 
   oid->oid[oid->oid_len++] = key_len;
-  for (int i = 0; i < key_len; i++) {
+  for (size_t i = 0; i < key_len; i++) {
     oid->oid[oid->oid_len++] = key[i];
     if (oid->oid_len >= MAX_OID_LEN) {
       ERROR(PLUGIN_NAME ": Conversion key string %s to OID failed", key);
@@ -1117,12 +1117,6 @@ static int snmp_agent_config_table(oconfig_item_t *ci) {
     }
   }
 
-  llentry_t *entry = llentry_create(td->name, td);
-  if (entry == NULL) {
-    snmp_agent_free_table(&td);
-    return -ENOMEM;
-  }
-
   td->instance_index =
       c_avl_create((int (*)(const void *, const void *))strcmp);
   if (td->instance_index == NULL) {
@@ -1137,6 +1131,11 @@ static int snmp_agent_config_table(oconfig_item_t *ci) {
     return -ENOMEM;
   }
 
+  llentry_t *entry = llentry_create(td->name, td);
+  if (entry == NULL) {
+    snmp_agent_free_table(&td);
+    return -ENOMEM;
+  }
   llist_append(g_agent->tables, entry);
 
   return 0;