OSDN Git Service

slirp: Honour vlan/stack in hostfwd_remove commands
authorPeter Maydell <peter.maydell@linaro.org>
Mon, 16 Jun 2014 15:47:49 +0000 (16:47 +0100)
committerMichael Tokarev <mjt@tls.msk.ru>
Tue, 2 Sep 2014 18:38:16 +0000 (22:38 +0400)
The hostfwd_add and hostfwd_remove monitor commands allow the user
to optionally specify a vlan/stack tuple. hostfwd_add honours this,
but hostfwd_remove does not (it looks up the tuple but then ignores
the SlirpState it has looked up and always uses the first stack
in the list anyway). Correct this to honour what the user requested.

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Michael Tokarev <mjt@tls.msk.ru>
net/slirp.c

index 647039e..c171119 100644 (file)
@@ -345,8 +345,7 @@ void net_slirp_hostfwd_remove(Monitor *mon, const QDict *qdict)
 
     host_port = atoi(p);
 
-    err = slirp_remove_hostfwd(QTAILQ_FIRST(&slirp_stacks)->slirp, is_udp,
-                               host_addr, host_port);
+    err = slirp_remove_hostfwd(s->slirp, is_udp, host_addr, host_port);
 
     monitor_printf(mon, "host forwarding rule for %s %s\n", src_str,
                    err ? "not found" : "removed");