commit 95fa2229beeaca4fbad9a3870a8f397dcd674489
parent 5b9a5aabc3cbe6a784a75eaeedb6e2419a702802
Author: Jesus Galan Lopez (yiyus) <yiyu.jgl@gmail.com>
Date: Mon, 13 Sep 2010 00:02:47 +0200
ethertap in darwin
Diffstat:
2 files changed, 20 insertions(+), 2 deletions(-)
diff --git a/src/9vx/Makefrag b/src/9vx/Makefrag
@@ -3,7 +3,7 @@ PLAN9VX=1
PLAN9GUI=x11
PLAN9AUDIO=unix
PLAN9PCAP=nopcap
-PLAN9TAP=notap
+PLAN9TAP=ethertap
endif
ifeq ($(OS),darwin)
@@ -11,7 +11,7 @@ PLAN9VX=1
PLAN9GUI=osx
PLAN9AUDIO=none
PLAN9PCAP=nopcap
-PLAN9TAP=notap
+PLAN9TAP=ethertap
endif
ifeq ($(OS),freebsd)
diff --git a/src/9vx/ethertap.c b/src/9vx/ethertap.c
@@ -16,6 +16,9 @@
#include "etherif.h"
#include "vether.h"
+#if defined(__APPLE__)
+#include <sys/socket.h>
+#endif
#include <net/if.h>
#include <sys/ioctl.h>
@@ -67,6 +70,21 @@ opentap(char *dev)
return -1;
return fd;
}
+#elif defined(__APPLE__)
+static int
+opentap(char *dev)
+{
+ int fd;
+ char *tap0 = "/dev/tap0";
+
+ if(dev == nil)
+ dev = tap0;
+ if((fd = open(dev, O_RDWR)) < 0) {
+ iprint("tap: open failed with: %d\n", errno);
+ return -1;
+ }
+ return fd;
+}
#endif
static int