diff -Nru qemu-0.o/vl.c qemu-0/vl.c --- qemu-0.o/vl.c 2004-11-16 14:16:22.000000000 +0100 +++ qemu-0/vl.c 2004-11-19 18:42:49.811154272 +0100 @@ -1596,7 +1596,7 @@ } memset(&ifr, 0, sizeof(ifr)); ifr.ifr_flags = IFF_TAP | IFF_NO_PI; - pstrcpy(ifr.ifr_name, IFNAMSIZ, "tun%d"); + pstrcpy(ifr.ifr_name, IFNAMSIZ, *ifname ? ifname : "tun%d"); ret = ioctl(fd, TUNSETIFF, (void *) &ifr); if (ret != 0) { fprintf(stderr, "warning: could not configure /dev/net/tun: no virtual network emulation\n"); @@ -2513,6 +2513,8 @@ "-nics n simulate 'n' network cards [default=1]\n" "-macaddr addr set the mac address of the first interface\n" "-n script set tap/tun network init script [default=%s]\n" + "-net-if interface\n" + " set the network interface to use [default=tun%%d]\n" "-tun-fd fd use this fd as already opened tap/tun interface\n" #ifdef CONFIG_SLIRP "-user-net use user mode network stack [default if no tap/tun script]\n" @@ -2596,6 +2598,7 @@ QEMU_OPTION_nics, QEMU_OPTION_macaddr, QEMU_OPTION_n, + QEMU_OPTION_net_if, QEMU_OPTION_tun_fd, QEMU_OPTION_user_net, QEMU_OPTION_tftp, @@ -2652,6 +2655,7 @@ { "nics", HAS_ARG, QEMU_OPTION_nics}, { "macaddr", HAS_ARG, QEMU_OPTION_macaddr}, { "n", HAS_ARG, QEMU_OPTION_n }, + { "net-if", HAS_ARG, QEMU_OPTION_net_if }, { "tun-fd", HAS_ARG, QEMU_OPTION_tun_fd }, #ifdef CONFIG_SLIRP { "user-net", 0, QEMU_OPTION_user_net }, @@ -2757,7 +2761,7 @@ int cyls, heads, secs, translation; int start_emulation = 1; uint8_t macaddr[6]; - int net_if_type, nb_tun_fds, tun_fds[MAX_NICS]; + int net_if_type, nb_net_ifs, nb_tun_fds, tun_fds[MAX_NICS]; int optind; const char *r, *optarg; CharDriverState *monitor_hd; @@ -2798,6 +2802,7 @@ serial_device_index = 0; nb_tun_fds = 0; + nb_net_ifs = 0; net_if_type = -1; nb_nics = 1; /* default mac address of the first network interface */ @@ -3026,6 +3031,13 @@ case QEMU_OPTION_n: pstrcpy(network_script, sizeof(network_script), optarg); break; + case QEMU_OPTION_net_if: + net_if_type = NET_IF_TUN; + if (nb_net_ifs < MAX_NICS) { + pstrcpy (nd_table[nb_net_ifs].ifname, sizeof(nd_table[nb_net_ifs].ifname), optarg); + nb_net_ifs++; + } + break; #ifdef CONFIG_GDBSTUB case QEMU_OPTION_s: use_gdbstub = 1;