summaryrefslogtreecommitdiff
path: root/plugins
diff options
context:
space:
mode:
authorDaniel Wagner <daniel.wagner@bmw-carit.de>2012-06-01 16:11:27 +0200
committerPatrik Flykt <patrik.flykt@linux.intel.com>2012-06-04 16:20:53 +0300
commitf93ef401e04668517eb61e8f835ca90d9b6e7659 (patch)
tree0e91fffccfb5988b3587df5156f2391b46968ba5 /plugins
parent9ab7ed03f468a89f6cc0812086294424e26380b4 (diff)
downloadconnman-f93ef401e04668517eb61e8f835ca90d9b6e7659.tar.gz
connman-f93ef401e04668517eb61e8f835ca90d9b6e7659.tar.bz2
connman-f93ef401e04668517eb61e8f835ca90d9b6e7659.zip
dundee: Update network connected status
Diffstat (limited to 'plugins')
-rw-r--r--plugins/dundee.c31
1 files changed, 31 insertions, 0 deletions
diff --git a/plugins/dundee.c b/plugins/dundee.c
index ef23d373..e9627135 100644
--- a/plugins/dundee.c
+++ b/plugins/dundee.c
@@ -178,6 +178,29 @@ static void create_network(struct dundee_data *info)
info->network = network;
}
+static void set_connected(struct dundee_data *info)
+{
+ DBG("%s", info->path);
+
+ connman_inet_ifup(info->index);
+
+ connman_network_set_index(info->network, info->index);
+ connman_network_set_ipv4_method(info->network,
+ CONNMAN_IPCONFIG_METHOD_FIXED);
+ connman_network_set_ipaddress(info->network, info->address);
+ connman_network_set_nameservers(info->network, info->nameservers);
+
+ connman_network_set_connected(info->network, TRUE);
+}
+
+static void set_disconnected(struct dundee_data *info)
+{
+ DBG("%s", info->path);
+
+ connman_network_set_connected(info->network, FALSE);
+ connman_inet_ifdown(info->index);
+}
+
static int network_probe(struct connman_network *network)
{
DBG("network %p", network);
@@ -388,6 +411,11 @@ static gboolean device_changed(DBusConnection *connection,
dbus_message_iter_get_basic(&value, &info->active);
DBG("%s Active %d", info->path, info->active);
+
+ if (info->active == TRUE)
+ set_connected(info);
+ else
+ set_disconnected(info);
} else if (g_str_equal(key, "Settings") == TRUE) {
DBG("%s Settings", info->path);
@@ -459,6 +487,9 @@ static void add_device(const char *path, DBusMessageIter *properties)
create_device(info);
create_network(info);
+
+ if (info->active == TRUE)
+ set_connected(info);
}
static gboolean device_added(DBusConnection *connection, DBusMessage *message,