From 7736cc700ffa62b47d866882c0788a5ec9e05ae7 Mon Sep 17 00:00:00 2001 From: Ludvig Strigeus Date: Sat, 15 Dec 2018 22:06:04 +0100 Subject: [PATCH] Add StealFd --- network_bsd.cpp | 6 ++++++ network_bsd.h | 1 + 2 files changed, 7 insertions(+) diff --git a/network_bsd.cpp b/network_bsd.cpp index 01f03ca..64c1cd1 100644 --- a/network_bsd.cpp +++ b/network_bsd.cpp @@ -286,6 +286,12 @@ void BaseSocketBsd::AddToEndLoop() { network_->endloop_[endloop_slot_ = network_->num_endloop_++] = this; } +int BaseSocketBsd::StealFd() { + int fd = exch(fd_, -1); + CloseSocket(); + return fd; +} + ////////////////////////////////////////////////////////////////////////////////////////////// TunSocketBsd::TunSocketBsd(NetworkBsd *network, WireguardProcessor *processor) diff --git a/network_bsd.h b/network_bsd.h index 6f2c711..04a023b 100644 --- a/network_bsd.h +++ b/network_bsd.h @@ -101,6 +101,7 @@ public: void AddToEndLoop(); int GetFd() { return fd_; } + int StealFd(); protected: void SetPollFlags(int events) {