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

Commit f9c9b71c authored by Remi NGUYEN VAN's avatar Remi NGUYEN VAN
Browse files

Revert "Revert "Fix sll_protocol in DhcpClient packet socket""

Fix sll_protocol in DhcpClient packet socket

The broadcast socket address was created with a deprecated API that does
not set sll_protocol. This causes packets to be filtered incorrectly in
packet capture, typically with tcpdump.

This change only affects device with API > Q, since Q does not have the
proper API to set the protocol.

Also includes fixing the build path that was referencing apishim/current
(which does not exist) instead of apishim/30 (the correct directory).
SocketUtilsShim can be used on the system_current target with that fix.

See change: I07887b82e0e32aadb0cbb9f930f2b2fa3e277ca9

Bug: 133196453
Test: manual; on AOSP with the new build, packet capture has the right
      protocol. When installed on a Q release build, behavior is
      unchanged.

This reverts commit 5ad0944d.

Reason for revert:
Roll forward the previous change, as the build breakage has been
addressed. The stable build target is now used to build the
NetworkStack mainline module, which allows this change to be merged.

Change-Id: Ie933050ef269ce2159f3f44ac4db1f9aae134faf
parent 5ad0944d
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -59,7 +59,7 @@ filegroup {
    srcs: [
        "apishim/common/**/*.java",
        "apishim/29/**/*.java",
        "apishim/current/**/*.java",
        "apishim/30/**/*.java",
        ":net-module-utils-srcs",
    ],
}
+1 −2
Original line number Diff line number Diff line
@@ -44,7 +44,6 @@ public class SocketUtilsShimImpl
    @Override
    public SocketAddress makePacketSocketAddress(
            int protocol, int ifIndex, @NonNull byte[] hwAddr) {
        // TODO: use new API (which takes protocol, ifIndex, hwAddr) once implemented
        return SocketUtils.makePacketSocketAddress(ifIndex, hwAddr);
        return SocketUtils.makePacketSocketAddress(protocol, ifIndex, hwAddr);
    }
}
+3 −1
Original line number Diff line number Diff line
@@ -82,6 +82,7 @@ import com.android.internal.util.StateMachine;
import com.android.internal.util.TrafficStatsConstants;
import com.android.internal.util.WakeupMessage;
import com.android.networkstack.R;
import com.android.networkstack.apishim.SocketUtilsShimImpl;

import java.io.FileDescriptor;
import java.io.IOException;
@@ -389,7 +390,8 @@ public class DhcpClient extends StateMachine {
        }

        mHwAddr = mIface.macAddr.toByteArray();
        mInterfaceBroadcastAddr = makePacketSocketAddress(mIface.index, DhcpPacket.ETHER_BROADCAST);
        mInterfaceBroadcastAddr = SocketUtilsShimImpl.newInstance().makePacketSocketAddress(
                ETH_P_IP, mIface.index, DhcpPacket.ETHER_BROADCAST);
        return true;
    }