Fill the linkproperties for INACTIVE PDN am: a8bcade7f7 am: f1305df6b7 am: aba4ed2caa
Original change: https://android-review.googlesource.com/c/platform/packages/services/Iwlan/+/2116237
Change-Id: I56b808847e9105fab4bc8e978bd63ea1e06108f9
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
diff --git a/src/com/google/android/iwlan/IwlanDataService.java b/src/com/google/android/iwlan/IwlanDataService.java
index 23368dc..4811bdd 100644
--- a/src/com/google/android/iwlan/IwlanDataService.java
+++ b/src/com/google/android/iwlan/IwlanDataService.java
@@ -558,15 +558,22 @@
.setProtocolType(tunnelState.getProtocolType())
.setCause(DataFailCause.NONE);
- if (tunnelState.getState() != TunnelState.TUNNEL_UP) {
- // no need to fill additional params
- return responseBuilder.setLinkStatus(DataCallResponse.LINK_STATUS_INACTIVE).build();
+ responseBuilder.setLinkStatus(DataCallResponse.LINK_STATUS_INACTIVE);
+ int state = tunnelState.getState();
+
+ if (state == TunnelState.TUNNEL_UP) {
+ responseBuilder.setLinkStatus(DataCallResponse.LINK_STATUS_ACTIVE);
+ }
+
+ TunnelLinkProperties tunnelLinkProperties = tunnelState.getTunnelLinkProperties();
+ if (tunnelLinkProperties == null) {
+ Log.d(TAG, "PDN with empty linkproperties. TunnelState : " + state);
+ return responseBuilder.build();
}
// fill wildcard address for gatewayList (used by DataConnection to add routes)
List<InetAddress> gatewayList = new ArrayList<>();
- List<LinkAddress> linkAddrList =
- tunnelState.getTunnelLinkProperties().internalAddresses();
+ List<LinkAddress> linkAddrList = tunnelLinkProperties.internalAddresses();
if (linkAddrList.stream().anyMatch(t -> t.isIpv4())) {
try {
gatewayList.add(Inet4Address.getByName("0.0.0.0"));
@@ -582,18 +589,16 @@
}
}
- if (tunnelState.getTunnelLinkProperties().sliceInfo().isPresent()) {
- responseBuilder.setSliceInfo(
- tunnelState.getTunnelLinkProperties().sliceInfo().get());
+ if (tunnelLinkProperties.sliceInfo().isPresent()) {
+ responseBuilder.setSliceInfo(tunnelLinkProperties.sliceInfo().get());
}
return responseBuilder
.setAddresses(linkAddrList)
- .setDnsAddresses(tunnelState.getTunnelLinkProperties().dnsAddresses())
- .setPcscfAddresses(tunnelState.getTunnelLinkProperties().pcscfAddresses())
- .setInterfaceName(tunnelState.getTunnelLinkProperties().ifaceName())
+ .setDnsAddresses(tunnelLinkProperties.dnsAddresses())
+ .setPcscfAddresses(tunnelLinkProperties.pcscfAddresses())
+ .setInterfaceName(tunnelLinkProperties.ifaceName())
.setGatewayAddresses(gatewayList)
- .setLinkStatus(DataCallResponse.LINK_STATUS_ACTIVE)
.setMtu(tunnelState.getLinkMtu())
.setMtuV4(tunnelState.getLinkMtu())
.setMtuV6(tunnelState.getLinkMtu())