X-Git-Url: https://git.octo.it/?a=blobdiff_plain;f=src%2Fsnmp_agent.c;fp=src%2Fsnmp_agent.c;h=8f556d85041528e680f35625b08d2fea63af48de;hb=1df1a595017f4adfd159f7a923a721a2e83fd682;hp=bbc4dcd0fbcfc8506d48a7c48db3fbaf9bb34fd0;hpb=362764225ae3d22ed9a14e27bf95ad762bae8adb;p=collectd.git diff --git a/src/snmp_agent.c b/src/snmp_agent.c index bbc4dcd0..8f556d85 100644 --- a/src/snmp_agent.c +++ b/src/snmp_agent.c @@ -671,15 +671,20 @@ static void snmp_agent_table_data_remove(data_definition_t *dd, pthread_mutex_lock(&g_agent->agentx_lock); + int reg_oids = -1; /* Number of registered oids for given instance */ + for (size_t i = 0; i < dd->oids_len; i++) { if (td->index_oid.oid_len) snmp_agent_unregister_oid_index(&dd->oids[i], *index); else snmp_agent_unregister_oid_string(&dd->oids[i], index_oid); + + reg_oids = + snmp_agent_update_instance_oids(td->instance_oids, index_oid, -1); } /* Checking if any metrics are left registered */ - if (snmp_agent_update_instance_oids(td->instance_oids, index_oid, -1) > 0) { + if (reg_oids != 0) { pthread_mutex_unlock(&g_agent->agentx_lock); return; }