diff options
| author | Michael Biebl <biebl@debian.org> | 2018-02-07 02:39:23 +0100 |
|---|---|---|
| committer | Michael Biebl <biebl@debian.org> | 2018-02-07 02:39:23 +0100 |
| commit | 50f6b47074e01dffb8dc536c0a20961dcf28ae9b (patch) | |
| tree | b4bd771d78ebe38661b8c4ec8b9a8e0eb8261eb5 /src/devices/wwan | |
| parent | afcd268ea7b1149fbfb66bce4eca659b675da0a2 (diff) | |
New upstream version 1.10.4 upstream/1.10.4
Diffstat (limited to 'src/devices/wwan')
| -rw-r--r-- | src/devices/wwan/nm-modem-broadband.c | 52 | ||||
| -rw-r--r-- | src/devices/wwan/nm-modem.c | 5 |
2 files changed, 28 insertions, 29 deletions
diff --git a/src/devices/wwan/nm-modem-broadband.c b/src/devices/wwan/nm-modem-broadband.c index 6e5f10a0..dc0ce303 100644 --- a/src/devices/wwan/nm-modem-broadband.c +++ b/src/devices/wwan/nm-modem-broadband.c @@ -875,32 +875,37 @@ static_stage3_ip4_done (NMModemBroadband *self) NMPlatformIP4Address address; const gchar **dns; guint i; + guint32 ip4_route_table, ip4_route_metric; + NMPlatformIP4Route *r; g_assert (self->_priv.ipv4_config); g_assert (self->_priv.bearer); + self->_priv.idle_id_ip4 = 0; + _LOGI ("IPv4 static configuration:"); /* Fully fail if invalid IP address retrieved */ address_string = mm_bearer_ip_config_get_address (self->_priv.ipv4_config); - if (!nm_utils_parse_inaddr_bin (AF_INET, address_string, &address_network)) { + if ( !address_string + || !nm_utils_parse_inaddr_bin (AF_INET, address_string, &address_network)) { error = g_error_new (NM_DEVICE_ERROR, NM_DEVICE_ERROR_INVALID_CONNECTION, - "(%s) retrieving IP4 configuration failed: invalid address given '%s'", + "(%s) retrieving IP4 configuration failed: invalid address given %s%s%s", nm_modem_get_uid (NM_MODEM (self)), - address_string); + NM_PRINT_FMT_QUOTE_STRING (address_string)); goto out; } /* Missing gateway not a hard failure */ gw_string = mm_bearer_ip_config_get_gateway (self->_priv.ipv4_config); - if ( !gw_string - || !nm_utils_parse_inaddr_bin (AF_INET, gw_string, &gw)) { + if ( gw_string + && !nm_utils_parse_inaddr_bin (AF_INET, gw_string, &gw)) { error = g_error_new (NM_DEVICE_ERROR, NM_DEVICE_ERROR_INVALID_CONNECTION, - "(%s) retrieving IP4 configuration failed: invalid gateway address %s%s%s", + "(%s) retrieving IP4 configuration failed: invalid gateway address \"%s\"", nm_modem_get_uid (NM_MODEM (self)), - NM_PRINT_FMT_QUOTE_STRING (gw_string)); + gw_string); goto out; } @@ -919,26 +924,20 @@ static_stage3_ip4_done (NMModemBroadband *self) _LOGI (" address %s/%d", address_string, address.plen); - if (gw) { - guint32 ip4_route_table, ip4_route_metric; - - nm_modem_get_route_parameters (NM_MODEM (self), - &ip4_route_table, - &ip4_route_metric, - NULL, - NULL); - { - const NMPlatformIP4Route r = { - .rt_source = NM_IP_CONFIG_SOURCE_WWAN, - .gateway = gw, - .table_coerced = nm_platform_route_table_coerce (ip4_route_table), - .metric = ip4_route_metric, - }; - _LOGI (" gateway %s", gw_string); - nm_ip4_config_add_route (config, &r, NULL); - } - } + nm_modem_get_route_parameters (NM_MODEM (self), + &ip4_route_table, + &ip4_route_metric, + NULL, + NULL); + r = &(NMPlatformIP4Route) { + .rt_source = NM_IP_CONFIG_SOURCE_WWAN, + .gateway = gw, + .table_coerced = nm_platform_route_table_coerce (ip4_route_table), + .metric = ip4_route_metric, + }; + nm_ip4_config_add_route (config, r, NULL); + _LOGI (" gateway %s", gw_string); /* DNS servers */ dns = mm_bearer_ip_config_get_dns (self->_priv.ipv4_config); @@ -989,6 +988,7 @@ stage3_ip6_done (NMModemBroadband *self) g_assert (self->_priv.ipv6_config); + self->_priv.idle_id_ip6 = 0; memset (&address, 0, sizeof (address)); ip_method = get_bearer_ip_method (self->_priv.ipv6_config); diff --git a/src/devices/wwan/nm-modem.c b/src/devices/wwan/nm-modem.c index 1c32791f..010a2b60 100644 --- a/src/devices/wwan/nm-modem.c +++ b/src/devices/wwan/nm-modem.c @@ -685,9 +685,8 @@ nm_modem_stage3_ip4_config_start (NMModem *self, return NM_ACT_STAGE_RETURN_SUCCESS; if (strcmp (method, NM_SETTING_IP4_CONFIG_METHOD_AUTO) != 0) { - _LOGW ("unhandled WWAN IPv4 method '%s'; will fail", - method); - NM_SET_OUT (out_failure_reason, NM_DEVICE_STATE_REASON_IP_CONFIG_UNAVAILABLE); + _LOGE ("unhandled WWAN IPv4 method '%s'; will fail", method); + NM_SET_OUT (out_failure_reason, NM_DEVICE_STATE_REASON_IP_METHOD_UNSUPPORTED); return NM_ACT_STAGE_RETURN_FAILURE; } |