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

Commit fc847f57 authored by Linux Build Service Account's avatar Linux Build Service Account Committed by Gerrit - the friendly Code Review server
Browse files

Merge "server: modify network stat plugin framework" into LA.BR.1.3.3_2

parents 67c4a4af 62767c9a
Loading
Loading
Loading
Loading
+20 −4
Original line number Diff line number Diff line
@@ -27,17 +27,18 @@
 *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;
@@ -45,8 +46,9 @@ class NetPluginDelegate {
    private static Class tetherExtensionClass = null;
    private static Object tetherExtensionObj = null;

    static void getTetherStats(NetworkStats uidStats, NetworkStats devStats,
    public static void getTetherStats(NetworkStats uidStats, NetworkStats devStats,
            NetworkStats xtStats) {
        if (LOGV) Slog.v(TAG, "getTetherStats() E");
        loadTetherExtJar();
        try {
            tetherExtensionClass.getMethod("getTetherStats", NetworkStats.class,
@@ -56,9 +58,11 @@ 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 (LOGV) Slog.v(TAG, "setQuota(" + iface + ", " + quota + ") E");
        loadTetherExtJar();
        try {
            tetherExtensionClass.getMethod("setQuota", String.class, long.class).invoke(
@@ -66,8 +70,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 void loadTetherExtJar() {
+3 −1
Original line number Diff line number Diff line
@@ -55,6 +55,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;
@@ -1561,6 +1562,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) {
@@ -1595,7 +1598,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
@@ -159,6 +159,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;