From 7576911951781baf8730ee3e166cb6efc73322bf Mon Sep 17 00:00:00 2001 From: Adam Ierymenko Date: Fri, 10 Apr 2015 11:42:02 -0700 Subject: Temporarily shelve testnet/ -- will resurrect self-contained testnet later perhaps, but probably will not by the time next version ships. Was mostly for debugging multicast anyway and that is now quite stable. --- testnet/TestEthernetTap.cpp | 150 -------------------------------------------- 1 file changed, 150 deletions(-) delete mode 100644 testnet/TestEthernetTap.cpp (limited to 'testnet/TestEthernetTap.cpp') diff --git a/testnet/TestEthernetTap.cpp b/testnet/TestEthernetTap.cpp deleted file mode 100644 index 9cd6df5d..00000000 --- a/testnet/TestEthernetTap.cpp +++ /dev/null @@ -1,150 +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/ - */ - -#include "TestEthernetTap.hpp" -#include "TestEthernetTapFactory.hpp" - -#include "../node/Constants.hpp" -#include "../node/Utils.hpp" - -#include -#include - -#ifdef __WINDOWS__ -#include -#else -#include -#endif - -namespace ZeroTier { - -TestEthernetTap::TestEthernetTap( - const MAC &mac, - unsigned int mtu, - unsigned int metric, - uint64_t nwid, - const char *desiredDevice, - const char *friendlyName, - void (*handler)(void *,const MAC &,const MAC &,unsigned int,const Buffer<4096> &), - void *arg) : - EthernetTap("TestEthernetTap",mac,mtu,metric), - _nwid(nwid), - _handler(handler), - _arg(arg), - _enabled(true) -{ - static volatile unsigned int testTapCounter = 0; - - char tmp[64]; - int pid = 0; -#ifdef __UNIX_LIKE__ - pid = (int)getpid(); -#endif -#ifdef __WINDOWS__ - pid = (int)_getpid(); -#endif - Utils::snprintf(tmp,sizeof(tmp),"test%dtap%d",pid,testTapCounter++); - _dev = tmp; - - _thread = Thread::start(this); -} - -TestEthernetTap::~TestEthernetTap() -{ - static const TestFrame zf; // use a static empty frame because of weirdo G++ warning bug... - _pq.push(zf); // empty frame terminates thread - Thread::join(_thread); -} - -void TestEthernetTap::setEnabled(bool en) -{ - _enabled = en; -} - -bool TestEthernetTap::enabled() const -{ - return _enabled; -} - -bool TestEthernetTap::addIP(const InetAddress &ip) -{ - return true; -} - -bool TestEthernetTap::removeIP(const InetAddress &ip) -{ - return true; -} - -std::set TestEthernetTap::ips() const -{ - return std::set(); -} - -void TestEthernetTap::put(const MAC &from,const MAC &to,unsigned int etherType,const void *data,unsigned int len) -{ - _gq.push(TestFrame(from,to,data,etherType,len)); -} - -std::string TestEthernetTap::deviceName() const -{ - return _dev; -} - -void TestEthernetTap::setFriendlyName(const char *friendlyName) -{ -} - -bool TestEthernetTap::updateMulticastGroups(std::set &groups) -{ - return false; -} - -bool TestEthernetTap::injectPacketFromHost(const MAC &from,const MAC &to,unsigned int etherType,const void *data,unsigned int len) -{ - if ((len == 0)||(len > _mtu)) - return false; - _pq.push(TestFrame(from,to,data,etherType & 0xffff,len)); - return true; -} - -void TestEthernetTap::threadMain() - throw() -{ - TestFrame f; - for(;;) { - if (_pq.pop(f,0)) { - if (f.len) { - try { - _handler(_arg,f.from,f.to,f.etherType,Buffer<4096>(f.data,f.len)); - } catch ( ... ) {} - } else break; - } - } -} - -} // namespace ZeroTier -- cgit v1.2.3