Loading services/core/java/com/android/server/connectivity/Tethering.java +6 −6 Original line number Diff line number Diff line Loading @@ -1579,14 +1579,14 @@ public class Tethering extends BaseNetworkObserver implements IControlsTethering pw.println("Tethering:"); pw.increaseIndent(); pw.println("Configuration:"); pw.increaseIndent(); final TetheringConfiguration cfg = mConfig; pw.print("preferredUpstreamIfaceTypes:"); synchronized (mPublicSync) { for (Integer netType : cfg.preferredUpstreamIfaceTypes) { pw.print(" " + ConnectivityManager.getNetworkTypeName(netType)); } pw.println(); cfg.dump(pw); pw.decreaseIndent(); synchronized (mPublicSync) { pw.println("Tether state:"); pw.increaseIndent(); for (int i = 0; i < mTetherStates.size(); i++) { Loading services/core/java/com/android/server/connectivity/tethering/TetheringConfiguration.java +41 −0 Original line number Diff line number Diff line Loading @@ -22,12 +22,15 @@ import static android.net.ConnectivityManager.TYPE_MOBILE_HIPRI; import android.content.Context; import android.content.res.Resources; import android.net.ConnectivityManager; import android.telephony.TelephonyManager; import android.util.Log; import java.io.PrintWriter; import java.util.ArrayList; import java.util.Arrays; import java.util.Collection; import java.util.StringJoiner; /** Loading Loading @@ -97,6 +100,44 @@ public class TetheringConfiguration { return matchesDownstreamRegexs(iface, tetherableBluetoothRegexs); } public void dump(PrintWriter pw) { dumpStringArray(pw, "tetherableUsbRegexs", tetherableUsbRegexs); dumpStringArray(pw, "tetherableWifiRegexs", tetherableWifiRegexs); dumpStringArray(pw, "tetherableBluetoothRegexs", tetherableBluetoothRegexs); pw.print("isDunRequired: "); pw.println(isDunRequired); String[] upstreamTypes = null; if (preferredUpstreamIfaceTypes != null) { upstreamTypes = new String[preferredUpstreamIfaceTypes.size()]; int i = 0; for (Integer netType : preferredUpstreamIfaceTypes) { upstreamTypes[i] = ConnectivityManager.getNetworkTypeName(netType); i++; } } dumpStringArray(pw, "preferredUpstreamIfaceTypes", upstreamTypes); dumpStringArray(pw, "dhcpRanges", dhcpRanges); dumpStringArray(pw, "defaultIPv4DNS", defaultIPv4DNS); } private static void dumpStringArray(PrintWriter pw, String label, String[] values) { pw.print(label); pw.print(": "); if (values != null) { final StringJoiner sj = new StringJoiner(", ", "[", "]"); for (String value : values) { sj.add(value); } pw.print(sj.toString()); } else { pw.print("null"); } pw.println(); } private static boolean checkDunRequired(Context ctx) { final TelephonyManager tm = ctx.getSystemService(TelephonyManager.class); final int secureSetting = Loading Loading
services/core/java/com/android/server/connectivity/Tethering.java +6 −6 Original line number Diff line number Diff line Loading @@ -1579,14 +1579,14 @@ public class Tethering extends BaseNetworkObserver implements IControlsTethering pw.println("Tethering:"); pw.increaseIndent(); pw.println("Configuration:"); pw.increaseIndent(); final TetheringConfiguration cfg = mConfig; pw.print("preferredUpstreamIfaceTypes:"); synchronized (mPublicSync) { for (Integer netType : cfg.preferredUpstreamIfaceTypes) { pw.print(" " + ConnectivityManager.getNetworkTypeName(netType)); } pw.println(); cfg.dump(pw); pw.decreaseIndent(); synchronized (mPublicSync) { pw.println("Tether state:"); pw.increaseIndent(); for (int i = 0; i < mTetherStates.size(); i++) { Loading
services/core/java/com/android/server/connectivity/tethering/TetheringConfiguration.java +41 −0 Original line number Diff line number Diff line Loading @@ -22,12 +22,15 @@ import static android.net.ConnectivityManager.TYPE_MOBILE_HIPRI; import android.content.Context; import android.content.res.Resources; import android.net.ConnectivityManager; import android.telephony.TelephonyManager; import android.util.Log; import java.io.PrintWriter; import java.util.ArrayList; import java.util.Arrays; import java.util.Collection; import java.util.StringJoiner; /** Loading Loading @@ -97,6 +100,44 @@ public class TetheringConfiguration { return matchesDownstreamRegexs(iface, tetherableBluetoothRegexs); } public void dump(PrintWriter pw) { dumpStringArray(pw, "tetherableUsbRegexs", tetherableUsbRegexs); dumpStringArray(pw, "tetherableWifiRegexs", tetherableWifiRegexs); dumpStringArray(pw, "tetherableBluetoothRegexs", tetherableBluetoothRegexs); pw.print("isDunRequired: "); pw.println(isDunRequired); String[] upstreamTypes = null; if (preferredUpstreamIfaceTypes != null) { upstreamTypes = new String[preferredUpstreamIfaceTypes.size()]; int i = 0; for (Integer netType : preferredUpstreamIfaceTypes) { upstreamTypes[i] = ConnectivityManager.getNetworkTypeName(netType); i++; } } dumpStringArray(pw, "preferredUpstreamIfaceTypes", upstreamTypes); dumpStringArray(pw, "dhcpRanges", dhcpRanges); dumpStringArray(pw, "defaultIPv4DNS", defaultIPv4DNS); } private static void dumpStringArray(PrintWriter pw, String label, String[] values) { pw.print(label); pw.print(": "); if (values != null) { final StringJoiner sj = new StringJoiner(", ", "[", "]"); for (String value : values) { sj.add(value); } pw.print(sj.toString()); } else { pw.print("null"); } pw.println(); } private static boolean checkDunRequired(Context ctx) { final TelephonyManager tm = ctx.getSystemService(TelephonyManager.class); final int secureSetting = Loading