On Fri, 2013-10-04 at 14:59 +0300, Jukka Rissanen wrote:
> ---
> 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)
Nitpick: maybe just __connman_config_address_provisioned?
> +{
> + 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;
> +}
Subnet mask should also be checked.
> 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);
Patrik
_______________________________________________
connman mailing list
[email protected]
https://lists.connman.net/mailman/listinfo/connman