diff --git a/src/network.c b/src/network.c index 26c7f586..a97d93f9 100644 --- a/src/network.c +++ b/src/network.c @@ -225,6 +225,35 @@ bool __iwd_network_append_properties(const struct network *network, return true; } +void network_emit_added(struct network *network) +{ + struct l_dbus *dbus = dbus_get_bus(); + struct l_dbus_message *signal; + struct l_dbus_message_builder *builder; + + signal = l_dbus_message_new_signal(dbus, + device_get_path(network->netdev), + IWD_DEVICE_INTERFACE, + "NetworkAdded"); + + if (!signal) + return; + + builder = l_dbus_message_builder_new(signal); + if (!builder) { + l_dbus_message_unref(signal); + return; + } + + l_dbus_message_builder_append_basic(builder, 'o', + network->object_path); + __iwd_network_append_properties(network, builder); + + l_dbus_message_builder_finalize(builder); + l_dbus_message_builder_destroy(builder); + l_dbus_send(dbus, signal); +} + void network_init() { networks = l_queue_new(); diff --git a/src/network.h b/src/network.h index d36af214..52013090 100644 --- a/src/network.h +++ b/src/network.h @@ -49,5 +49,7 @@ struct netdev *network_get_netdev(struct network *network); const char *network_get_path(struct network *network); enum security network_get_security(struct network *network); +void network_emit_added(struct network *network); + void network_init(); void network_exit(); diff --git a/src/wiphy.c b/src/wiphy.c index 3fbb5607..a5441ea5 100644 --- a/src/wiphy.c +++ b/src/wiphy.c @@ -509,35 +509,6 @@ static void setup_network_interface(struct l_dbus_interface *interface) NULL); } -static void network_emit_added(struct network *network) -{ - struct l_dbus *dbus = dbus_get_bus(); - struct l_dbus_message *signal; - struct l_dbus_message_builder *builder; - - signal = l_dbus_message_new_signal(dbus, - device_get_path(network->netdev), - IWD_DEVICE_INTERFACE, - "NetworkAdded"); - - if (!signal) - return; - - builder = l_dbus_message_builder_new(signal); - if (!builder) { - l_dbus_message_unref(signal); - return; - } - - l_dbus_message_builder_append_basic(builder, 'o', - network->object_path); - __iwd_network_append_properties(network, builder); - - l_dbus_message_builder_finalize(builder); - l_dbus_message_builder_destroy(builder); - l_dbus_send(dbus, signal); -} - static void network_emit_removed(struct network *network) { struct l_dbus *dbus = dbus_get_bus();