From fb5e2b8c2f661f935f5181765ddc6ceb94882ff9 Mon Sep 17 00:00:00 2001 From: Sergey Lyubka <valenok@gmail.com> Date: Tue, 5 Mar 2013 18:55:33 +0000 Subject: [PATCH] Setting off IPV6_V6ONLY for USE_IPV6 case --- mongoose.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/mongoose.c b/mongoose.c index f407688d7..732695ed6 100644 --- a/mongoose.c +++ b/mongoose.c @@ -4474,6 +4474,9 @@ static int parse_port_string(const struct vec *vec, struct socket *so) { static int set_ports_option(struct mg_context *ctx) { const char *list = ctx->config[LISTENING_PORTS]; int on = 1, success = 1; +#if defined(USE_IPV6) + int off = 0; +#endif struct vec vec; struct socket so; @@ -4491,6 +4494,10 @@ static int set_ports_option(struct mg_context *ctx) { // broadcast UDP sockets setsockopt(so.sock, SOL_SOCKET, SO_REUSEADDR, (void *) &on, sizeof(on)) != 0 || +#if defined(USE_IPV6) + setsockopt(so.sock, IPPROTO_IPV6, IPV6_V6ONLY, (void *) &off, + sizeof(off)) != 0 || +#endif bind(so.sock, &so.lsa.sa, sizeof(so.lsa)) != 0 || listen(so.sock, SOMAXCONN) != 0) { cry(fc(ctx), "%s: cannot bind to %.*s: %s", __func__, -- GitLab