ui/xemu-net.c: Move slirp port forward clearing into function

This commit is contained in:
Matt Borgerson
2025-06-20 03:34:28 -07:00
committed by mborgerson
parent 43c68c22a0
commit 37e0f59c81
+14 -10
View File
@@ -164,19 +164,23 @@ static void remove_netdev(const char *name)
qemu_del_net_client(nc);
}
static void clear_slirp_port_forwards(void)
{
void *s = slirp_get_state_from_netdev(id);
struct in_addr host_addr = { .s_addr = INADDR_ANY };
for (int i = 0; i < g_config.net.nat.forward_ports_count; i++) {
slirp_remove_hostfwd(s,
g_config.net.nat.forward_ports[i].protocol ==
CONFIG_NET_NAT_FORWARD_PORTS_PROTOCOL_UDP,
host_addr,
g_config.net.nat.forward_ports[i].host);
}
}
void xemu_net_disable(void)
{
if (g_config.net.backend == CONFIG_NET_BACKEND_NAT) {
void *s = slirp_get_state_from_netdev(id);
assert(s != NULL);
struct in_addr host_addr = { .s_addr = INADDR_ANY };
for (int i = 0; i < g_config.net.nat.forward_ports_count; i++) {
slirp_remove_hostfwd(s,
g_config.net.nat.forward_ports[i].protocol ==
CONFIG_NET_NAT_FORWARD_PORTS_PROTOCOL_UDP,
host_addr,
g_config.net.nat.forward_ports[i].host);
}
clear_slirp_port_forwards();
}
remove_netdev(id);