From: Stefan Sperling Subject: gotwebd: fix unix-domain sockets + IPv6 To: gameoftrees@openbsd.org Date: Tue, 16 Aug 2022 18:24:56 +0200 parse.y must only fetch IP addresses if FCGI mode is enabled for a server. Otherwise, on IPv6 enabled-systems, a gotwebd unix-domain socket server will still try to listen on IPv6 by default. Found via debug log output: config_getsock: name=localhost-unix_child id=3 server=localhost-unix \ child_id=0 parent_id=1 type=fcgi ipv4=0 ipv6=1 socket_path=none ok? diff e087e1f6e7b926dcff23d90de416399c114d582e 93d778c7f2208a24a4a3f9f5ccf8c8abd0fcae7b commit - e087e1f6e7b926dcff23d90de416399c114d582e commit + 93d778c7f2208a24a4a3f9f5ccf8c8abd0fcae7b blob - 6a19cc971eac7c808d5e66cf765ae45df9f34677 blob + 0ca15455603ce181da678196d0433365c1fc92df --- gotwebd/parse.y +++ gotwebd/parse.y @@ -251,10 +251,13 @@ server : SERVER STRING { log_debug("adding server %s", $2); free($2); } '{' optnl serveropts2 '}' { - if (get_addrs(new_srv->fcgi_socket_bind, - &new_srv->al, new_srv->fcgi_socket_port) == -1) { - yyerror("could not get tcp iface addrs"); - YYERROR; + if (new_srv->fcgi_socket) { + if (get_addrs(new_srv->fcgi_socket_bind, + &new_srv->al, new_srv->fcgi_socket_port) + == -1) { + yyerror("could not get tcp iface addr"); + YYERROR; + } } } ;