diff options
author | Denis Kenzior <denkenz@gmail.com> | 2011-01-26 14:50:30 -0600 |
---|---|---|
committer | Denis Kenzior <denkenz@gmail.com> | 2011-01-26 14:55:58 -0600 |
commit | 71e5278ce6f189ee4cc356101d31c068d84a9fe4 (patch) | |
tree | c74564de39eb20ef07e03e162f794735c2f6b28f /src/gprs-provision.c | |
parent | 5e5eed9f83af539ad697bed755ac72a46845b030 (diff) | |
download | ofono-71e5278ce6f189ee4cc356101d31c068d84a9fe4.tar.bz2 |
gprs-provision: Refactor provisioning
Diffstat (limited to 'src/gprs-provision.c')
-rw-r--r-- | src/gprs-provision.c | 29 |
1 files changed, 13 insertions, 16 deletions
diff --git a/src/gprs-provision.c b/src/gprs-provision.c index cc1f5895..3cd84e8b 100644 --- a/src/gprs-provision.c +++ b/src/gprs-provision.c @@ -47,34 +47,31 @@ void __ofono_gprs_provision_free_settings( g_free(settings); } -void __ofono_gprs_provision_get_settings(const char *mcc, const char *mnc, - struct ofono_gprs_provision_data **settings, - int *count) +ofono_bool_t __ofono_gprs_provision_get_settings(const char *mcc, + const char *mnc, + struct ofono_gprs_provision_data **settings, + int *count) { GSList *d; - *settings = NULL; - *count = 0; - if (mcc == NULL || strlen(mcc) == 0 || mnc == NULL || strlen(mnc) == 0) - return; + return FALSE; for (d = g_drivers; d != NULL; d = d->next) { const struct ofono_gprs_provision_driver *driver = d->data; - DBG("Calling provisioning plugin '%s'", driver->name); + if (driver->get_settings == NULL) + continue; - driver->get_settings(mcc, mnc, settings, count); + DBG("Calling provisioning plugin '%s'", driver->name); - if (*count > 0) { - DBG("Plugin '%s' returned %d context settings", - driver->name, *count); - return; - } + if (driver->get_settings(mcc, mnc, settings, count) < 0) + continue; - ofono_warn("Provisioning plugin '%s' returned no settings", - driver->name); + return TRUE; } + + return FALSE; } static gint compare_priority(gconstpointer a, gconstpointer b) |