diff options
author | Xiao Ma <xiaom@google.com> | 2020-02-20 01:57:17 +0000 |
---|---|---|
committer | Gerrit Code Review <noreply-gerritcodereview@google.com> | 2020-02-20 01:57:17 +0000 |
commit | e1aa745f9fd8deace324c48957c7f4ed9ac1d35c (patch) | |
tree | 417a16be9e35f449a86e5738ba113a458e68228c /src/android/net/ip/IpClient.java | |
parent | 13fc7deed1f1e0977c65b87561743b51d22053e2 (diff) | |
parent | 2a7389299668893d0532838af5f9210f0884604a (diff) |
Merge "Add captive portal info to DhcpClient output"
Diffstat (limited to 'src/android/net/ip/IpClient.java')
-rw-r--r-- | src/android/net/ip/IpClient.java | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/src/android/net/ip/IpClient.java b/src/android/net/ip/IpClient.java index 47f955a..173f136 100644 --- a/src/android/net/ip/IpClient.java +++ b/src/android/net/ip/IpClient.java @@ -36,6 +36,7 @@ import android.net.ProvisioningConfigurationParcelable; import android.net.ProxyInfo; import android.net.RouteInfo; import android.net.TcpKeepalivePacketDataParcelable; +import android.net.Uri; import android.net.apf.ApfCapabilities; import android.net.apf.ApfFilter; import android.net.dhcp.DhcpClient; @@ -57,6 +58,7 @@ import android.text.TextUtils; import android.util.LocalLog; import android.util.Log; import android.util.Pair; +import android.util.Patterns; import android.util.SparseArray; import androidx.annotation.NonNull; @@ -1192,6 +1194,15 @@ public class IpClient extends StateMachine { if (mDhcpResults.mtu != 0) { newLp.setMtu(mDhcpResults.mtu); } + + final String capportUrl = mDhcpResults.captivePortalApiUrl; + // Uri.parse does no syntax check; do a simple regex check to eliminate garbage. + // If the URL is still incorrect data fetching will fail later, which is fine. + if (capportUrl != null && Patterns.WEB_URL.matcher(capportUrl).matches()) { + NetworkInformationShimImpl.newInstance() + .setCaptivePortalApiUrl(newLp, Uri.parse(capportUrl)); + } + // TODO: also look at the IPv6 RA (netlink) for captive portal URL } // [4] Add in TCP buffer sizes and HTTP Proxy config, if available. |