Skip to contentSkip to conversation

script=no for the TUN/TAP net option

PATCH New Jean-Christian de Rivaz 1 participant 1 message Jan 31, 2007

lore
Share & tools
lore
#0 lore raw

PATCH 1/1 script=no for the TUN/TAP net option

Hello,

The following small patch disable the execution of a script while using the -net tap option with a already existing TUN/TAP interface.

So you can as root bring up a TUN/TAP interface to a user with the command 'tunctl -u <user> -t <ifname>' and setup the routing. Then the user don't need to sudo a script, it simply tell QEMU to use the interface <ifname> with the option '-net nic -net tap,ifname=<ifname>,script=no'.

Have a good day,

Signature · 1 line
Jean-Christian de Rivaz

Index: qemu-doc.texi
===================================================================
RCS file: /sources/qemu/qemu/qemu-doc.texi,v
retrieving revision 1.125

qemu-doc.texi +2 -1
diff -u -r1.125 qemu-doc.texi
@@ -358,7 +358,8 @@
 @item -net tap[,vlan=n][,fd=h][,ifname=name][,script=file]
 Connect the host TAP network interface @var{name} to VLAN @var{n} and
 use the network script @var{file} to configure it. The default
-network script is @file{/etc/qemu-ifup}. If @var{name} is not
+network script is @file{/etc/qemu-ifup}. Use @option{script=no} to
+disable script execution. If @var{name} is not
 provided, the OS automatically provides one.  @option{fd=h} can be
 used to specify the handle of an already opened host TAP interface. Example:
 

Index: vl.c
===================================================================
RCS file: /sources/qemu/qemu/vl.c,v
retrieving revision 1.244

vl.c +2 -1
diff -u -r1.244 vl.c
@@ -3289,7 +3289,7 @@
     if (fd < 0)
         return -1;
 
-    if (!setup_script)
+    if (!setup_script || !strcmp(setup_script, "no"))
         setup_script = "";
     if (setup_script[0] != '\0') {
         /* try to launch network init script */
@@ -6066,6 +6066,7 @@
            "-net tap[,vlan=n][,fd=h][,ifname=name][,script=file]\n"
            "                connect the host TAP network interface to VLAN 'n' and use\n"
            "                the network script 'file' (default=%s);\n"
+           "                use 'script=no' to disable script execution;\n"
            "                use 'fd=h' to connect to an already opened TAP interface\n"
 #endif
            "-net socket[,vlan=n][,fd=h][,listen=[host]:port][,connect=host:port]\n"