aboutsummaryrefslogtreecommitdiff
path: root/src/socket.c
diff options
context:
space:
mode:
authorSamuel Thibault <samuel.thibault@ens-lyon.org>2021-03-05 20:42:40 +0100
committerSamuel Thibault <samuel.thibault@ens-lyon.org>2021-03-17 21:59:20 +0100
commitd9c09e573db5dabbdece52e93df5a30dd937a5b5 (patch)
treed982a918202b8bdb764ba0893e3dd79eb1985f9c /src/socket.c
parent666235c02866039536cdd535c36e8d0fd29dde93 (diff)
downloadslirp-d9c09e573db5dabbdece52e93df5a30dd937a5b5.zip
slirp-d9c09e573db5dabbdece52e93df5a30dd937a5b5.tar.gz
slirp-d9c09e573db5dabbdece52e93df5a30dd937a5b5.tar.bz2
hostfwd: Add SLIRP_HOSTFWD_V6ONLY flag
That allows to request binding on v6 addresses only. Signed-off-by: Samuel Thibault <samuel.thibault@ens-lyon.org>
Diffstat (limited to 'src/socket.c')
-rw-r--r--src/socket.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/src/socket.c b/src/socket.c
index d90c0a4..40c32a5 100644
--- a/src/socket.c
+++ b/src/socket.c
@@ -782,6 +782,7 @@ struct socket *tcpx_listen(Slirp *slirp,
s = slirp_socket(haddr->sa_family, SOCK_STREAM, 0);
if ((s < 0) ||
+ (haddr->sa_family == AF_INET6 && slirp_socket_set_v6only(s, (flags & SS_HOSTFWD_V6ONLY) != 0) < 0) ||
(slirp_socket_set_fast_reuse(s) < 0) ||
(bind(s, haddr, haddrlen) < 0) ||
(listen(s, 1) < 0)) {