3
0
mirror of https://git.kernel.org/pub/scm/network/wireless/iwd.git synced 2024-11-16 17:09:24 +01:00

network: Add network_remove

This commit is contained in:
Denis Kenzior 2016-05-15 21:37:12 -05:00
parent d0ae833edb
commit 18957e504e
2 changed files with 27 additions and 0 deletions

View File

@ -33,6 +33,7 @@
#include "src/storage.h" #include "src/storage.h"
#include "src/scan.h" #include "src/scan.h"
#include "src/dbus.h" #include "src/dbus.h"
#include "src/agent.h"
#include "src/device.h" #include "src/device.h"
#include "src/network.h" #include "src/network.h"
@ -346,6 +347,30 @@ bool network_register(struct network *network, const char *path)
return true; return true;
} }
static void network_unregister(struct network *network)
{
struct l_dbus *dbus = dbus_get_bus();
agent_request_cancel(network->agent_request);
network_settings_close(network);
l_dbus_unregister_object(dbus, network->object_path);
network_emit_removed(network);
l_free(network->object_path);
network->object_path = NULL;
}
void network_remove(struct network *network)
{
if (network->object_path)
network_unregister(network);
l_queue_destroy(network->bss_list, NULL);
l_free(network->psk);
l_free(network);
}
void network_init() void network_init()
{ {
networks = l_queue_new(); networks = l_queue_new();

View File

@ -62,5 +62,7 @@ void network_emit_removed(struct network *network);
bool network_register(struct network *network, const char *path); bool network_register(struct network *network, const char *path);
void network_remove(struct network *network);
void network_init(); void network_init();
void network_exit(); void network_exit();