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

Commit acab832b authored by Lorenzo Colitti's avatar Lorenzo Colitti
Browse files

Allow tethering to use IpNeighborMonitor. am: f998552c am: eeab42ea

Change-Id: Ib24672f8a4b6b7f5519b535bc15999e0b45acc09
parents 1536bc71 eeab42ea
Loading
Loading
Loading
Loading
+4 −0
Original line number Diff line number Diff line
@@ -51,10 +51,14 @@ filegroup {
    name: "tethering-module-utils-srcs",
    srcs: [
        "src/android/net/ip/InterfaceController.java",
        "src/android/net/ip/IpNeighborMonitor.java",
        "src/android/net/netlink/*.java",
        "src/android/net/shared/NetdUtils.java",
        "src/android/net/shared/RouteUtils.java",
        "src/android/net/util/FdEventsReader.java",
        "src/android/net/util/InterfaceParams.java",
        "src/android/net/util/PacketReader.java",
        "src/android/net/util/SharedLog.java"
    ],
    visibility: ["//frameworks/base/packages/Tethering"],
}
+11 −2
Original line number Diff line number Diff line
@@ -31,9 +31,9 @@ import android.net.netlink.NetlinkMessage;
import android.net.netlink.NetlinkSocket;
import android.net.netlink.RtNetlinkNeighborMessage;
import android.net.netlink.StructNdMsg;
import android.net.util.NetworkStackUtils;
import android.net.util.PacketReader;
import android.net.util.SharedLog;
import android.net.util.SocketUtils;
import android.os.Handler;
import android.os.SystemClock;
import android.system.ErrnoException;
@@ -42,6 +42,7 @@ import android.system.OsConstants;
import android.util.Log;

import java.io.FileDescriptor;
import java.io.IOException;
import java.net.InetAddress;
import java.net.SocketAddress;
import java.net.SocketException;
@@ -128,6 +129,14 @@ public class IpNeighborMonitor extends PacketReader {
        }
    }

    // TODO: move NetworkStackUtils.closeSocketQuietly to somewhere accessible to this file.
    private void closeSocketQuietly(FileDescriptor fd) {
        try {
            SocketUtils.closeSocket(fd);
        } catch (IOException ignored) {
        }
    }

    public interface NeighborEventConsumer {
        // Every neighbor event received on the netlink socket is passed in
        // here. Subclasses should filter for events of interest.
@@ -158,7 +167,7 @@ public class IpNeighborMonitor extends PacketReader {
            }
        } catch (ErrnoException|SocketException e) {
            logError("Failed to create rtnetlink socket", e);
            NetworkStackUtils.closeSocketQuietly(fd);
            closeSocketQuietly(fd);
            return null;
        }