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

Commit a77b5bc9 authored by Bryse Flowers's avatar Bryse Flowers Committed by Marcos Marado
Browse files

server: modify network stat plugin framework

Add setUpstream function from Tethering to handle IPv6-only
Tethering.

TICKET: PAELLA-86
Change-Id: I38392d0678df027c54469564746ee5d9897f5829
parent a429e470
Loading
Loading
Loading
Loading
+18 −6
Original line number Diff line number Diff line
@@ -27,17 +27,16 @@
 *IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 */

package com.android.server.net;
package com.android.server;

import dalvik.system.PathClassLoader;

import java.lang.reflect.Constructor;

import android.util.Slog;
import android.net.Network;
import android.net.NetworkStats;
import android.util.Log;

class NetPluginDelegate {
public class NetPluginDelegate {

    private static final String TAG = "ConnectivityExtension";
    private static final boolean LOGV = false;
@@ -47,7 +46,7 @@ class NetPluginDelegate {

    private static boolean extensionFailed;

    static void getTetherStats(NetworkStats uidStats, NetworkStats devStats,
    public static void getTetherStats(NetworkStats uidStats, NetworkStats devStats,
            NetworkStats xtStats) {
        if (!loadTetherExtJar()) {
            return;
@@ -60,9 +59,10 @@ class NetPluginDelegate {
            e.printStackTrace();
            Log.w(TAG, "error in invoke method");
        }
        if (LOGV) Slog.v(TAG, "getTetherStats() X");
    }

    static void setQuota(String iface, long quota) {
    public static void setQuota(String iface, long quota) {
        if (!loadTetherExtJar()) {
            return;
        }
@@ -72,8 +72,20 @@ class NetPluginDelegate {
        } catch (Exception ex) {
            Log.w(TAG, "Error calling setQuota Method on extension jar");
        }
        if (LOGV) Slog.v(TAG, "setQuota(" + iface + ", " + quota + ") X");
    }

    public static void setUpstream(Network net) {
        if (LOGV) Slog.v(TAG, "setUpstream(" + net + ") E");
        loadTetherExtJar();
        try {
            tetherExtensionClass.getMethod("setUpstream", Network.class).invoke(
                    tetherExtensionObj, net);
        } catch (Exception ex) {
            Log.w(TAG, "Error calling setUpstream Method on extension jar");
        }
        if (LOGV) Slog.v(TAG, "setUpstream(" + net + ") E");
    }


    private static boolean loadTetherExtJar() {
+3 −1
Original line number Diff line number Diff line
@@ -59,6 +59,7 @@ import com.android.internal.util.IState;
import com.android.internal.util.State;
import com.android.internal.util.StateMachine;
import com.android.server.IoThread;
import com.android.server.NetPluginDelegate;
import com.android.server.net.BaseNetworkObserver;

import java.io.FileDescriptor;
@@ -1595,6 +1596,8 @@ public class Tethering extends BaseNetworkObserver {
                        sendMessageDelayed(CMD_RETRY_UPSTREAM, UPSTREAM_SETTLE_TIME_MS);
                    }
                } else {
                    Network network = getConnectivityManager().getNetworkForType(upType);
                    NetPluginDelegate.setUpstream(network);
                    LinkProperties linkProperties =
                            getConnectivityManager().getLinkProperties(upType);
                    if (linkProperties != null) {
@@ -1629,7 +1632,6 @@ public class Tethering extends BaseNetworkObserver {
                            }
                        }
                        try {
                            Network network = getConnectivityManager().getNetworkForType(upType);
                            if (network == null) {
                                Log.e(TAG, "No Network for upstream type " + upType + "!");
                            }
+1 −0
Original line number Diff line number Diff line
@@ -162,6 +162,7 @@ import com.android.internal.util.IndentingPrintWriter;
import com.android.server.DeviceIdleController;
import com.android.server.EventLogTags;
import com.android.server.LocalServices;
import com.android.server.NetPluginDelegate;
import com.google.android.collect.Lists;

import org.xmlpull.v1.XmlPullParser;
+1 −0
Original line number Diff line number Diff line
@@ -123,6 +123,7 @@ import com.android.internal.util.FileRotator;
import com.android.internal.util.IndentingPrintWriter;
import com.android.server.EventLogTags;
import com.android.server.LocalServices;
import com.android.server.NetPluginDelegate;
import com.android.server.connectivity.Tethering;

import java.io.File;