X-Git-Url: https://git.m6w6.name/?a=blobdiff_plain;f=libmemcached%2Fconnect.cc;h=1cfe7940037bdf0989d3b8ce7a14bdbea3a63703;hb=941e70da7af67963afdfee3806b43d24d40e7855;hp=6d9003770b039eaa30606d43280e2936e100dc44;hpb=a83eb6704af40530cf38935cb30dd576af563e61;p=awesomized%2Flibmemcached diff --git a/libmemcached/connect.cc b/libmemcached/connect.cc index 6d900377..1cfe7940 100644 --- a/libmemcached/connect.cc +++ b/libmemcached/connect.cc @@ -146,7 +146,7 @@ static memcached_return_t connect_poll(memcached_instance_st* server, const int return memcached_set_errno(*server, errno, MEMCACHED_AT, memcached_literal_param("getsockopt() errored while looking up error state from poll()")); } - // We check the value to see what happened wth the socket. + // We check the value to see what happened with the socket. if (err == 0) // Should not happen { return MEMCACHED_SUCCESS; @@ -477,6 +477,7 @@ static memcached_return_t unix_socket_connect(memcached_instance_st* server) { case EINPROGRESS: case EALREADY: + case EAGAIN: server->events(POLLOUT); break; @@ -537,13 +538,6 @@ static memcached_return_t network_connect(memcached_instance_st* server) /* Create the socket */ while (server->address_info_next and server->fd == INVALID_SOCKET) { - /* Memcache server does not support IPV6 in udp mode, so skip if not ipv4 */ - if (memcached_is_udp(server->root) and server->address_info_next->ai_family != AF_INET) - { - server->address_info_next= server->address_info_next->ai_next; - continue; - } - int type= server->address_info_next->ai_socktype; if (SOCK_CLOEXEC != 0) { @@ -585,7 +579,6 @@ static memcached_return_t network_connect(memcached_instance_st* server) timeout_error_occured= true; break; - case EAGAIN: #if EWOULDBLOCK != EAGAIN case EWOULDBLOCK: #endif @@ -623,6 +616,7 @@ static memcached_return_t network_connect(memcached_instance_st* server) // Probably not running service default: + memcached_set_errno(*server, local_error, MEMCACHED_AT); break; }