Scripts without +x will not run
[vsys-scripts.git] / fd_tuntap.c
index 668a9c5..ddcd431 100644 (file)
@@ -45,7 +45,7 @@ int send_vif_fd(int sock_fd, int vif_fd, char *vif_name)
        msg.msg_flags = 0;
 
     /* Send the interface name as the iov */
-       vec.iov_base = &vif_name;
+       vec.iov_base = vif_name;
        vec.iov_len = strlen(vif_name)+1;
 
        while ((retval = sendmsg(sock_fd, &msg, 0)) == -1 && errno == EINTR);
@@ -105,10 +105,11 @@ int main(int argc, char *argv[])
     }
 
     /* Open tun device */
-    if( (tap_fd = open("/dev/stdtun", O_RDWR)) < 0 ) {
+    if( (tap_fd = open("/dev/net/tun", O_RDWR)) < 0 ) {
         system("modprobe tun");
-        if( (tap_fd = open("/dev/stdtun", O_RDWR)) < 0 ) {
-            perror("ERROR: tun_alloc():open(/dev/stdtun)");
+        system("ln -sf /dev/net/tun /dev/stdtun");
+        if( (tap_fd = open("/dev/net/tun", O_RDWR)) < 0 ) {
+            perror("ERROR: tun_alloc():open(/dev/net/tun)");
             exit(-1);
         }
     }
@@ -129,7 +130,7 @@ int main(int argc, char *argv[])
 
 
     /* Send tap_fd to slice */
-    //send_vif_fd(control_channel_fd, tap_fd, if_name);
+    send_vif_fd(control_channel_fd, tap_fd, if_name);
 
     return 0;
 }