X-Git-Url: https://git.m6w6.name/?a=blobdiff_plain;f=libmemcached%2Fconnect.c;h=b599977fab77ab4799297b1dcb5a9e1197c17f54;hb=56bb95c23210147d45b792e4e494e995d9de76dc;hp=96f26fb80e07f6116435eb4ef9259f4d9db14134;hpb=7f9bc55d79a4e7133fdeaaa1150451717c103b28;p=awesomized%2Flibmemcached diff --git a/libmemcached/connect.c b/libmemcached/connect.c index 96f26fb8..b599977f 100644 --- a/libmemcached/connect.c +++ b/libmemcached/connect.c @@ -111,7 +111,7 @@ static memcached_return_t set_socket_options(memcached_server_st *ptr) return MEMCACHED_FAILURE; } - if (ptr->root->send_size) + if (ptr->root->send_size > 0) { int error; @@ -122,7 +122,7 @@ static memcached_return_t set_socket_options(memcached_server_st *ptr) return MEMCACHED_FAILURE; } - if (ptr->root->recv_size) + if (ptr->root->recv_size > 0) { int error; @@ -208,7 +208,9 @@ static memcached_return_t network_connect(memcached_server_st *ptr) { struct addrinfo *use; - if (!ptr->sockaddr_inited || + WATCHPOINT_ASSERT(ptr->cursor_active == 0); + + if (! ptr->options.sockaddr_inited || (!(ptr->root->flags.use_cache_lookups))) { memcached_return_t rc; @@ -216,7 +218,7 @@ static memcached_return_t network_connect(memcached_server_st *ptr) rc= set_hostinfo(ptr); if (rc != MEMCACHED_SUCCESS) return rc; - ptr->sockaddr_inited= true; + ptr->options.sockaddr_inited= true; } use= ptr->address_info; @@ -282,7 +284,6 @@ static memcached_return_t network_connect(memcached_server_st *ptr) if (ptr->fd != -1) { - WATCHPOINT_ASSERT(ptr->cursor_active == 0); ptr->server_failure_counter= 0; return MEMCACHED_SUCCESS; } @@ -334,12 +335,16 @@ memcached_return_t memcached_connect(memcached_server_st *ptr) if (curr_time.tv_sec < ptr->next_retry) { - if (memcached_behavior_get(ptr->root, MEMCACHED_BEHAVIOR_AUTO_EJECT_HOSTS)) + memcached_st *root= (memcached_st *)ptr->root; + // @todo fix this by fixing behavior to no longer make use of + // memcached_st + if (memcached_behavior_get(root, MEMCACHED_BEHAVIOR_AUTO_EJECT_HOSTS)) { - run_distribution(ptr->root); + run_distribution(root); } - ptr->root->last_disconnected_server = ptr; + root->last_disconnected_server = ptr; + return MEMCACHED_SERVER_MARKED_DEAD; } } @@ -363,7 +368,12 @@ memcached_return_t memcached_connect(memcached_server_st *ptr) WATCHPOINT_ASSERT(0); } - unlikely ( rc != MEMCACHED_SUCCESS) ptr->root->last_disconnected_server = ptr; + unlikely ( rc != MEMCACHED_SUCCESS) + { + //@todo create interface around last_discontected_server + memcached_st *root= (memcached_st *)ptr->root; + root->last_disconnected_server = ptr; + } LIBMEMCACHED_MEMCACHED_CONNECT_END();