Each server in the --bind_address option list passes through the function
user_server_port_strn_assign() (in perdition/server_port.c) which
separates the user, server and port components. This function does not
recognize IPv6 address literals as documented in RFC 3986 (i.e., IPv6
addresses enclosed in brackets.)
For example, address literal [2001:db8:1000:1::2] will be separated into
"server" [2001:db8:1000:1: and "port" 2] , which are syntactically
incorrect and will produce an error in getaddrinfo(). The enclosed patch
adds IPv6 literal handling.
(A workaround is to use a "naked" IPv6 address with the port
specification, e.g., 2001:db8:1000:1::2:110 , but this is a) ugly and b)
not standards-compliant.)
i.