diff -Nru network-manager-0.9.8.8/debian/changelog network-manager-0.9.8.8/debian/changelog --- network-manager-0.9.8.8/debian/changelog 2015-04-28 19:11:22.000000000 +0800 +++ network-manager-0.9.8.8/debian/changelog 2015-10-01 14:35:11.000000000 +0800 @@ -1,3 +1,10 @@ +network-manager (0.9.8.8-0ubuntu7.2) trusty-proposed; urgency=medium + + * Use the gateway from ModemManager. (LP: #1441095) + - use-the-gateway-from-ModemManager.patch + + -- Shih-Yuan Lee (FourDollars) Mon, 21 Sep 2015 16:46:27 +0800 + network-manager (0.9.8.8-0ubuntu7.1) trusty-security; urgency=medium * SECURITY UPDATE: directory traversal issue resulting in connection diff -Nru network-manager-0.9.8.8/debian/patches/series network-manager-0.9.8.8/debian/patches/series --- network-manager-0.9.8.8/debian/patches/series 2015-04-28 19:11:18.000000000 +0800 +++ network-manager-0.9.8.8/debian/patches/series 2015-09-21 16:59:35.000000000 +0800 @@ -37,3 +37,4 @@ connectivity_check_default_interval.patch ignore_rfkill_if_urfkill_is_present.patch CVE-2015-1322.patch +use-the-gateway-from-ModemManager.patch diff -Nru network-manager-0.9.8.8/debian/patches/use-the-gateway-from-ModemManager.patch network-manager-0.9.8.8/debian/patches/use-the-gateway-from-ModemManager.patch --- network-manager-0.9.8.8/debian/patches/use-the-gateway-from-ModemManager.patch 1970-01-01 08:00:00.000000000 +0800 +++ network-manager-0.9.8.8/debian/patches/use-the-gateway-from-ModemManager.patch 2015-10-01 15:19:53.000000000 +0800 @@ -0,0 +1,77 @@ +Description: Use gateway returned from ModemManager + If we get a gateway, use it. +Author: Dan Williams +Origin: upstream, http://cgit.freedesktop.org/NetworkManager/NetworkManager/commit/?id=19089fb9609c5a62a3cfe5ff81e3d3d93beabeb3 +Bug-Ubuntu: https://bugs.launchpad.net/ubuntu/+source/modemmanager/+bug/1441095 +Forwarded: not-needed +Reviewed-by: Shih-Yuan Lee (FourDollars) +Last-Update: 2015-10-01 +--- +This patch header follows DEP-3: http://dep.debian.net/deps/dep3/ +Index: network-manager-0.9.8.8/src/modem-manager/nm-modem-broadband.c +=================================================================== +--- network-manager-0.9.8.8.orig/src/modem-manager/nm-modem-broadband.c 2015-09-21 16:49:29.286240444 +0800 ++++ network-manager-0.9.8.8/src/modem-manager/nm-modem-broadband.c 2015-09-21 17:52:44.802189912 +0800 +@@ -684,14 +684,16 @@ + ip_string_to_network_address (const gchar *str, + guint32 *out) + { +- struct in_addr addr; ++ guint32 addr = 0; ++ gboolean success = FALSE; + +- /* IP address */ +- if (inet_pton (AF_INET, str, &addr) <= 0) +- return FALSE; ++ if (!str || inet_pton (AF_INET, str, &addr) != 1) ++ addr = 0; ++ else ++ success = TRUE; + +- *out = (guint32)addr.s_addr; +- return TRUE; ++ *out = (guint32)addr; ++ return success; + } + + static gboolean +@@ -700,7 +702,9 @@ + GError *error = NULL; + NMIP4Config *config = NULL; + const gchar *address_string; ++ const gchar *gw_string; + guint32 address_network; ++ guint32 gw; + NMIP4Address *addr; + const gchar **dns; + guint i; +@@ -722,17 +726,25 @@ + goto out; + } + ++ /* Missing gateway not a hard failure */ ++ gw_string = mm_bearer_ip_config_get_gateway (self->priv->ipv4_config); ++ ip_string_to_network_address (gw_string, &gw); ++ + config = nm_ip4_config_new (); + addr = nm_ip4_address_new (); + nm_ip4_address_set_address (addr, address_network); + prefix = mm_bearer_ip_config_get_prefix (self->priv->ipv4_config); + if (prefix > 0) + nm_ip4_address_set_prefix (addr, prefix); +- nm_ip4_config_take_address (config, addr); + +- nm_log_info (LOGD_MB, " address %s/%d", +- mm_bearer_ip_config_get_address (self->priv->ipv4_config), +- mm_bearer_ip_config_get_prefix (self->priv->ipv4_config)); ++ nm_log_info (LOGD_MB, " address %s/%d", address_string, prefix); ++ ++ if (gw) { ++ nm_ip4_address_set_gateway (addr, gw); ++ nm_log_info (LOGD_MB, " gateway %s", gw_string); ++ } ++ ++ nm_ip4_config_take_address (config, addr); + + /* DNS servers */ + dns = mm_bearer_ip_config_get_dns (self->priv->ipv4_config);