summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSamuel Ortiz <sameo@linux.intel.com>2010-06-16 23:41:30 +0200
committerSamuel Ortiz <sameo@linux.intel.com>2010-06-16 23:42:22 +0200
commit99ea00d91233ba1d3aac9a36ebd299ac4c6b45c6 (patch)
tree4bceb2111afe468dafba65d03a179e41ca2ad843
parent9e3f7729638f7a452f0c4dba5895ac2954c1b3e6 (diff)
downloadconnman-99ea00d91233ba1d3aac9a36ebd299ac4c6b45c6.tar.gz
Add helper for network update
This is cleaner and more readable than going through the network_set_group() routine.
-rw-r--r--include/network.h2
-rw-r--r--src/network.c21
2 files changed, 23 insertions, 0 deletions
diff --git a/include/network.h b/include/network.h
index 1f066ef4..322712ed 100644
--- a/include/network.h
+++ b/include/network.h
@@ -132,6 +132,8 @@ struct connman_device *connman_network_get_device(struct connman_network *networ
void *connman_network_get_data(struct connman_network *network);
void connman_network_set_data(struct connman_network *network, void *data);
+void connman_network_update(struct connman_network *network);
+
struct connman_network_driver {
const char *name;
enum connman_network_type type;
diff --git a/src/network.c b/src/network.c
index eed97591..a241d15d 100644
--- a/src/network.c
+++ b/src/network.c
@@ -1565,6 +1565,27 @@ void connman_network_set_data(struct connman_network *network, void *data)
network->driver_data = data;
}
+void connman_network_update(struct connman_network *network)
+{
+ switch (network->type) {
+ case CONNMAN_NETWORK_TYPE_UNKNOWN:
+ case CONNMAN_NETWORK_TYPE_VENDOR:
+ return;
+ case CONNMAN_NETWORK_TYPE_ETHERNET:
+ case CONNMAN_NETWORK_TYPE_BLUETOOTH_PAN:
+ case CONNMAN_NETWORK_TYPE_BLUETOOTH_DUN:
+ case CONNMAN_NETWORK_TYPE_CELLULAR:
+ case CONNMAN_NETWORK_TYPE_WIFI:
+ case CONNMAN_NETWORK_TYPE_WIMAX:
+ break;
+ }
+
+ if (network->group != NULL)
+ __connman_service_update_from_network(network);
+
+ return;
+}
+
static gboolean match_driver(struct connman_network *network,
struct connman_network_driver *driver)
{