Initialize all fields of addrinfo
Signed-off-by: Julien Danjou <julien@danjou.info>
This commit is contained in:
parent
baf31b1bf2
commit
bcf662c1b4
|
@ -201,14 +201,7 @@ static int _xcb_open_decnet(const char *host, const char *protocol, const unsign
|
||||||
static int _xcb_open_tcp(char *host, char *protocol, const unsigned short port)
|
static int _xcb_open_tcp(char *host, char *protocol, const unsigned short port)
|
||||||
{
|
{
|
||||||
int fd = -1;
|
int fd = -1;
|
||||||
struct addrinfo hints = { 0
|
struct addrinfo hints;
|
||||||
#ifdef AI_ADDRCONFIG
|
|
||||||
| AI_ADDRCONFIG
|
|
||||||
#endif
|
|
||||||
#ifdef AI_NUMERICSERV
|
|
||||||
| AI_NUMERICSERV
|
|
||||||
#endif
|
|
||||||
, AF_UNSPEC, SOCK_STREAM };
|
|
||||||
char service[6]; /* "65535" with the trailing '\0' */
|
char service[6]; /* "65535" with the trailing '\0' */
|
||||||
struct addrinfo *results, *addr;
|
struct addrinfo *results, *addr;
|
||||||
char *bracket;
|
char *bracket;
|
||||||
|
@ -216,6 +209,16 @@ static int _xcb_open_tcp(char *host, char *protocol, const unsigned short port)
|
||||||
if (protocol && strcmp("tcp",protocol))
|
if (protocol && strcmp("tcp",protocol))
|
||||||
return -1;
|
return -1;
|
||||||
|
|
||||||
|
memset(&hints, 0, sizeof(hints));
|
||||||
|
#ifdef AI_ADDRCONFIG
|
||||||
|
hints.ai_flags |= AI_ADDRCONFIG;
|
||||||
|
#endif
|
||||||
|
#ifdef AI_NUMERICSERV
|
||||||
|
hints.ai_flags |= AI_NUMERICSERV;
|
||||||
|
#endif
|
||||||
|
hints.ai_family = AF_UNSPEC;
|
||||||
|
hints.ai_socktype = SOCK_STREAM;
|
||||||
|
|
||||||
#ifdef AF_INET6
|
#ifdef AF_INET6
|
||||||
/* Allow IPv6 addresses enclosed in brackets. */
|
/* Allow IPv6 addresses enclosed in brackets. */
|
||||||
if(host[0] == '[' && (bracket = strrchr(host, ']')) && bracket[1] == '\0')
|
if(host[0] == '[' && (bracket = strrchr(host, ']')) && bracket[1] == '\0')
|
||||||
|
|
Loading…
Reference in New Issue