diff --git a/src/network.c b/src/network.c index d9a415e2..6a0a6cd2 100644 --- a/src/network.c +++ b/src/network.c @@ -331,6 +331,21 @@ void network_emit_removed(struct network *network) l_dbus_send(dbus, signal); } +bool network_register(struct network *network, const char *path) +{ + if (!l_dbus_object_add_interface(dbus_get_bus(), path, + IWD_NETWORK_INTERFACE, network)) { + l_info("Unable to register %s interface", + IWD_NETWORK_INTERFACE); + return false; + } + + network->object_path = strdup(path); + network_emit_added(network); + + return true; +} + void network_init() { networks = l_queue_new(); diff --git a/src/network.h b/src/network.h index f25ee4f8..f489d4f0 100644 --- a/src/network.h +++ b/src/network.h @@ -60,5 +60,7 @@ void network_sync_psk(struct network *network); void network_emit_added(struct network *network); void network_emit_removed(struct network *network); +bool network_register(struct network *network, const char *path); + void network_init(); void network_exit();