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

Commit 158c9a19 authored by Android Build Coastguard Worker's avatar Android Build Coastguard Worker
Browse files

Snap for 7734431 from 8b8a2155 to mainline-mediaprovider-release

Change-Id: I898e7c2282ecae698d95a3bfa69f787e1514fe78
parents c0658a4f 8b8a2155
Loading
Loading
Loading
Loading
+1 −2
Original line number Diff line number Diff line
@@ -40,8 +40,7 @@
    // We must specify at least one module here or the tests won't run. Use the same set as CTS
    // so in theory the infra would not need to reinstall/reboot devices to run both.
    {
      // TODO: add back tethering when it is updatable in this branch
      "name": "NetworkStackTests[CaptivePortalLoginGoogle.apk+NetworkStackGoogle.apk+com.google.android.resolv.apex]"
      "name": "NetworkStackTests[CaptivePortalLoginGoogle.apk+NetworkStackGoogle.apk+com.google.android.resolv.apex+com.google.android.tethering.apex]"
    }
  ],
  "mainline-postsubmit": [
+1 −1
Original line number Diff line number Diff line
@@ -19,7 +19,7 @@
    <string name="notification_channel_name_connected" msgid="1795068343200033922">"Godkendelse til loginportal"</string>
    <string name="notification_channel_description_connected" msgid="7239184168268014518">"De notifikationer, der vises, når enheden er blevet godkendt til et netværk via en loginportal"</string>
    <string name="notification_channel_name_network_venue_info" msgid="6526543187249265733">"Oplysninger om netværksplacering"</string>
    <string name="notification_channel_description_network_venue_info" msgid="5131499595382733605">"Notifikationer, der vises for at indikere, at netværket har en side med oplysninger om placeringen"</string>
    <string name="notification_channel_description_network_venue_info" msgid="5131499595382733605">"Notifikationer, der vises for at indikere, at netværket har en side med oplysninger om lokationen"</string>
    <string name="connected" msgid="4563643884927480998">"Der er oprettet forbindelse"</string>
    <string name="tap_for_info" msgid="6849746325626883711">"Der er oprettet forbindelse/tryk for at se website"</string>
    <string name="application_label" msgid="1322847171305285454">"Netværksadministrator"</string>
+1 −1
Original line number Diff line number Diff line
@@ -715,7 +715,7 @@ public class IpClient extends StateMachine {
                (ifaceUp) -> sendMessage(EVENT_NETLINK_LINKPROPERTIES_CHANGED, ifaceUp
                        ? ARG_LINKPROP_CHANGED_LINKSTATE_UP
                        : ARG_LINKPROP_CHANGED_LINKSTATE_DOWN),
                config, mLog) {
                config, mLog, mDependencies) {
            @Override
            public void onInterfaceAdded(String iface) {
                super.onInterfaceAdded(iface);
+40 −12
Original line number Diff line number Diff line
@@ -16,6 +16,7 @@

package android.net.ip;

import static android.net.util.NetworkStackUtils.IPCLIENT_PARSE_NETLINK_EVENTS_VERSION;
import static android.system.OsConstants.AF_INET6;

import static com.android.net.module.util.NetworkStackConstants.ICMPV6_ROUTER_ADVERTISEMENT;
@@ -37,6 +38,7 @@ import com.android.net.module.util.netlink.NduseroptMessage;
import com.android.net.module.util.netlink.NetlinkConstants;
import com.android.net.module.util.netlink.NetlinkMessage;
import com.android.net.module.util.netlink.StructNdOptPref64;
import com.android.net.module.util.netlink.StructNdOptRdnss;
import com.android.networkstack.apishim.NetworkInformationShimImpl;
import com.android.networkstack.apishim.common.NetworkInformationShim;
import com.android.server.NetworkObserver;
@@ -107,6 +109,7 @@ public class IpClientLinkObserver implements NetworkObserver {
        }
    }

    private final Context mContext;
    private final String mInterfaceName;
    private final Callback mCallback;
    private final LinkProperties mLinkProperties;
@@ -115,13 +118,15 @@ public class IpClientLinkObserver implements NetworkObserver {
    private final AlarmManager mAlarmManager;
    private final Configuration mConfig;
    private final Handler mHandler;
    private final IpClient.Dependencies mDependencies;

    private final MyNetlinkMonitor mNetlinkMonitor;

    private static final boolean DBG = false;

    public IpClientLinkObserver(Context context, Handler h, String iface, Callback callback,
            Configuration config, SharedLog log) {
            Configuration config, SharedLog log, IpClient.Dependencies deps) {
        mContext = context;
        mInterfaceName = iface;
        mTag = "NetlinkTracker/" + mInterfaceName;
        mCallback = callback;
@@ -134,6 +139,7 @@ public class IpClientLinkObserver implements NetworkObserver {
        mAlarmManager = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE);
        mNetlinkMonitor = new MyNetlinkMonitor(h, log, mTag);
        mHandler.post(mNetlinkMonitor::start);
        mDependencies = deps;
    }

    public void shutdown() {
@@ -153,6 +159,11 @@ public class IpClientLinkObserver implements NetworkObserver {
        }
    }

    private boolean isNetlinkEventParsingEnabled() {
        return mDependencies.isFeatureEnabled(mContext, IPCLIENT_PARSE_NETLINK_EVENTS_VERSION,
                false /* default value */);
    }

    @Override
    public void onInterfaceRemoved(String iface) {
        maybeLog("interfaceRemoved", iface);
@@ -246,8 +257,13 @@ public class IpClientLinkObserver implements NetworkObserver {

    @Override
    public void onInterfaceDnsServerInfo(String iface, long lifetime, String[] addresses) {
        if (mInterfaceName.equals(iface)) {
        if (isNetlinkEventParsingEnabled()) return;
        if (!mInterfaceName.equals(iface)) return;
        maybeLog("interfaceDnsServerInfo", Arrays.toString(addresses));
        updateInterfaceDnsServerInfo(lifetime, addresses);
    }

    private void updateInterfaceDnsServerInfo(long lifetime, final String[] addresses) {
        final boolean changed = mDnsServerRepository.addServers(lifetime, addresses);
        final boolean linkState;
        if (changed) {
@@ -258,7 +274,6 @@ public class IpClientLinkObserver implements NetworkObserver {
            mCallback.update(linkState);
        }
    }
    }

    /**
     * Returns a copy of this object's LinkProperties.
@@ -408,6 +423,15 @@ public class IpClientLinkObserver implements NetworkObserver {
            updatePref64(opt.prefix, now, expiry);
        }

        private void processRdnssOption(StructNdOptRdnss opt) {
            if (!isNetlinkEventParsingEnabled()) return;
            final String[] addresses = new String[opt.servers.length];
            for (int i = 0; i < opt.servers.length; i++) {
                addresses[i] = opt.servers[i].getHostAddress();
            }
            updateInterfaceDnsServerInfo(opt.header.lifetime, addresses);
        }

        private void processNduseroptMessage(NduseroptMessage msg, final long whenMs) {
            if (msg.family != AF_INET6 || msg.option == null || msg.ifindex != mIfindex) return;
            if (msg.icmp_type != (byte) ICMPV6_ROUTER_ADVERTISEMENT) return;
@@ -417,8 +441,12 @@ public class IpClientLinkObserver implements NetworkObserver {
                    processPref64Option((StructNdOptPref64) msg.option, whenMs);
                    break;

                case StructNdOptRdnss.TYPE:
                    processRdnssOption((StructNdOptRdnss) msg.option);
                    break;

                default:
                    // TODO: implement RDNSS and DNSSL.
                    // TODO: implement DNSSL.
                    break;
            }
        }
+7 −0
Original line number Diff line number Diff line
@@ -249,6 +249,13 @@ public class NetworkStackUtils {
    public static final String IPCLIENT_GARP_NA_ROAMING_VERSION =
            "ipclient_garp_na_roaming_version";

    /**
     * Experiment flag to enable parsing netlink events from kernel directly instead from netd aidl
     * interface.
     */
    public static final String IPCLIENT_PARSE_NETLINK_EVENTS_VERSION =
            "ipclient_parse_netlink_events_version";

    /**
     * Experiment flag to disable accept_ra parameter when IPv6 provisioning loss happens due to
     * the default route has gone.
Loading