Browse Source

Basic OpenBSD compile fixes -- still need to update BSDEthernetTap, will do that later. Should be able to re-use FreeBSD port for OpenBSD, but we will see.

Adam Ierymenko 10 years ago
parent
commit
d0e0f5dd12
5 changed files with 12 additions and 4 deletions
  1. 3 1
      Makefile
  2. 2 0
      include/ZeroTierOne.h
  3. 1 1
      node/Constants.hpp
  4. 2 2
      node/Utils.hpp
  5. 4 0
      service/OneService.cpp

+ 3 - 1
Makefile

@@ -13,4 +13,6 @@ endif
 ifeq ($(OSTYPE),FreeBSD)
 	include make-freebsd.mk
 endif
-
+ifeq ($(OSTYPE),OpenBSD)
+	include make-freebsd.mk
+endif

+ 2 - 0
include/ZeroTierOne.h

@@ -43,6 +43,8 @@
 #else /* not Windows */
 #include <arpa/inet.h>
 #include <netinet/in.h>
+#include <sys/types.h>
+#include <sys/socket.h>
 #endif /* Windows or not */
 
 #ifdef __cplusplus

+ 1 - 1
node/Constants.hpp

@@ -60,7 +60,7 @@
 #include <endian.h>
 #endif
 
-#ifdef __FreeBSD__
+#if defined(__FreeBSD__) || defined(__OpenBSD__)
 #ifndef __UNIX_LIKE__
 #define __UNIX_LIKE__
 #endif

+ 2 - 2
node/Utils.hpp

@@ -331,7 +331,7 @@ public:
 		throw()
 	{
 #if __BYTE_ORDER == __LITTLE_ENDIAN
-#ifdef __GNUC__
+#if defined(__GNUC__) && (!defined(__OpenBSD__))
 		return __builtin_bswap64(n);
 #else
 		return (
@@ -361,7 +361,7 @@ public:
 		throw()
 	{
 #if __BYTE_ORDER == __LITTLE_ENDIAN
-#ifdef __GNUC__
+#if defined(__GNUC__) && !defined(__OpenBSD__)
 		return __builtin_bswap64(n);
 #else
 		return (

+ 4 - 0
service/OneService.cpp

@@ -70,6 +70,10 @@ namespace ZeroTier { typedef LinuxEthernetTap EthernetTap; }
 #include "../osdep/WindowsEthernetTap.hpp"
 namespace ZeroTier { typedef WindowsEthernetTap EthernetTap; }
 #endif
+#ifdef __BSD__
+#include "../osdep/BSDEthernetTap.hpp"
+namespace ZeroTier { typedef BSDEthernetTap EthernetTap; }
+#endif
 
 // Sanity limits for HTTP
 #define ZT_MAX_HTTP_MESSAGE_SIZE (1024 * 1024 * 8)