---
src/config.c | 31 +++++++++++++++++++++++++++++++
src/connman.h | 1 +
2 files changed, 32 insertions(+)
diff --git a/src/config.c b/src/config.c
index 1a05c61..606f857 100644
--- a/src/config.c
+++ b/src/config.c
@@ -1504,3 +1504,34 @@ void connman_config_free_entries(struct
connman_config_entry **entries)
g_free(entries);
return;
}
+
+bool __connman_config_is_address_provisioned(const char *address, int family)
+{
+ GHashTableIter iter, siter;
+ gpointer value, key, svalue, skey;
+
+ if (!address)
+ return false;
+
+ g_hash_table_iter_init(&iter, config_table);
+
+ while (g_hash_table_iter_next(&iter, &key, &value)) {
+ struct connman_config *config = value;
+
+ g_hash_table_iter_init(&siter, config->service_table);
+ while (g_hash_table_iter_next(&siter, &skey, &svalue)) {
+ struct connman_config_service *service = svalue;
+
+ if (family == AF_INET) {
+ if (!g_strcmp0(address, service->ipv4_address))
+ return true;
+ } else if (family == AF_INET6) {
+ if (!g_strcmp0(address, service->ipv6_address))
+ return true;
+ } else
+ return false;
+ }
+ }
+
+ return false;
+}
diff --git a/src/connman.h b/src/connman.h
index a0f06bd..f32f979 100644
--- a/src/connman.h
+++ b/src/connman.h
@@ -595,6 +595,7 @@ char **__connman_config_get_string_list(GKeyFile *key_file,
bool __connman_config_get_bool(GKeyFile *key_file,
const char *group_name, const char *key, GError **error);
+bool __connman_config_is_address_provisioned(const char *address, int family);
int __connman_tethering_init(void);
void __connman_tethering_cleanup(void);
--
1.7.11.7
_______________________________________________
connman mailing list
[email protected]
https://lists.connman.net/mailman/listinfo/connman