blob: 4e6bbcb76b4cc30e7c2873b2f54ea2f35732663e [file] [log] [blame]
Jackeaglea3ae16b2018-12-04 11:30:49 -05001From 0bd942753da9a6c8d7207afb1e0354a9873ddb69 Mon Sep 17 00:00:00 2001
Jon West013ef582018-08-21 20:45:26 -04002From: Pierre-Hugues Husson <phh@phh.me>
3Date: Thu, 16 Aug 2018 22:12:46 +0200
4Subject: [PATCH 1/2] Add route to gateway on null netmask
5
6Galaxy S9 returns empty prefix
7
8Change-Id: I8133da8e8f5203666684100009ba658528a02e94
9---
Jackeaglea3ae16b2018-12-04 11:30:49 -050010 .../dataconnection/DataConnection.java | 17 +++++++++++++++++
Jon West013ef582018-08-21 20:45:26 -040011 1 file changed, 17 insertions(+)
12
13diff --git a/src/java/com/android/internal/telephony/dataconnection/DataConnection.java b/src/java/com/android/internal/telephony/dataconnection/DataConnection.java
Jackeaglea3ae16b2018-12-04 11:30:49 -050014index 0696aa931..11947a5af 100644
Jon West013ef582018-08-21 20:45:26 -040015--- a/src/java/com/android/internal/telephony/dataconnection/DataConnection.java
16+++ b/src/java/com/android/internal/telephony/dataconnection/DataConnection.java
17@@ -24,6 +24,7 @@ import android.content.Context;
18 import android.net.ConnectivityManager;
19 import android.net.ConnectivityManager.PacketKeepalive;
20 import android.net.KeepalivePacketData;
21+import android.net.IpPrefix;
22 import android.net.LinkAddress;
23 import android.net.LinkProperties;
24 import android.net.NetworkAgent;
25@@ -1127,6 +1128,22 @@ public class DataConnection extends StateMachine {
26 }
27
28 for (InetAddress gateway : response.getGateways()) {
29+ if(response.getAddresses().size()>0) {
30+ //TODO:
31+ // - IPv6
32+ // - Multiple addresses
33+ // - Check for non-trivial prefix length
34+ LinkAddress la = response.getAddresses().get(0);
35+ if(la.getNetworkPrefixLength() == 32 &&
36+ gateway instanceof java.net.Inet4Address) {
37+ if(!gateway.isAnyLocalAddress()) {
38+ linkProperties.addRoute(new RouteInfo(
39+ new IpPrefix(gateway, 32),
40+ InetAddress.getByName("0.0.0.0"),
41+ response.getIfname()));
42+ }
43+ }
44+ }
45 // Allow 0.0.0.0 or :: as a gateway;
46 // this indicates a point-to-point interface.
47 linkProperties.addRoute(new RouteInfo(gateway));
48--
Jackeaglea3ae16b2018-12-04 11:30:49 -0500492.17.1
Jon West013ef582018-08-21 20:45:26 -040050