Merge "[FUI03] No-op refactoring of VpnInfo"

This commit is contained in:
Treehugger Robot
2021-01-27 11:47:34 +00:00
committed by Gerrit Code Review
12 changed files with 48 additions and 44 deletions

View File

@@ -31,6 +31,7 @@ import android.net.NetworkRequest;
import android.net.NetworkState;
import android.net.ProxyInfo;
import android.net.UidRange;
import android.net.VpnInfo;
import android.net.QosSocketInfo;
import android.os.Bundle;
import android.os.IBinder;
@@ -43,7 +44,6 @@ import android.os.ResultReceiver;
import com.android.connectivity.aidl.INetworkAgent;
import com.android.internal.net.LegacyVpnInfo;
import com.android.internal.net.VpnConfig;
import com.android.internal.net.VpnInfo;
import com.android.internal.net.VpnProfile;
/**

View File

@@ -23,11 +23,11 @@ import android.net.NetworkState;
import android.net.NetworkStats;
import android.net.NetworkStatsHistory;
import android.net.NetworkTemplate;
import android.net.VpnInfo;
import android.net.netstats.provider.INetworkStatsProvider;
import android.net.netstats.provider.INetworkStatsProviderCallback;
import android.os.IBinder;
import android.os.Messenger;
import com.android.internal.net.VpnInfo;
/** {@hide} */
interface INetworkStatsService {

View File

@@ -14,6 +14,6 @@
* limitations under the License.
*/
package com.android.internal.net;
package android.net;
parcelable VpnInfo;

View File

@@ -11,11 +11,13 @@
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License
* limitations under the License.
*/
package com.android.internal.net;
package android.net;
import android.annotation.NonNull;
import android.annotation.Nullable;
import android.os.Parcel;
import android.os.Parcelable;
@@ -23,14 +25,28 @@ import java.util.Arrays;
/**
* A lightweight container used to carry information of the ongoing VPN.
* Internal use only..
* Internal use only.
*
* @hide
*/
public class VpnInfo implements Parcelable {
public int ownerUid;
public String vpnIface;
public String[] underlyingIfaces;
public final int ownerUid;
@Nullable
public final String vpnIface;
@Nullable
public final String[] underlyingIfaces;
public VpnInfo(int ownerUid, @Nullable String vpnIface, @Nullable String[] underlyingIfaces) {
this.ownerUid = ownerUid;
this.vpnIface = vpnIface;
this.underlyingIfaces = underlyingIfaces;
}
private VpnInfo(@NonNull Parcel in) {
this.ownerUid = in.readInt();
this.vpnIface = in.readString();
this.underlyingIfaces = in.createStringArray();
}
@Override
public String toString() {
@@ -47,22 +63,21 @@ public class VpnInfo implements Parcelable {
}
@Override
public void writeToParcel(Parcel dest, int flags) {
public void writeToParcel(@NonNull Parcel dest, int flags) {
dest.writeInt(ownerUid);
dest.writeString(vpnIface);
dest.writeStringArray(underlyingIfaces);
}
@NonNull
public static final Parcelable.Creator<VpnInfo> CREATOR = new Parcelable.Creator<VpnInfo>() {
@NonNull
@Override
public VpnInfo createFromParcel(Parcel source) {
VpnInfo info = new VpnInfo();
info.ownerUid = source.readInt();
info.vpnIface = source.readString();
info.underlyingIfaces = source.readStringArray();
return info;
public VpnInfo createFromParcel(@NonNull Parcel in) {
return new VpnInfo(in);
}
@NonNull
@Override
public VpnInfo[] newArray(int size) {
return new VpnInfo[size];

View File

@@ -133,6 +133,7 @@ import android.net.TetheringManager;
import android.net.UidRange;
import android.net.UidRangeParcel;
import android.net.Uri;
import android.net.VpnInfo;
import android.net.VpnManager;
import android.net.VpnService;
import android.net.metrics.INetdEventListener;
@@ -184,7 +185,6 @@ import com.android.internal.app.IBatteryStats;
import com.android.internal.logging.MetricsLogger;
import com.android.internal.net.LegacyVpnInfo;
import com.android.internal.net.VpnConfig;
import com.android.internal.net.VpnInfo;
import com.android.internal.net.VpnProfile;
import com.android.internal.util.ArrayUtils;
import com.android.internal.util.AsyncChannel;
@@ -4904,16 +4904,14 @@ public class ConnectivityService extends IConnectivityManager.Stub
if (interfaces.isEmpty()) return null;
VpnInfo info = new VpnInfo();
info.ownerUid = nai.networkCapabilities.getOwnerUid();
info.vpnIface = nai.linkProperties.getInterfaceName();
// Must be non-null or NetworkStatsService will crash.
// Cannot happen in production code because Vpn only registers the NetworkAgent after the
// tun or ipsec interface is created.
if (info.vpnIface == null) return null;
info.underlyingIfaces = interfaces.toArray(new String[0]);
if (nai.linkProperties.getInterfaceName() == null) return null;
return info;
return new VpnInfo(nai.networkCapabilities.getOwnerUid(),
nai.linkProperties.getInterfaceName(),
interfaces.toArray(new String[0]));
}
/**

View File

@@ -70,6 +70,7 @@ import android.net.NetworkRequest;
import android.net.RouteInfo;
import android.net.UidRange;
import android.net.UidRangeParcel;
import android.net.VpnInfo;
import android.net.VpnManager;
import android.net.VpnService;
import android.net.ipsec.ike.ChildSessionCallback;
@@ -109,7 +110,6 @@ import com.android.internal.annotations.VisibleForTesting;
import com.android.internal.messages.nano.SystemMessageProto.SystemMessage;
import com.android.internal.net.LegacyVpnInfo;
import com.android.internal.net.VpnConfig;
import com.android.internal.net.VpnInfo;
import com.android.internal.net.VpnProfile;
import com.android.server.DeviceIdleInternal;
import com.android.server.LocalServices;
@@ -1816,18 +1816,15 @@ public class Vpn {
}
/**
* This method should only be called by ConnectivityService because it doesn't
* have enough data to fill VpnInfo.primaryUnderlyingIface field.
* This method should not be called if underlying interfaces field is needed, because it doesn't
* have enough data to fill VpnInfo.underlyingIfaces field.
*/
public synchronized VpnInfo getVpnInfo() {
if (!isRunningLocked()) {
return null;
}
VpnInfo info = new VpnInfo();
info.ownerUid = mOwnerUID;
info.vpnIface = mInterface;
return info;
return new VpnInfo(mOwnerUID, mInterface, null);
}
public synchronized boolean appliesToUid(int uid) {

View File

@@ -27,6 +27,7 @@ import static com.android.server.NetworkManagementSocketTagger.kernelToTag;
import android.annotation.Nullable;
import android.net.INetd;
import android.net.NetworkStats;
import android.net.VpnInfo;
import android.net.util.NetdService;
import android.os.RemoteException;
import android.os.StrictMode;
@@ -34,7 +35,6 @@ import android.os.SystemClock;
import com.android.internal.annotations.GuardedBy;
import com.android.internal.annotations.VisibleForTesting;
import com.android.internal.net.VpnInfo;
import com.android.internal.util.ArrayUtils;
import com.android.internal.util.ProcFileReader;

View File

@@ -105,6 +105,7 @@ import android.net.NetworkStatsHistory;
import android.net.NetworkTemplate;
import android.net.TrafficStats;
import android.net.Uri;
import android.net.VpnInfo;
import android.net.netstats.provider.INetworkStatsProvider;
import android.net.netstats.provider.INetworkStatsProviderCallback;
import android.net.netstats.provider.NetworkStatsProvider;
@@ -143,7 +144,6 @@ import android.util.proto.ProtoOutputStream;
import com.android.internal.annotations.GuardedBy;
import com.android.internal.annotations.VisibleForTesting;
import com.android.internal.net.VpnInfo;
import com.android.internal.util.ArrayUtils;
import com.android.internal.util.DumpUtils;
import com.android.internal.util.FileRotator;

View File

@@ -201,6 +201,7 @@ import android.net.SocketKeepalive;
import android.net.UidRange;
import android.net.UidRangeParcel;
import android.net.Uri;
import android.net.VpnInfo;
import android.net.VpnManager;
import android.net.metrics.IpConnectivityLog;
import android.net.shared.NetworkMonitorUtils;
@@ -245,7 +246,6 @@ import androidx.test.runner.AndroidJUnit4;
import com.android.internal.app.IBatteryStats;
import com.android.internal.net.VpnConfig;
import com.android.internal.net.VpnInfo;
import com.android.internal.net.VpnProfile;
import com.android.internal.util.ArrayUtils;
import com.android.internal.util.WakeupMessage;
@@ -8323,8 +8323,7 @@ public class ConnectivityServiceTest {
assertVpnUidRangesUpdated(true, vpnRange, vpnOwnerUid);
mMockVpn.setVpnType(vpnType);
final VpnInfo vpnInfo = new VpnInfo();
vpnInfo.ownerUid = vpnOwnerUid;
final VpnInfo vpnInfo = new VpnInfo(vpnOwnerUid, null, null);
mMockVpn.setVpnInfo(vpnInfo);
}

View File

@@ -33,8 +33,7 @@ import static android.net.NetworkStats.TAG_NONE;
import static org.junit.Assert.assertEquals;
import android.net.NetworkStats;
import com.android.internal.net.VpnInfo;
import android.net.VpnInfo;
/** Superclass with utilities for NetworkStats(Service|Factory)Test */
abstract class NetworkStatsBaseTest {
@@ -113,10 +112,6 @@ abstract class NetworkStatsBaseTest {
}
static VpnInfo createVpnInfo(String vpnIface, String[] underlyingIfaces) {
VpnInfo info = new VpnInfo();
info.ownerUid = UID_VPN;
info.vpnIface = vpnIface;
info.underlyingIfaces = underlyingIfaces;
return info;
return new VpnInfo(UID_VPN, vpnIface, underlyingIfaces);
}
}

View File

@@ -36,13 +36,13 @@ import static org.junit.Assert.fail;
import android.content.res.Resources;
import android.net.NetworkStats;
import android.net.TrafficStats;
import android.net.VpnInfo;
import androidx.test.InstrumentationRegistry;
import androidx.test.filters.SmallTest;
import androidx.test.runner.AndroidJUnit4;
import com.android.frameworks.tests.net.R;
import com.android.internal.net.VpnInfo;
import libcore.io.IoUtils;
import libcore.io.Streams;

View File

@@ -86,6 +86,7 @@ import android.net.NetworkState;
import android.net.NetworkStats;
import android.net.NetworkStatsHistory;
import android.net.NetworkTemplate;
import android.net.VpnInfo;
import android.net.netstats.provider.INetworkStatsProviderCallback;
import android.os.ConditionVariable;
import android.os.Handler;
@@ -104,7 +105,6 @@ import androidx.test.InstrumentationRegistry;
import androidx.test.filters.SmallTest;
import androidx.test.runner.AndroidJUnit4;
import com.android.internal.net.VpnInfo;
import com.android.internal.util.ArrayUtils;
import com.android.internal.util.test.BroadcastInterceptingContext;
import com.android.server.net.NetworkStatsService.NetworkStatsSettings;