diff --git a/src/core/cntlr.c b/src/core/cntlr.c
index d31231b7ca05387b82d4d5727dd92193941e2d42..fb345de911ce553a6946b1d9262ff3a0703850c9 100644
--- a/src/core/cntlr.c
+++ b/src/core/cntlr.c
@@ -1650,28 +1650,28 @@ static uint32_t ubus_get_topology_object(struct ubus_context *ctx)
 #endif
 
 
-static void cntlr_signal_periodic_run(struct uloop_timeout *t)
+static void cntlr_query_nodes(struct uloop_timeout *t)
 {
 	struct controller *c = container_of(t, struct controller, query_nodes);
 	struct node *n;
 
-	list_for_each_entry_safe(n, &c->nodelist, list) {
+	list_for_each_entry(n, &c->nodelist, list) {
 		struct cmdu_buff *cmdu;
 
 		cmdu = cntlr_gen_bk_caps_query(c, n->alid);
-		if (!cmdu) {
+		if (cmdu) {
 			send_cmdu(c, cmdu);
 			cmdu_free(cmdu);
 		}
 
 		cmdu = cntlr_gen_ap_capability_query(c, n->alid);
-		if (!cmdu) {
+		if (cmdu) {
 			send_cmdu(c, cmdu);
 			cmdu_free(cmdu);
 		}
 
 		cmdu = cntlr_gen_topology_query(c, n->alid);
-		if (!cmdu) {
+		if (cmdu) {
 			send_cmdu(c, cmdu);
 			cmdu_free(cmdu);
 		}
@@ -2070,7 +2070,6 @@ int start_controller(void)
 	c->radar_timer.cb = cntlr_radar_exit;
 	c->signal_handler.cb = cntlr_signal_periodic_run;
 	c->query_nodes.cb = cntlr_query_nodes;
-	//c->bcn_metrics_timer.cb = cntlr_bcn_metrics_parse;
 
 	uloop_timeout_set(&c->heartbeat, 5 * 1000);
 	uloop_timeout_set(&c->discovery_timer, 0);