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

Commit aa561db2 authored by Automerger Merge Worker's avatar Automerger Merge Worker Committed by Lorenzo Colitti
Browse files

Make IpClient populate the DHCP server address in LinkProperties

Bug: 134098566

Test:
lunch arm_aosp-userdebug
make -j32

Change-Id: Ide9610f9b17992eef83e1c42ac71b1b79c179f44
Merged-In: If86a6303671b03bb2ccf98de7e9d77020b013d2f
(cherry picked from commit 10d24321)
parent faac06e3
Loading
Loading
Loading
Loading
+8 −0
Original line number Diff line number Diff line
@@ -27,6 +27,8 @@ import androidx.annotation.VisibleForTesting;
import com.android.networkstack.apishim.CaptivePortalDataShim;
import com.android.networkstack.apishim.NetworkInformationShim;

import java.net.Inet4Address;

/**
 * Compatibility implementation of {@link NetworkInformationShim}.
 *
@@ -84,4 +86,10 @@ public class NetworkInformationShimImpl implements NetworkInformationShim {
    public LinkProperties makeSensitiveFieldsParcelingCopy(@NonNull final LinkProperties lp) {
        return new LinkProperties(lp);
    }

    @Override
    public void setDhcpServerAddress(@NonNull LinkProperties lp,
            @NonNull Inet4Address serverAddress) {
        // Not supported on this API level: no-op
    }
}
+8 −0
Original line number Diff line number Diff line
@@ -25,6 +25,8 @@ import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.annotation.VisibleForTesting;

import java.net.Inet4Address;

/**
 * Compatibility implementation of {@link NetworkInformationShim}.
 */
@@ -81,4 +83,10 @@ public class NetworkInformationShimImpl extends
    public LinkProperties makeSensitiveFieldsParcelingCopy(@NonNull final LinkProperties lp) {
        return lp.makeSensitiveFieldsParcelingCopy();
    }

    @Override
    public void setDhcpServerAddress(@NonNull LinkProperties lp,
            @NonNull Inet4Address serverAddress) {
        lp.setDhcpServerAddress(serverAddress);
    }
}
+10 −0
Original line number Diff line number Diff line
@@ -23,6 +23,8 @@ import android.net.Uri;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;

import java.net.Inet4Address;

/**
 * Compatibility interface for network info classes such as {@link LinkProperties} and
 * {@link NetworkCapabilities}.
@@ -56,4 +58,12 @@ public interface NetworkInformationShim {
     */
    @NonNull
    LinkProperties makeSensitiveFieldsParcelingCopy(@NonNull LinkProperties lp);

    /**
     * @see LinkProperties#setDhcpServerAddress()
     */
    @NonNull
    void setDhcpServerAddress(@NonNull LinkProperties lp,
            @NonNull Inet4Address serverAddress);

}
+5 −0
Original line number Diff line number Diff line
@@ -1195,6 +1195,10 @@ public class IpClient extends StateMachine {
                newLp.setMtu(mDhcpResults.mtu);
            }

            if (mDhcpResults.serverAddress != null) {
                mShim.setDhcpServerAddress(newLp, mDhcpResults.serverAddress);
            }

            final String capportUrl = mDhcpResults.captivePortalApiUrl;
            // Uri.parse does no syntax check; do a simple regex check to eliminate garbage.
            // If the URL is still incorrect data fetching will fail later, which is fine.
@@ -1272,6 +1276,7 @@ public class IpClient extends StateMachine {

        if (DBG) {
            Log.d(mTag, "onNewDhcpResults(" + Objects.toString(dhcpResults) + ")");
            Log.d(mTag, "handleIPv4Success newLp{" + newLp + "}");
        }
        mCallback.onNewDhcpResults(dhcpResults);
        maybeSaveNetworkToIpMemoryStore();