make IPv6 optional
This commit is contained in:
parent
0593989103
commit
9bf8329b50
|
@ -93,6 +93,7 @@ static Xauth *get_authptr(struct sockaddr *sockname, unsigned int socknamelen,
|
||||||
family = FamilyLocal; /* 256 */
|
family = FamilyLocal; /* 256 */
|
||||||
switch(sockname->sa_family)
|
switch(sockname->sa_family)
|
||||||
{
|
{
|
||||||
|
#ifdef AF_INET6
|
||||||
case AF_INET6:
|
case AF_INET6:
|
||||||
addr = (char *) SIN6_ADDR(sockname);
|
addr = (char *) SIN6_ADDR(sockname);
|
||||||
addrlen = sizeof(*SIN6_ADDR(sockname));
|
addrlen = sizeof(*SIN6_ADDR(sockname));
|
||||||
|
@ -104,6 +105,7 @@ static Xauth *get_authptr(struct sockaddr *sockname, unsigned int socknamelen,
|
||||||
}
|
}
|
||||||
addr += 12;
|
addr += 12;
|
||||||
/* if v4-mapped, fall through. */
|
/* if v4-mapped, fall through. */
|
||||||
|
#endif
|
||||||
case AF_INET:
|
case AF_INET:
|
||||||
if(!addr)
|
if(!addr)
|
||||||
addr = (char *) &((struct sockaddr_in *)sockname)->sin_addr;
|
addr = (char *) &((struct sockaddr_in *)sockname)->sin_addr;
|
||||||
|
@ -179,6 +181,7 @@ static int compute_auth(xcb_auth_info_t *info, Xauth *authptr, struct sockaddr *
|
||||||
APPEND(info->data, j, si->sin_port);
|
APPEND(info->data, j, si->sin_port);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
#ifdef AF_INET6
|
||||||
case AF_INET6:
|
case AF_INET6:
|
||||||
/*block*/ {
|
/*block*/ {
|
||||||
struct sockaddr_in6 *si6 = (struct sockaddr_in6 *) sockname;
|
struct sockaddr_in6 *si6 = (struct sockaddr_in6 *) sockname;
|
||||||
|
@ -199,6 +202,7 @@ static int compute_auth(xcb_auth_info_t *info, Xauth *authptr, struct sockaddr *
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
#endif
|
||||||
case AF_UNIX:
|
case AF_UNIX:
|
||||||
/*block*/ {
|
/*block*/ {
|
||||||
uint32_t fakeaddr = htonl(0xffffffff - next_nonce());
|
uint32_t fakeaddr = htonl(0xffffffff - next_nonce());
|
||||||
|
|
|
@ -216,6 +216,7 @@ 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;
|
||||||
|
|
||||||
|
#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')
|
||||||
{
|
{
|
||||||
|
@ -224,6 +225,7 @@ static int _xcb_open_tcp(char *host, char *protocol, const unsigned short port)
|
||||||
hints.ai_flags |= AI_NUMERICHOST;
|
hints.ai_flags |= AI_NUMERICHOST;
|
||||||
hints.ai_family = AF_INET6;
|
hints.ai_family = AF_INET6;
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
snprintf(service, sizeof(service), "%hu", port);
|
snprintf(service, sizeof(service), "%hu", port);
|
||||||
if(getaddrinfo(host, service, &hints, &results))
|
if(getaddrinfo(host, service, &hints, &results))
|
||||||
|
|
Loading…
Reference in New Issue