diff options
-rw-r--r-- | src/slirp.c | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/src/slirp.c b/src/slirp.c index e920b43..c04d645 100644 --- a/src/slirp.c +++ b/src/slirp.c @@ -1165,6 +1165,14 @@ int slirp_add_ipv6_hostfwd(Slirp *slirp, int is_udp, struct in6_addr host_addr, int host_port, struct in6_addr guest_addr, int guest_port) { + /* + * Libslirp currently only provides a stateless DHCPv6 server, thus we + * can't translate "addr-any" to the guest. Instead, for now, reject it. + */ + if (in6_zero(&guest_addr)) { + return -1; + } + if (is_udp) { if (!udp6_listen(slirp, host_addr, htons(host_port), guest_addr, htons(guest_port), SS_HOSTFWD)) |