summaryrefslogtreecommitdiff
path: root/server/InterfaceController.cpp
diff options
context:
space:
mode:
authorErik Kline <ek@google.com>2016-08-02 15:22:53 +0900
committerErik Kline <ek@google.com>2016-08-02 17:17:08 +0900
commitc296f098b63a986265ded8adf13118ba512a0fa7 (patch)
treec947e9afeca08ab1ea9c4a83b53e124502845e65 /server/InterfaceController.cpp
parent8917e45f7f8d49b645fd6ed10942dfe20c71ac0e (diff)
Support adding/removing IPv4 and IPv6 addresses on interfaces
Bug: 30298058 Change-Id: Ic25cd165476d1a781595460b7d764e8df4707c65
Diffstat (limited to 'server/InterfaceController.cpp')
-rw-r--r--server/InterfaceController.cpp12
1 files changed, 12 insertions, 0 deletions
diff --git a/server/InterfaceController.cpp b/server/InterfaceController.cpp
index cbc36111..4129c0f0 100644
--- a/server/InterfaceController.cpp
+++ b/server/InterfaceController.cpp
@@ -23,6 +23,7 @@
#include <android-base/stringprintf.h>
#include <cutils/log.h>
#include <logwrap/logwrap.h>
+#include <netutils/ifc.h>
#include "InterfaceController.h"
#include "RouteController.h"
@@ -192,6 +193,17 @@ int InterfaceController::setMtu(const char *interface, const char *mtu)
return writeValueToPath(sys_net_path, interface, "mtu", mtu);
}
+
+int InterfaceController::addAddress(const char *interface,
+ const char *addrString, int prefixLength) {
+ return ifc_add_address(interface, addrString, prefixLength);
+}
+
+int InterfaceController::delAddress(const char *interface,
+ const char *addrString, int prefixLength) {
+ return ifc_del_address(interface, addrString, prefixLength);
+}
+
void InterfaceController::setBaseReachableTimeMs(unsigned int millis) {
std::string value(StringPrintf("%u", millis));
setOnAllInterfaces(ipv4_neigh_conf_dir, "base_reachable_time_ms", value.c_str());