From 8990fb8267b5ed5677d61a421e0dfba41e365058 Mon Sep 17 00:00:00 2001 From: Adam Ierymenko Date: Tue, 31 Mar 2015 14:10:02 -0700 Subject: osnet -> osdep --- osnet/NativeSocketManager.hpp | 117 ------------------------------------------ 1 file changed, 117 deletions(-) delete mode 100644 osnet/NativeSocketManager.hpp (limited to 'osnet/NativeSocketManager.hpp') diff --git a/osnet/NativeSocketManager.hpp b/osnet/NativeSocketManager.hpp deleted file mode 100644 index 5db06d6a..00000000 --- a/osnet/NativeSocketManager.hpp +++ /dev/null @@ -1,117 +0,0 @@ -/* - * ZeroTier One - Network Virtualization Everywhere - * Copyright (C) 2011-2015 ZeroTier, Inc. - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - * - * -- - * - * ZeroTier may be used and distributed under the terms of the GPLv3, which - * are available at: http://www.gnu.org/licenses/gpl-3.0.html - * - * If you would like to embed ZeroTier into a commercial application or - * redistribute it in a modified binary form, please contact ZeroTier Networks - * LLC. Start here: http://www.zerotier.com/ - */ - -#ifndef ZT_NATIVESOCKETMANAGER_HPP -#define ZT_NATIVESOCKETMANAGER_HPP - -#include -#include - -#include -#include - -#include "../node/Constants.hpp" -#include "../node/SharedPtr.hpp" -#include "../node/Mutex.hpp" -#include "../node/SocketManager.hpp" -#include "../node/Socket.hpp" - -#ifdef __WINDOWS__ -#include -#include -#include -#else -#include -#include -#include -#include -#endif - -namespace ZeroTier { - -class NativeSocket; -class NativeUdpSocket; -class NativeTcpSocket; - -/** - * Native socket manager for Unix and Windows - */ -class NativeSocketManager : public SocketManager -{ - friend class NativeUdpSocket; - friend class NativeTcpSocket; - -public: - NativeSocketManager(int localUdpPort,int localTcpPort); - virtual ~NativeSocketManager(); - - virtual bool send(const InetAddress &to,bool tcp,bool autoConnectTcp,const void *msg,unsigned int msglen); - virtual void poll(unsigned long timeout,void (*handler)(const SharedPtr &,void *,const InetAddress &,Buffer &),void *arg); - virtual void whack(); - virtual void closeTcpSockets(); - -private: - // Used by TcpSocket to register/unregister for write availability notification - void _startNotifyWrite(const NativeSocket *sock); - void _stopNotifyWrite(const NativeSocket *sock); - - // Called in SocketManager destructor or in constructor cleanup before exception throwing - void _closeSockets(); - - // Called in SocketManager to recompute _nfds for select() based implementation - void _updateNfds(); - -#ifdef __WINDOWS__ - SOCKET _whackSendPipe; - SOCKET _whackReceivePipe; - SOCKET _tcpV4ListenSocket; - SOCKET _tcpV6ListenSocket; -#else - int _whackSendPipe; - int _whackReceivePipe; - int _tcpV4ListenSocket; - int _tcpV6ListenSocket; -#endif - Mutex _whackSendPipe_m; - - SharedPtr _udpV4Socket; - SharedPtr _udpV6Socket; - - fd_set _readfds; - fd_set _writefds; - volatile int _nfds; - Mutex _fdSetLock; - - std::map< InetAddress,SharedPtr > _tcpSockets; - Mutex _tcpSockets_m; - - Mutex _pollLock; -}; - -} // namespace ZeroTier - -#endif -- cgit v1.2.3