diff options
author | Daniel Wagner <daniel.wagner@bmw-carit.de> | 2012-06-01 16:11:27 +0200 |
---|---|---|
committer | Patrik Flykt <patrik.flykt@linux.intel.com> | 2012-06-04 16:20:53 +0300 |
commit | f93ef401e04668517eb61e8f835ca90d9b6e7659 (patch) | |
tree | 0e91fffccfb5988b3587df5156f2391b46968ba5 /plugins | |
parent | 9ab7ed03f468a89f6cc0812086294424e26380b4 (diff) | |
download | connman-f93ef401e04668517eb61e8f835ca90d9b6e7659.tar.gz connman-f93ef401e04668517eb61e8f835ca90d9b6e7659.tar.bz2 connman-f93ef401e04668517eb61e8f835ca90d9b6e7659.zip |
dundee: Update network connected status
Diffstat (limited to 'plugins')
-rw-r--r-- | plugins/dundee.c | 31 |
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, |