Skip to content

Commit 46bddd2

Browse files
committed
drop [] from address, commonly used for IPv6
1 parent 5a37e1f commit 46bddd2

File tree

1 file changed

+15
-1
lines changed

1 file changed

+15
-1
lines changed

src/libmemcached/connect.cc

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,8 +46,22 @@ static memcached_return_t set_hostinfo(memcached_instance_st *server) {
4646
assert(server->address_info == NULL);
4747
assert(server->address_info_next == NULL);
4848
int errcode;
49+
char hostname[MEMCACHED_NI_MAXHOST];
50+
const char *addr;
51+
char *p;
52+
4953
assert(server->hostname());
50-
switch (errcode = getaddrinfo(server->hostname(), str_port, &hints, &server->address_info)) {
54+
// drop [] from address, commonly used for IPv6
55+
addr = server->hostname();
56+
if (*addr == '[') {
57+
strcpy(hostname, addr +1);
58+
p = strchr(hostname, ']');
59+
if (p) {
60+
*p = 0;
61+
addr = hostname;
62+
}
63+
}
64+
switch (errcode = getaddrinfo(addr, str_port, &hints, &server->address_info)) {
5165
case 0:
5266
server->address_info_next = server->address_info;
5367
server->state = MEMCACHED_SERVER_STATE_ADDRINFO;

0 commit comments

Comments
 (0)