memset(&hints, 0, sizeof(hints));
hints.ai_family= AF_INET;
hints.ai_socktype= SOCK_STREAM;
- hints.ai_protocol= 0;
+ hints.ai_protocol= IPPROTO_TCP;
e= getaddrinfo(server->hostname, str_port, &hints, &ai);
if (e != 0)
{
if (ptr->hosts[server_key].fd == -1)
{
+ struct addrinfo *use;
+
/* Old connection junk still is in the structure */
WATCHPOINT_ASSERT(ptr->hosts[server_key].cursor_active == 0);
- struct addrinfo *use;
if (ptr->hosts[server_key].sockaddr_inited == MEMCACHED_NOT_ALLOCATED ||
(!(ptr->flags & MEM_USE_CACHE_LOOKUPS)))
break;
default:
ptr->cached_errno= errno;
+ WATCHPOINT_ASSERT(errno == ECONNREFUSED);
WATCHPOINT_ERRNO(ptr->cached_errno);
+ close(ptr->hosts[server_key].fd);
+ ptr->hosts[server_key].fd= -1;
return MEMCACHED_ERRNO;
}
ptr->connected++;