X-Git-Url: http://g0dil.de/git?a=blobdiff_plain;f=Socket%2FNetdeviceController.cc;h=fa020d8904d5d208faa6da1f35fcf4d790b88e5b;hb=d1d92fb783dc558dcf7bdc34ee933c10e1c8d227;hp=c5c2ca49488d8d4542027b419200b7bd6728a29b;hpb=3947db5d3fda79652b619af45e6ae59f441984fb;p=senf.git diff --git a/Socket/NetdeviceController.cc b/Socket/NetdeviceController.cc index c5c2ca4..fa020d8 100644 --- a/Socket/NetdeviceController.cc +++ b/Socket/NetdeviceController.cc @@ -169,11 +169,6 @@ prefix_ int senf::NetdeviceController::interfaceIndex() return ifindex_; } -prefix_ senf::NetdeviceController::~NetdeviceController() -{ - close( sockfd_->fd); -} - prefix_ void senf::NetdeviceController::ifrName(ifreq& ifr) const { @@ -209,14 +204,10 @@ prefix_ senf::NetdeviceController::SockFd::~SockFd() prefix_ senf::NetdeviceController::SockFd::ptr senf::NetdeviceController::sockfd() { static boost::weak_ptr sockfd; - - if (sockfd.expired()) { - SockFd::ptr newsockfd (new SockFd()); - sockfd = newsockfd; - return newsockfd; - } - return sockfd.lock(); - + SockFd::ptr p (sockfd.lock()); + if (!p) + sockfd = p = SockFd::ptr(new SockFd()); + return p; } ///////////////////////////////cc.e////////////////////////////////////////