summaryrefslogtreecommitdiffstats
path: root/libnetdutils/Syscalls.cpp
diff options
context:
space:
mode:
authorLuke Huang <huangluke@google.com>2018-08-08 13:13:04 +0800
committerLuke Huang <huangluke@google.com>2018-11-01 11:01:23 +0900
commitf778204a792f6955cabcaf3220cff85b69d3c0b6 (patch)
treea3c7f1d96f04ab14fc5696b991e52f022cd0784f /libnetdutils/Syscalls.cpp
parent5ae615416cb8dedcb7bd1157f58d012c3535ed11 (diff)
downloadplatform_system_netd-f778204a792f6955cabcaf3220cff85b69d3c0b6.tar.gz
platform_system_netd-f778204a792f6955cabcaf3220cff85b69d3c0b6.tar.bz2
platform_system_netd-f778204a792f6955cabcaf3220cff85b69d3c0b6.zip
Interface-related commands porting
Test: built, flashed, booted system/netd/tests/runtests.sh passes Change-Id: Ief3b2a0a55b74db0a794f3f9ca58298a2fcb57dd
Diffstat (limited to 'libnetdutils/Syscalls.cpp')
-rw-r--r--libnetdutils/Syscalls.cpp12
1 files changed, 10 insertions, 2 deletions
diff --git a/libnetdutils/Syscalls.cpp b/libnetdutils/Syscalls.cpp
index ac5fef2d3..9f653f70c 100644
--- a/libnetdutils/Syscalls.cpp
+++ b/libnetdutils/Syscalls.cpp
@@ -14,12 +14,12 @@
* limitations under the License.
*/
+#include "netdutils/Syscalls.h"
+
#include <atomic>
#include <type_traits>
#include <utility>
-#include "netdutils/Syscalls.h"
-
namespace android {
namespace netdutils {
namespace {
@@ -99,6 +99,14 @@ class RealSyscalls final : public Syscalls {
return status::ok;
}
+ StatusOr<ifreq> ioctl(Fd sock, unsigned long request, ifreq* ifr) const override {
+ auto rv = ::ioctl(sock.get(), request, ifr);
+ if (rv == -1) {
+ return statusFromErrno(errno, "ioctl() failed");
+ }
+ return *ifr;
+ }
+
StatusOr<UniqueFd> eventfd(unsigned int initval, int flags) const override {
UniqueFd fd(::eventfd(initval, flags));
if (!isWellFormed(fd)) {