usteer: add BSSID to node struct
[project/usteer.git] / local_node.c
index 788fd99d623f9f4b8d3f49a02a4c88f8bd4c06e0..8064bd72f46d2891f0c0d12779ce93244da5a9b6 100644 (file)
@@ -62,6 +62,7 @@ usteer_free_node(struct ubus_context *ctx, struct usteer_local_node *ln)
        uloop_timeout_cancel(&ln->update);
        avl_delete(&local_nodes, &ln->node.avl);
        ubus_unregister_subscriber(ctx, &ln->ev);
+       kvlist_free(&ln->node_info);
        free(ln);
 }
 
@@ -290,7 +291,7 @@ usteer_local_node_prepare_rrm_set(struct usteer_local_node *ln)
        c = blobmsg_open_array(&b, "list");
        for_each_local_node(node)
                usteer_add_rrm_data(ln, node);
-       avl_for_each_element(&remote_nodes, rn, avl)
+       for_each_remote_node(rn)
                usteer_add_rrm_data(ln, &rn->node);
        blobmsg_close_array(&b, c);
 }
@@ -374,6 +375,7 @@ usteer_get_node(struct ubus_context *ctx, const char *name)
        ln->req_timer.cb = usteer_local_node_state_next;
        ubus_register_subscriber(ctx, &ln->ev);
        avl_insert(&local_nodes, &node->avl);
+       kvlist_init(&ln->node_info, kvlist_blob_len);
        INIT_LIST_HEAD(&node->sta_info);
 
        return ln;
@@ -445,7 +447,7 @@ usteer_register_node(struct ubus_context *ctx, const char *name, uint32_t id)
        ln = usteer_get_node(ctx, name);
        ln->obj_id = id;
        ln->iface = usteer_node_name(&ln->node) + offset;
-       ln->ifindex = if_nametoindex(iface);
+       ln->ifindex = if_nametoindex(ln->iface);
 
        blob_buf_init(&b, 0);
        blobmsg_add_u32(&b, "notify_response", 1);
@@ -543,7 +545,7 @@ void config_set_ssid_list(struct blob_attr *data)
 
        free(config.ssid_list);
 
-       if (data)
+       if (data && blobmsg_len(data))
                config.ssid_list = blob_memdup(data);
        else
                config.ssid_list = NULL;