summaryrefslogtreecommitdiff
path: root/emulators/hercules/files/patch-tuntap
blob: 7bee1c3e1f54efc7a66e33118e21a270a87e3492 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
--- ctc_ctci.c.orig	Wed Dec 14 17:17:22 2005
+++ ctc_ctci.c	Wed Jan 25 20:05:14 2006
@@ -1114,7 +1114,7 @@ static int  ParseArgs( DEVBLK* pDEVBLK, 
 #if defined( WIN32 )
     strcpy( pCTCBLK->szTUNCharName,  tt32_get_default_iface() );
 #else
-    strcpy( pCTCBLK->szTUNCharName,  "/dev/net/tun" );
+    strcpy( pCTCBLK->szTUNCharName,  HERCTUN_DEV );
 #endif
 
 #if defined( WIN32 )
--- ctc_lcs.c.orig	Thu Dec 29 19:47:06 2005
+++ ctc_lcs.c	Wed Jan 25 20:05:14 2006
@@ -1024,7 +1024,9 @@ static void  LCS_Shutdown( PLCSDEV pLCSD
 static void  LCS_StartLan( PLCSDEV pLCSDEV, PLCSHDR pHeader )
 {
     PLCSPORT    pPort;
+#ifdef OPTION_TUNTAP_DELADD_ROUTES
     PLCSRTE     pRoute;
+#endif
     PLCSSTDFRM  pReply;
 
     pPort = &pLCSDEV->pLCSBLK->Port[pLCSDEV->bPort];
--- hercifc.h.orig	Thu Dec  1 17:37:25 2005
+++ hercifc.h	Wed Jan 25 20:05:14 2006
@@ -77,7 +77,7 @@
 // --------------------------------------------------------------------
 
 #define  HERCIFC_CMD  "hercifc"           // Interface config command
-#define  HERCTUN_DEV  "/dev/net/tun"      // Default TUN/TAP char dev
+#define  HERCTUN_DEV  "/dev/tun"          // Default TUN/TAP char dev
 
 typedef struct _CTLREQ
 {
--- tuntap.c.orig	Sun Dec 11 16:44:16 2005
+++ tuntap.c	Wed Jan 25 20:05:14 2006
@@ -159,6 +159,25 @@ int             TUNTAP_CreateInterface( 
         strcpy( pszNetDevName, ifr.ifr_name );
     }
 #if !defined( OPTION_W32_CTCI )
+    else if ( strncasecmp( utsbuf.sysname, "FreeBSD",  7 ) == 0 )
+    {
+        struct stat sb;
+
+        if ( ( iFlags & IFF_TAP ) == IFF_TAP )
+        {
+            logmsg( _("HHCTU011E TAP device not yet supported\n") );
+            return -1;
+        }
+
+        if ( fstat(fd, &sb) == 0 )
+                devname_r(sb.st_rdev, S_IFCHR, pszNetDevName, IFNAMSIZ);
+        else
+        {
+            logmsg( _("HHCTU010E Error getting TUN/TAP device name: %s\n"),
+                    strerror( errno ) );
+            return -1;
+        }
+    }
     else
     {
         // Other OS: Simply use basename of the device