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 | } |