Commit 6dd5ffb661a4aec28c8296b1673abdf280038cf6
Committed by
Anthony Liguori
1 parent
f932b6ce
slirp: Explicitely mark host-forwarding sockets
Mark sockets that describe host forwardings. This is required for their (and only their) proper deletion and for pretty-printing. Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com> Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
Showing
3 changed files
with
4 additions
and
3 deletions
slirp/slirp.c
@@ -793,11 +793,11 @@ int slirp_add_hostfwd(int is_udp, struct in_addr host_addr, int host_port, | @@ -793,11 +793,11 @@ int slirp_add_hostfwd(int is_udp, struct in_addr host_addr, int host_port, | ||
793 | } | 793 | } |
794 | if (is_udp) { | 794 | if (is_udp) { |
795 | if (!udp_listen(host_addr.s_addr, htons(host_port), guest_addr.s_addr, | 795 | if (!udp_listen(host_addr.s_addr, htons(host_port), guest_addr.s_addr, |
796 | - htons(guest_port), 0)) | 796 | + htons(guest_port), SS_HOSTFWD)) |
797 | return -1; | 797 | return -1; |
798 | } else { | 798 | } else { |
799 | if (!tcp_listen(host_addr.s_addr, htons(host_port), guest_addr.s_addr, | 799 | if (!tcp_listen(host_addr.s_addr, htons(host_port), guest_addr.s_addr, |
800 | - htons(guest_port), 0)) | 800 | + htons(guest_port), SS_HOSTFWD)) |
801 | return -1; | 801 | return -1; |
802 | } | 802 | } |
803 | return 0; | 803 | return 0; |
slirp/socket.h
@@ -72,6 +72,7 @@ struct socket { | @@ -72,6 +72,7 @@ struct socket { | ||
72 | #define SS_FACCEPTONCE 0x200 /* If set, the SS_FACCEPTCONN socket will die after one accept */ | 72 | #define SS_FACCEPTONCE 0x200 /* If set, the SS_FACCEPTCONN socket will die after one accept */ |
73 | 73 | ||
74 | #define SS_PERSISTENT_MASK 0xf000 /* Unremovable state bits */ | 74 | #define SS_PERSISTENT_MASK 0xf000 /* Unremovable state bits */ |
75 | +#define SS_HOSTFWD 0x1000 /* Socket describes host->guest forwarding */ | ||
75 | 76 | ||
76 | extern struct socket tcb; | 77 | extern struct socket tcb; |
77 | 78 |
slirp/udp.c
@@ -667,7 +667,7 @@ udp_listen(u_int32_t haddr, u_int hport, u_int32_t laddr, u_int lport, | @@ -667,7 +667,7 @@ udp_listen(u_int32_t haddr, u_int hport, u_int32_t laddr, u_int lport, | ||
667 | so->so_expire = 0; | 667 | so->so_expire = 0; |
668 | 668 | ||
669 | so->so_state &= SS_PERSISTENT_MASK; | 669 | so->so_state &= SS_PERSISTENT_MASK; |
670 | - so->so_state |= SS_ISFCONNECTED; | 670 | + so->so_state |= SS_ISFCONNECTED | flags; |
671 | 671 | ||
672 | return so; | 672 | return so; |
673 | } | 673 | } |