diff options
-rw-r--r-- | plugins/option/mm-broadband-bearer-hso.c | 13 |
1 files changed, 7 insertions, 6 deletions
diff --git a/plugins/option/mm-broadband-bearer-hso.c b/plugins/option/mm-broadband-bearer-hso.c index 612177cc..561c11fc 100644 --- a/plugins/option/mm-broadband-bearer-hso.c +++ b/plugins/option/mm-broadband-bearer-hso.c @@ -18,7 +18,6 @@ #include <config.h> #include <stdio.h> -#include <errno.h> #include <stdlib.h> #include <unistd.h> #include <string.h> @@ -120,7 +119,6 @@ ip_config_ready (MMBaseModem *modem, gchar *dns[3] = { 0 }; guint i; guint dns_i; - guint32 tmp; response = mm_base_modem_at_command_full_finish (MM_BASE_MODEM (modem), res, &error); if (error) { @@ -147,11 +145,10 @@ ip_config_ready (MMBaseModem *modem, for (i = 0, dns_i = 0; items[i]; i++) { if (i == 0) { /* CID */ - glong num; + gint num; - errno = 0; - num = strtol (items[i], NULL, 10); - if (errno != 0 || num < 0 || (gint) num != ctx->cid) { + if (!mm_get_int_from_str (items[i], &num) || + num != ctx->cid) { error = g_error_new (MM_CORE_ERROR, MM_CORE_ERROR_FAILED, "Unknown CID in OWANDATA response (" @@ -159,6 +156,8 @@ ip_config_ready (MMBaseModem *modem, break; } } else if (i == 1) { /* IP address */ + guint32 tmp; + if (!inet_pton (AF_INET, items[i], &tmp)) break; @@ -166,6 +165,8 @@ ip_config_ready (MMBaseModem *modem, mm_bearer_ip_config_set_method (ip_config, MM_BEARER_IP_METHOD_STATIC); mm_bearer_ip_config_set_address (ip_config, items[i]); } else if (i == 3 || i == 4) { /* DNS entries */ + guint32 tmp; + if (!inet_pton (AF_INET, items[i], &tmp)) { g_clear_object (&ip_config); break; |