X-Git-Url: https://git.m6w6.name/?a=blobdiff_plain;f=libmemcached%2Fconnect.cc;h=7044306e6908cfe864fedb4835084c170a2900c0;hb=91e92172731fe8a37e562a165d25a312569aff44;hp=ecff63865c5904a4213e5c53e866b61acb9d07f2;hpb=c5c5f2799a24eac8df5e11f447b48e031299579a;p=m6w6%2Flibmemcached diff --git a/libmemcached/connect.cc b/libmemcached/connect.cc index ecff6386..7044306e 100644 --- a/libmemcached/connect.cc +++ b/libmemcached/connect.cc @@ -515,11 +515,20 @@ static memcached_return_t network_connect(memcached_server_st *ptr) struct timeval next_time; if (gettimeofday(&next_time, NULL) == 0) + { ptr->next_retry= next_time.tv_sec + ptr->root->retry_timeout; + } + } + + if (memcached_has_current_error(*ptr)) + { + return memcached_server_error_return(ptr); } - if (timeout_error_occured) + if (timeout_error_occured and ptr->state < MEMCACHED_SERVER_STATE_IN_PROGRESS) + { return memcached_set_error(*ptr, MEMCACHED_TIMEOUT, MEMCACHED_AT); + } return memcached_set_error(*ptr, MEMCACHED_CONNECTION_FAILURE, MEMCACHED_AT); /* The last error should be from connect() */ }