From: Daniel Wagner <[email protected]>
---
plugins/dundee.c | 44 ++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 44 insertions(+), 0 deletions(-)
diff --git a/plugins/dundee.c b/plugins/dundee.c
index dd78817..ec8adb6 100644
--- a/plugins/dundee.c
+++ b/plugins/dundee.c
@@ -57,6 +57,7 @@ struct dundee_data {
char *name;
struct connman_device *device;
+ struct connman_network *network;
connman_bool_t active;
@@ -118,6 +119,12 @@ static void destroy_device(struct dundee_data *info)
{
connman_device_set_powered(info->device, FALSE);
+ if (info->network != NULL) {
+ connman_device_remove_network(info->device, info->network);
+ connman_network_unref(info->network);
+ info->network = NULL;
+ }
+
connman_device_unregister(info->device);
connman_device_unref(info->device);
@@ -137,6 +144,39 @@ static void device_destroy(gpointer data)
g_free(info);
}
+static void create_network(struct dundee_data *info)
+{
+ struct connman_network *network;
+ const char *group;
+
+ DBG("%s", info->path);
+
+ network = connman_network_create(info->path,
+ CONNMAN_NETWORK_TYPE_BLUETOOTH_DUN);
+ if (network == NULL)
+ return;
+
+ DBG("network %p", network);
+
+ connman_network_set_data(network, info);
+
+ connman_network_set_string(network, "Path",
+ info->path);
+
+ connman_network_set_name(network, info->name);
+
+ group = get_ident(info->path);
+ connman_network_set_group(network, group);
+
+ connman_network_set_available(network, TRUE);
+
+ if (connman_device_add_network(info->device, network) < 0) {
+ connman_network_unref(network);
+ return;
+ }
+
+ info->network = network;
+}
static int network_probe(struct connman_network *network)
{
@@ -351,6 +391,9 @@ static gboolean device_changed(DBusConnection *connection,
info->name = g_strdup_printf("%s (DUN)", name);
DBG("%s Name %s", info->path, info->name);
+
+ connman_network_set_name(info->network, info->name);
+ connman_network_update(info->network);
}
return TRUE;
@@ -405,6 +448,7 @@ static void add_device(const char *path, DBusMessageIter
*properties)
g_hash_table_insert(dundee_devices, g_strdup(path), info);
create_device(info);
+ create_network(info);
}
static gboolean device_added(DBusConnection *connection, DBusMessage *message,
--
1.7.8.110.g4cb5d1
_______________________________________________
connman mailing list
[email protected]
http://lists.connman.net/listinfo/connman