Browse Source

Netcon mode for Linux (in this branch, will make conditional later)

Adam Ierymenko 10 years ago
parent
commit
1f4c667646
3 changed files with 22 additions and 7 deletions
  1. 6 6
      make-linux.mk
  2. 1 1
      netcon/NetconEthernetTap.cpp
  3. 15 0
      service/OneService.cpp

+ 6 - 6
make-linux.mk

@@ -29,15 +29,15 @@ endif
 UNAME_M=$(shell uname -m)
 
 INCLUDES=
-DEFS=
+DEFS=-DZT_ENABLE_NETCON
 LDLIBS?=
 
 include objects.mk
-OBJS+=osdep/LinuxEthernetTap.o 
+OBJS+=osdep/LinuxEthernetTap.o netcon/NetconEthernetTap.o
 
 # "make official" is a shortcut for this
 ifeq ($(ZT_OFFICIAL_RELEASE),1)
-	DEFS+=-DZT_OFFICIAL_RELEASE 
+	DEFS+=-DZT_OFFICIAL_RELEASE
 	ZT_USE_MINIUPNPC=1
 endif
 
@@ -65,14 +65,14 @@ endif
 
 # Build with ZT_ENABLE_NETWORK_CONTROLLER=1 to build with the Sqlite network controller
 ifeq ($(ZT_ENABLE_NETWORK_CONTROLLER),1)
-        DEFS+=-DZT_ENABLE_NETWORK_CONTROLLER 
+        DEFS+=-DZT_ENABLE_NETWORK_CONTROLLER
         LDLIBS+=-L/usr/local/lib -lsqlite3
-        OBJS+=controller/SqliteNetworkController.o 
+        OBJS+=controller/SqliteNetworkController.o
 endif
 
 # "make debug" is a shortcut for this
 ifeq ($(ZT_DEBUG),1)
-	DEFS+=-DZT_TRACE 
+	DEFS+=-DZT_TRACE
 	CFLAGS+=-Wall -g -pthread $(INCLUDES) $(DEFS)
 	CXXFLAGS+=-Wall -g -pthread $(INCLUDES) $(DEFS)
 	LDFLAGS=

+ 1 - 1
netcon/NetconEthernetTap.cpp

@@ -62,7 +62,7 @@ NetconEthernetTap::NetconEthernetTap(
 	_dev = sockPath;
 
 	_unixListenSocket = _phy.unixListen(sockPath,(void *)this);
-	if (!_unixSocket)
+	if (!_unixListenSocket)
 		throw std::runtime_error(std::string("unable to bind to ")+sockPath);
 
 	_thread = Thread::start(this);

+ 15 - 0
service/OneService.cpp

@@ -90,22 +90,37 @@ class SqliteNetworkController;
 #endif
 
 // Include the right tap device driver for this platform -- add new platforms here
+#ifdef ZT_ENABLE_NETCON
+
+#include "../netcon/NetconEthernetTap.hpp"
+namespace ZeroTier { typedef NetconEthernetTap EthernetTap; }
+
+#else
 #ifdef __APPLE__
+
 #include "../osdep/OSXEthernetTap.hpp"
 namespace ZeroTier { typedef OSXEthernetTap EthernetTap; }
+
 #endif
 #ifdef __LINUX__
+
 #include "../osdep/LinuxEthernetTap.hpp"
 namespace ZeroTier { typedef LinuxEthernetTap EthernetTap; }
+
 #endif
 #ifdef __WINDOWS__
+
 #include "../osdep/WindowsEthernetTap.hpp"
 namespace ZeroTier { typedef WindowsEthernetTap EthernetTap; }
+
 #endif
 #ifdef __FreeBSD__
+
 #include "../osdep/BSDEthernetTap.hpp"
 namespace ZeroTier { typedef BSDEthernetTap EthernetTap; }
+
 #endif
+#endif // ZT_ENABLE_NETCON
 
 // Sanity limits for HTTP
 #define ZT_MAX_HTTP_MESSAGE_SIZE (1024 * 1024 * 64)