summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorAleksander Morgado <aleksander@aleksander.es>2015-01-24 18:05:41 +0100
committerAleksander Morgado <aleksander@aleksander.es>2015-01-24 18:05:41 +0100
commit1e62589cb160607afa490b716f253de357b95802 (patch)
tree57fd051362a2fda2f1fec29994a03abfb20a7b68 /src
parent67392272271c9ea455f1f333289491c9b726b209 (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')
-rw-r--r--src/mm-bearer-qmi.c74
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);