summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJukka Rissanen <jukka.rissanen@linux.intel.com>2012-04-05 12:00:47 +0300
committerPatrik Flykt <patrik.flykt@linux.intel.com>2012-04-05 14:17:38 +0300
commit4e1d663c9c31890af9869b2d8c9faf41acf7ef91 (patch)
tree39d9ef138a72ed79d0f0aefe5e0c31c3b2a10da8
parent212ad2f520bb2fb9cdc830142f65cfb7d0bd68fe (diff)
downloadconnman-4e1d663c9c31890af9869b2d8c9faf41acf7ef91.tar.gz
connman-4e1d663c9c31890af9869b2d8c9faf41acf7ef91.tar.bz2
connman-4e1d663c9c31890af9869b2d8c9faf41acf7ef91.zip
provider: Check if there are any routes for the provider
-rw-r--r--src/connman.h1
-rw-r--r--src/provider.c17
2 files changed, 18 insertions, 0 deletions
diff --git a/src/connman.h b/src/connman.h
index 556b9e1d..e97f856e 100644
--- a/src/connman.h
+++ b/src/connman.h
@@ -498,6 +498,7 @@ int __connman_private_network_release(const char *path);
#include <connman/provider.h>
+connman_bool_t __connman_provider_check_routes(struct connman_provider *provider);
int __connman_provider_append_user_route(struct connman_provider *provider,
int family, const char *network, const char *netmask);
void __connman_provider_append_properties(struct connman_provider *provider, DBusMessageIter *iter);
diff --git a/src/provider.c b/src/provider.c
index b893e20d..42fd112f 100644
--- a/src/provider.c
+++ b/src/provider.c
@@ -970,6 +970,23 @@ const char *connman_provider_get_string(struct connman_provider *provider,
return g_hash_table_lookup(provider->setting_strings, key);
}
+connman_bool_t
+__connman_provider_check_routes(struct connman_provider *provider)
+{
+ if (provider == NULL)
+ return FALSE;
+
+ if (provider->user_routes != NULL &&
+ g_hash_table_size(provider->user_routes) > 0)
+ return TRUE;
+
+ if (provider->routes != NULL &&
+ g_hash_table_size(provider->routes) > 0)
+ return TRUE;
+
+ return FALSE;
+}
+
void *connman_provider_get_data(struct connman_provider *provider)
{
return provider->driver_data;