diff options
author | Aleksander Morgado <aleksander@aleksander.es> | 2015-01-24 18:05:41 +0100 |
---|---|---|
committer | Aleksander Morgado <aleksander@aleksander.es> | 2015-01-24 18:05:41 +0100 |
commit | 1e62589cb160607afa490b716f253de357b95802 (patch) | |
tree | 57fd051362a2fda2f1fec29994a03abfb20a7b68 /src/mm-bearer-qmi.c | |
parent | 67392272271c9ea455f1f333289491c9b726b209 (diff) |
bearer-qmi: even if we request DHCP in the bearer, expose available IPv4 config
Same as we do in IPv6. Note that NM won't use it if DHCP is requested.
Diffstat (limited to 'src/mm-bearer-qmi.c')
-rw-r--r-- | src/mm-bearer-qmi.c | 74 |
1 files changed, 37 insertions, 37 deletions
diff --git a/src/mm-bearer-qmi.c b/src/mm-bearer-qmi.c index 95ab4f79..51abb305 100644 --- a/src/mm-bearer-qmi.c +++ b/src/mm-bearer-qmi.c @@ -303,50 +303,50 @@ get_ipv4_config (MMBearerQmi *self, config = mm_bearer_ip_config_new (); if (self->priv->force_dhcp) + /* Force DHCP, but still set the static IPv4 config details if we get them */ mm_bearer_ip_config_set_method (config, MM_BEARER_IP_METHOD_DHCP); - else { - mm_bearer_ip_config_set_method (config, MM_BEARER_IP_METHOD_STATIC); + else + mm_bearer_ip_config_set_method (config, MM_BEARER_IP_METHOD_STATIC); - /* IPv4 address */ - qmi_inet4_ntop (addr, buf, sizeof (buf)); - mm_bearer_ip_config_set_address (config, buf); - mm_bearer_ip_config_set_prefix (config, prefix); - mm_dbg (" Address: %s/%d", buf, prefix); - - /* IPv4 gateway address */ - if (qmi_message_wds_get_current_settings_output_get_ipv4_gateway_address (output, &addr, &error)) { - qmi_inet4_ntop (addr, buf, sizeof (buf)); - mm_bearer_ip_config_set_gateway (config, buf); - mm_dbg (" Gateway: %s", buf); - } else { - mm_dbg (" Gateway: failed (%s)", error->message); - g_clear_error (&error); - } + /* IPv4 address */ + qmi_inet4_ntop (addr, buf, sizeof (buf)); + mm_bearer_ip_config_set_address (config, buf); + mm_bearer_ip_config_set_prefix (config, prefix); + mm_dbg (" Address: %s/%d", buf, prefix); - /* IPv4 DNS #1 */ - if (qmi_message_wds_get_current_settings_output_get_primary_ipv4_dns_address (output, &addr, &error)) { - qmi_inet4_ntop (addr, buf, sizeof (buf)); - dns[dns_idx++] = buf; - mm_dbg (" DNS #1: %s", buf); - } else { - mm_dbg (" DNS #1: failed (%s)", error->message); - g_clear_error (&error); - } + /* IPv4 gateway address */ + if (qmi_message_wds_get_current_settings_output_get_ipv4_gateway_address (output, &addr, &error)) { + qmi_inet4_ntop (addr, buf, sizeof (buf)); + mm_bearer_ip_config_set_gateway (config, buf); + mm_dbg (" Gateway: %s", buf); + } else { + mm_dbg (" Gateway: failed (%s)", error->message); + g_clear_error (&error); + } - /* IPv6 DNS #2 */ - if (qmi_message_wds_get_current_settings_output_get_secondary_ipv4_dns_address (output, &addr, &error)) { - qmi_inet4_ntop (addr, buf2, sizeof (buf2)); - dns[dns_idx++] = buf2; - mm_dbg (" DNS #2: %s", buf2); - } else { - mm_dbg (" DNS #2: failed (%s)", error->message); - g_clear_error (&error); - } + /* IPv4 DNS #1 */ + if (qmi_message_wds_get_current_settings_output_get_primary_ipv4_dns_address (output, &addr, &error)) { + qmi_inet4_ntop (addr, buf, sizeof (buf)); + dns[dns_idx++] = buf; + mm_dbg (" DNS #1: %s", buf); + } else { + mm_dbg (" DNS #1: failed (%s)", error->message); + g_clear_error (&error); + } - if (dns_idx > 0) - mm_bearer_ip_config_set_dns (config, (const gchar **) &dns); + /* IPv4 DNS #2 */ + if (qmi_message_wds_get_current_settings_output_get_secondary_ipv4_dns_address (output, &addr, &error)) { + qmi_inet4_ntop (addr, buf2, sizeof (buf2)); + dns[dns_idx++] = buf2; + mm_dbg (" DNS #2: %s", buf2); + } else { + mm_dbg (" DNS #2: failed (%s)", error->message); + g_clear_error (&error); } + if (dns_idx > 0) + mm_bearer_ip_config_set_dns (config, (const gchar **) &dns); + if (mtu) { mm_bearer_ip_config_set_mtu (config, mtu); mm_dbg (" MTU: %d", mtu); |