diff --git a/makefiles/freebsd_32bit_ja.mak b/makefiles/freebsd_32bit_ja.mak index ca9cf5b..b6aaa93 100755 --- a/makefiles/freebsd_32bit_ja.mak +++ b/makefiles/freebsd_32bit_ja.mak @@ -25,18 +25,18 @@ # Variables CC=gcc -OPTIONS_COMPILE_DEBUG=-D_DEBUG -DDEBUG -DUNIX -DUNIX_BSD -DBRIDGE_BPF -DNO_VLAN -D_REENTRANT -DREENTRANT -D_THREAD_SAFE -D_THREADSAFE -DTHREAD_SAFE -DTHREADSAFE -I./src/ -I./src/Cedar/ -I./src/Mayaqua/ -g -fsigned-char +OPTIONS_COMPILE_DEBUG=-D_DEBUG -DDEBUG -DUNIX -DUNIX_BSD -DBRIDGE_BPF -D_REENTRANT -DREENTRANT -D_THREAD_SAFE -D_THREADSAFE -DTHREAD_SAFE -DTHREADSAFE -I./src/ -I./src/Cedar/ -I./src/Mayaqua/ -g -fsigned-char OPTIONS_LINK_DEBUG=-g -fsigned-char -lm -lpthread -lssl -lcrypto -liconv -lreadline -lncurses -lz -OPTIONS_COMPILE_RELEASE=-DNDEBUG -DVPN_SPEED -DUNIX -DUNIX_BSD -DBRIDGE_BPF -DNO_VLAN -D_REENTRANT -DREENTRANT -D_THREAD_SAFE -D_THREADSAFE -DTHREAD_SAFE -DTHREADSAFE -I./src/ -I./src/Cedar/ -I./src/Mayaqua/ -O2 -fsigned-char +OPTIONS_COMPILE_RELEASE=-DNDEBUG -DVPN_SPEED -DUNIX -DUNIX_BSD -DBRIDGE_BPF -D_REENTRANT -DREENTRANT -D_THREAD_SAFE -D_THREADSAFE -DTHREAD_SAFE -DTHREADSAFE -I./src/ -I./src/Cedar/ -I./src/Mayaqua/ -O2 -fsigned-char -I/usr/local/include -OPTIONS_LINK_RELEASE=-O2 -fsigned-char -lm -lpthread -lssl -lcrypto -liconv -lreadline -lncurses -lz +OPTIONS_LINK_RELEASE=-O2 -fsigned-char -lm -lpthread -lssl -lcrypto -liconv -lreadline -lncurses -lz -L/usr/local/lib -INSTALL_BINDIR=/usr/bin/ -INSTALL_UTVPNSERVER_DIR=/usr/utvpnserver/ -INSTALL_UTVPNCLIENT_DIR=/usr/utvpnclient/ -INSTALL_UTVPNCMD_DIR=/usr/utvpncmd/ +INSTALL_BINDIR=/usr/local/utvpn/bin/ +INSTALL_UTVPNSERVER_DIR=/usr/local/utvpn/utvpnserver/ +INSTALL_UTVPNCLIENT_DIR=/usr/local/utvpn/utvpnclient/ +INSTALL_UTVPNCMD_DIR=/usr/local/utvpn/utvpncmd/ ifeq ($(DEBUG),YES) OPTIONS_COMPILE=$(OPTIONS_COMPILE_DEBUG) diff --git a/makefiles/freebsd_64bit_ja.mak b/makefiles/freebsd_64bit_ja.mak index 8f685f3..99f6b7f 100755 --- a/makefiles/freebsd_64bit_ja.mak +++ b/makefiles/freebsd_64bit_ja.mak @@ -25,11 +25,11 @@ # Variables CC=gcc -OPTIONS_COMPILE_DEBUG=-D_DEBUG -DDEBUG -DUNIX -DUNIX_BSD -DBRIDGE_BPF -DNO_VLAN -DCPU_64 -D_REENTRANT -DREENTRANT -D_THREAD_SAFE -D_THREADSAFE -DTHREAD_SAFE -DTHREADSAFE -I./src/ -I./src/Cedar/ -I./src/Mayaqua/ -g -fsigned-char -m64 +OPTIONS_COMPILE_DEBUG=-D_DEBUG -DDEBUG -DUNIX -DUNIX_BSD -DBRIDGE_BPF -DCPU_64 -D_REENTRANT -DREENTRANT -D_THREAD_SAFE -D_THREADSAFE -DTHREAD_SAFE -DTHREADSAFE -I./src/ -I./src/Cedar/ -I./src/Mayaqua/ -g -fsigned-char -m64 OPTIONS_LINK_DEBUG=-g -fsigned-char -m64 -lm -lpthread -lssl -lcrypto -liconv -lreadline -lncurses -lz -OPTIONS_COMPILE_RELEASE=-DNDEBUG -DVPN_SPEED -DUNIX -DUNIX_BSD -DBRIDGE_BPF -DNO_VLAN -DCPU_64 -D_REENTRANT -DREENTRANT -D_THREAD_SAFE -D_THREADSAFE -DTHREAD_SAFE -DTHREADSAFE -I./src/ -I./src/Cedar/ -I./src/Mayaqua/ -O2 -fsigned-char -m64 +OPTIONS_COMPILE_RELEASE=-DNDEBUG -DVPN_SPEED -DUNIX -DUNIX_BSD -DBRIDGE_BPF -DCPU_64 -D_REENTRANT -DREENTRANT -D_THREAD_SAFE -D_THREADSAFE -DTHREAD_SAFE -DTHREADSAFE -I./src/ -I./src/Cedar/ -I./src/Mayaqua/ -O2 -fsigned-char -m64 OPTIONS_LINK_RELEASE=-O2 -fsigned-char -m64 -lm -lpthread -lssl -lcrypto -liconv -lreadline -lncurses -lz diff --git a/src/Cedar/Cedar.h b/src/Cedar/Cedar.h index b7aab5a..9241190 100755 --- a/src/Cedar/Cedar.h +++ b/src/Cedar/Cedar.h @@ -722,6 +722,7 @@ #define TAP_FILENAME_1 "/dev/net/tun" #define TAP_FILENAME_2 "/dev/tun" #define TAP_MACOS_FILENAME "/dev/tap0" +#define TAP_BSD_FILENAME "/dev/tap" diff --git a/src/Cedar/VLanUnix.c b/src/Cedar/VLanUnix.c index b14efa9..317acc1 100755 --- a/src/Cedar/VLanUnix.c +++ b/src/Cedar/VLanUnix.c @@ -394,6 +394,7 @@ int UnixCreateTapDeviceEx(char *name, char *prefix, UCHAR *mac_address) struct ifreq ifr; char eth_name[MAX_SIZE]; char instance_name_lower[MAX_SIZE]; + char bsd_tap_name[MAX_SIZE]; struct sockaddr sa; char *tap_name = TAP_FILENAME_1; int s; @@ -413,6 +414,7 @@ int UnixCreateTapDeviceEx(char *name, char *prefix, UCHAR *mac_address) // tun/tap を開く #ifndef UNIX_MACOS +#ifndef UNIX_BSD if (GetOsInfo()->OsType == OSTYPE_LINUX) { // Linux @@ -439,6 +441,30 @@ int UnixCreateTapDeviceEx(char *name, char *prefix, UCHAR *mac_address) } tap_name = TAP_FILENAME_2; } +#else // UNIX_BSD + // BSD + { + char *ptr = strstr(name, "tap"); + tap_name = TAP_BSD_FILENAME; + while (ptr != NULL) + { + if (strlen(ptr) >= 4 && isdigit(ptr[3])) + { + strcpy(bsd_tap_name, "/dev/"); + strncat(bsd_tap_name, ptr, 4); + tap_name = bsd_tap_name; + break; + } + ptr = strstr((ptr + 1), "tap"); + } + } + fd = open(tap_name, O_RDWR); + if (fd == -1) + { + return -1; + } + +#endif #else // UNIX_MACOS // MacOS X fd = open(TAP_MACOS_FILENAME, O_RDWR);