the getaddrinfo() requires either a non-null name for the server or
a port service / number. In the code that opens a connection we have
been calling this with a dummy port number of "0". Unfortunately this
triggers a bug in some BSD versions and OSes importing that code.
In this part of the code we do not really need a port number, since it
is not reasonable to open a connection to an unspecified host.
Setting hints info field to 0, and the servname parm to nullptr works
around the BSD bug in this case.
Signed-off-by: Iain Sandoe <iain@sandoe.co.uk>
libcody/ChangeLog:
* netclient.cc (OpenInet6): Do not provide a dummy port number
in the getaddrinfo() call.
}
addrinfo hints;
- hints.ai_flags = AI_NUMERICSERV;
+ hints.ai_flags = 0;
hints.ai_family = AF_INET6;
hints.ai_socktype = SOCK_STREAM;
hints.ai_protocol = 0;
hints.ai_canonname = nullptr;
hints.ai_next = nullptr;
- /* getaddrinfo requires a port number, but is quite happy to accept
- invalid ones. So don't rely on it. */
- if (int err = getaddrinfo (name, "0", &hints, &addrs))
+ if (int err = getaddrinfo (name, nullptr, &hints, &addrs))
{
errstr = gai_strerror (err);
// What's the best errno to set?