Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit af579eb5 authored by Erik Kline's avatar Erik Kline
Browse files

Clarify some IpManager/ApfFilter debugging output.

Test: as follows
    - built
    - flashed
    - booted
    - "runtest frameworks-net" passes
    - "adb shell dumpsys wifi ipmanager" shows updated output
Bug: 34793131
Change-Id: I6dec135b97343943efb421ef7b2e84c4751dd5ea
parent 3a8ad81a
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -46,7 +46,7 @@ public class ApfCapabilities {
    }

    public String toString() {
        return String.format("%s{version: %d, maxSize: %d format: %d}", getClass().getSimpleName(),
        return String.format("%s{version: %d, maxSize: %d, format: %d}", getClass().getSimpleName(),
                apfVersionSupported, maximumApfProgramSize, apfPacketFormat);
    }
}
+29 −10
Original line number Diff line number Diff line
@@ -524,7 +524,7 @@ public class IpManager extends StateMachine {
        try {
            mNwService.registerObserver(mNetlinkTracker);
        } catch (RemoteException e) {
            Log.e(mTag, "Couldn't register NetlinkTracker: " + e.toString());
            logError("Couldn't register NetlinkTracker: %s", e);
        }

        mMultinetworkPolicyTracker.start();
@@ -611,18 +611,35 @@ public class IpManager extends StateMachine {
            return;
        }

        // Thread-unsafe access to mApfFilter but just used for debugging.
        final ApfFilter apfFilter = mApfFilter;
        final ProvisioningConfiguration provisioningConfig = mConfiguration;
        final ApfCapabilities apfCapabilities = (provisioningConfig != null)
                ? provisioningConfig.mApfCapabilities : null;

        IndentingPrintWriter pw = new IndentingPrintWriter(writer, "  ");
        pw.println(mTag + " APF dump:");
        pw.increaseIndent();
        // Thread-unsafe access to mApfFilter but just used for debugging.
        ApfFilter apfFilter = mApfFilter;
        if (apfFilter != null) {
            apfFilter.dump(pw);
        } else {
            pw.println("No apf support");
            pw.print("No active ApfFilter; ");
            if (provisioningConfig == null) {
                pw.println("IpManager not yet started.");
            } else if (apfCapabilities == null || apfCapabilities.apfVersionSupported == 0) {
                pw.println("Hardware does not support APF.");
            } else {
                pw.println("ApfFilter not yet started, APF capabilities: " + apfCapabilities);
            }
        }
        pw.decreaseIndent();

        pw.println();
        pw.println(mTag + " current ProvisioningConfiguration:");
        pw.increaseIndent();
        pw.println(Objects.toString(provisioningConfig, "N/A"));
        pw.decreaseIndent();

        pw.println();
        pw.println(mTag + " StateMachine dump:");
        pw.increaseIndent();
@@ -684,7 +701,9 @@ public class IpManager extends StateMachine {

    // TODO: Migrate all Log.e(...) to logError(...).
    private void logError(String fmt, Object... args) {
        mLocalLog.log("ERROR " + String.format(fmt, args));
        final String msg = "ERROR " + String.format(fmt, args);
        Log.e(mTag, msg);
        mLocalLog.log(msg);
    }

    private void getNetworkInterface() {
@@ -692,7 +711,7 @@ public class IpManager extends StateMachine {
            mNetworkInterface = NetworkInterface.getByName(mInterfaceName);
        } catch (SocketException | NullPointerException e) {
            // TODO: throw new IllegalStateException.
            Log.e(mTag, "ALERT: Failed to get interface object: ", e);
            logError("Failed to get interface object: %s", e);
        }
    }

@@ -948,7 +967,7 @@ public class IpManager extends StateMachine {
            ifcg.setLinkAddress(new LinkAddress("0.0.0.0/0"));
            mNwService.setInterfaceConfig(mInterfaceName, ifcg);
        } catch (IllegalStateException | RemoteException e) {
            Log.e(mTag, "ALERT: Failed to clear IPv4 address on interface " + mInterfaceName, e);
            logError("Failed to clear IPv4 address on interface %s: %s", mInterfaceName, e);
        }
    }

@@ -1074,13 +1093,13 @@ public class IpManager extends StateMachine {
        try {
            mNwService.disableIpv6(mInterfaceName);
        } catch (Exception e) {
            Log.e(mTag, "Failed to disable IPv6" + e);
            logError("Failed to disable IPv6: %s", e);
        }

        try {
            mNwService.clearInterfaceAddresses(mInterfaceName);
        } catch (Exception e) {
            Log.e(mTag, "Failed to clear addresses " + e);
            logError("Failed to clear addresses: %s", e);
        }
    }

@@ -1404,7 +1423,7 @@ public class IpManager extends StateMachine {
                    if (setIPv4Address(ipAddress)) {
                        mDhcpClient.sendMessage(DhcpClient.EVENT_LINKADDRESS_CONFIGURED);
                    } else {
                        Log.e(mTag, "Failed to set IPv4 address!");
                        logError("Failed to set IPv4 address.");
                        dispatchCallback(ProvisioningChange.LOST_PROVISIONING,
                                new LinkProperties(mLinkProperties));
                        transitionTo(mStoppingState);
+2 −2
Original line number Diff line number Diff line
@@ -368,9 +368,9 @@ public class ConnectivityPacketSummary {

        byte[] bytes = new byte[ETHER_ADDR_LEN];
        mac.get(bytes, 0, bytes.length);
        Byte[] printableBytes = new Byte[bytes.length];
        Object[] printableBytes = new Object[bytes.length];
        int i = 0;
        for (byte b : bytes) printableBytes[i++] = b;
        for (byte b : bytes) printableBytes[i++] = new Byte(b);

        final String MAC48_FORMAT = "%02x:%02x:%02x:%02x:%02x:%02x";
        return String.format(MAC48_FORMAT, printableBytes);