X-Git-Url: https://git.m6w6.name/?a=blobdiff_plain;f=libmemcached%2Fconnect.cc;h=602bc5e9d6c914268918bba4144485dcbc71e295;hb=3b22dd937e1f9216c526bcbf7fa3ba51cb37bbf6;hp=7044306e6908cfe864fedb4835084c170a2900c0;hpb=91e92172731fe8a37e562a165d25a312569aff44;p=awesomized%2Flibmemcached diff --git a/libmemcached/connect.cc b/libmemcached/connect.cc index 7044306e..602bc5e9 100644 --- a/libmemcached/connect.cc +++ b/libmemcached/connect.cc @@ -131,7 +131,7 @@ static memcached_return_t set_hostinfo(memcached_server_st *server) char str_port[NI_MAXSERV]; int length= snprintf(str_port, NI_MAXSERV, "%u", (uint32_t)server->port); - if (length >= NI_MAXSERV || length < 0) + if (length >= NI_MAXSERV or length < 0) { return MEMCACHED_FAILURE; } @@ -446,7 +446,7 @@ static memcached_return_t network_connect(memcached_server_st *ptr) if ((connect(ptr->fd, ptr->address_info_next->ai_addr, ptr->address_info_next->ai_addrlen) != SOCKET_ERROR)) { ptr->state= MEMCACHED_SERVER_STATE_CONNECTED; - break; // Success + return MEMCACHED_SUCCESS; } /* An error occurred */ @@ -626,6 +626,11 @@ memcached_return_t memcached_connect(memcached_server_write_instance_st ptr) ptr->server_failure_counter= 0; ptr->next_retry= 0; } + else if (memcached_has_current_error(*ptr)) + { + ptr->server_failure_counter++; + set_last_disconnected_host(ptr); + } else { memcached_set_error(*ptr, rc, MEMCACHED_AT);