diff options
| -rw-r--r-- | services/core/java/com/android/server/connectivity/tethering/OffloadHardwareInterface.java | 45 |
1 files changed, 37 insertions, 8 deletions
diff --git a/services/core/java/com/android/server/connectivity/tethering/OffloadHardwareInterface.java b/services/core/java/com/android/server/connectivity/tethering/OffloadHardwareInterface.java index 1fc16841e355..09fd96b4966e 100644 --- a/services/core/java/com/android/server/connectivity/tethering/OffloadHardwareInterface.java +++ b/services/core/java/com/android/server/connectivity/tethering/OffloadHardwareInterface.java @@ -76,6 +76,10 @@ public class OffloadHardwareInterface { } } + final String logmsg = String.format("initOffloadControl(%s)", + (controlCb == null) ? "null" + : "0x" + Integer.toHexString(System.identityHashCode(controlCb))); + mTetheringOffloadCallback = new TetheringOffloadCallback(mHandler, mControlCallback); final CbResults results = new CbResults(); try { @@ -86,11 +90,11 @@ public class OffloadHardwareInterface { results.errMsg = errMsg; }); } catch (RemoteException e) { - mLog.e("failed to initOffload: " + e); + record(logmsg, e); return false; } - if (!results.success) mLog.e("initOffload failed: " + results.errMsg); + record(logmsg, results); return results.success; } @@ -108,14 +112,18 @@ public class OffloadHardwareInterface { mOffloadControl = null; mTetheringOffloadCallback = null; mControlCallback = null; + mLog.log("stopOffloadControl()"); } public boolean setUpstreamParameters( String iface, String v4addr, String v4gateway, ArrayList<String> v6gws) { - iface = iface != null ? iface : NO_INTERFACE_NAME; - v4addr = v4addr != null ? v4addr : NO_IPV4_ADDRESS; - v4gateway = v4gateway != null ? v4gateway : NO_IPV4_GATEWAY; - v6gws = v6gws != null ? v6gws : new ArrayList<>(); + iface = (iface != null) ? iface : NO_INTERFACE_NAME; + v4addr = (v4addr != null) ? v4addr : NO_IPV4_ADDRESS; + v4gateway = (v4gateway != null) ? v4gateway : NO_IPV4_GATEWAY; + v6gws = (v6gws != null) ? v6gws : new ArrayList<>(); + + final String logmsg = String.format("setUpstreamParameters(%s, %s, %s, [%s])", + iface, v4addr, v4gateway, String.join(",", v6gws)); final CbResults results = new CbResults(); try { @@ -126,14 +134,27 @@ public class OffloadHardwareInterface { results.errMsg = errMsg; }); } catch (RemoteException e) { - mLog.e("failed to setUpstreamParameters: " + e); + record(logmsg, e); return false; } - if (!results.success) mLog.e("setUpstreamParameters failed: " + results.errMsg); + record(logmsg, results); return results.success; } + private void record(String msg, Throwable t) { + mLog.e(msg + " -> exception: " + t); + } + + private void record(String msg, CbResults results) { + final String logmsg = msg + " -> " + results; + if (!results.success) { + mLog.e(logmsg); + } else { + mLog.log(logmsg); + } + } + private static class TetheringOffloadCallback extends ITetheringOffloadCallback.Stub { public final Handler handler; public final ControlCallback controlCb; @@ -162,5 +183,13 @@ public class OffloadHardwareInterface { private static class CbResults { boolean success; String errMsg; + + public String toString() { + if (success) { + return "ok"; + } else { + return "fail: " + errMsg; + } + } } } |