Allow tethering to use IpNeighborMonitor.
Test: m
Change-Id: I4ca0c47d62ea90c30f88278b3ebf766be2c5a2e9
diff --git a/common/moduleutils/Android.bp b/common/moduleutils/Android.bp
index 4b2a4b8..d0dd584 100644
--- a/common/moduleutils/Android.bp
+++ b/common/moduleutils/Android.bp
@@ -51,10 +51,14 @@
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"],
}
diff --git a/src/android/net/ip/IpNeighborMonitor.java b/common/moduleutils/src/android/net/ip/IpNeighborMonitor.java
similarity index 95%
rename from src/android/net/ip/IpNeighborMonitor.java
rename to common/moduleutils/src/android/net/ip/IpNeighborMonitor.java
index 803f2e6..d6706d4 100644
--- a/src/android/net/ip/IpNeighborMonitor.java
+++ b/common/moduleutils/src/android/net/ip/IpNeighborMonitor.java
@@ -31,9 +31,9 @@
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.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 @@
}
}
+ // 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 @@
}
} catch (ErrnoException|SocketException e) {
logError("Failed to create rtnetlink socket", e);
- NetworkStackUtils.closeSocketQuietly(fd);
+ closeSocketQuietly(fd);
return null;
}
diff --git a/src/android/net/util/FdEventsReader.java b/common/moduleutils/src/android/net/util/FdEventsReader.java
similarity index 100%
rename from src/android/net/util/FdEventsReader.java
rename to common/moduleutils/src/android/net/util/FdEventsReader.java
diff --git a/src/android/net/util/PacketReader.java b/common/moduleutils/src/android/net/util/PacketReader.java
similarity index 100%
rename from src/android/net/util/PacketReader.java
rename to common/moduleutils/src/android/net/util/PacketReader.java