X-Git-Url: https://git.m6w6.name/?a=blobdiff_plain;ds=sidebyside;f=libmemcached%2Fserver.hpp;h=191402e8a8b56a66f17e444fa7c3470d0445716c;hb=43032586b9809c2e0bbc115cd901754544ea845b;hp=320da1152fe0f07aea280dbfda3ad98e3a29c0cc;hpb=969fea8e7bed82c109685ec3976cf7b0ec514ae9;p=m6w6%2Flibmemcached diff --git a/libmemcached/server.hpp b/libmemcached/server.hpp index 320da115..191402e8 100644 --- a/libmemcached/server.hpp +++ b/libmemcached/server.hpp @@ -37,14 +37,27 @@ #pragma once -#include - #ifdef HAVE_SYS_TIME_H #include #endif #include +memcached_server_st *__server_create_with(memcached_st *memc, + memcached_server_st* self, + const memcached_string_t& hostname, + const in_port_t port, + uint32_t weight, + const memcached_connection_t type); + +memcached_return_t memcached_server_add_parsed(memcached_st *ptr, + const char *hostname, + size_t hostname_length, + in_port_t port, + uint32_t weight); + +void __server_free(memcached_server_st *); + static inline bool memcached_is_valid_servername(const memcached_string_t& arg) { return arg.size > 0 or arg.size < NI_MAXHOST; @@ -56,27 +69,9 @@ static inline void memcached_mark_server_as_clean(memcached_server_write_instanc server->next_retry= 0; } +void memcached_instance_free(memcached_instance_st *); -static inline void set_last_disconnected_host(memcached_server_write_instance_st self) -{ - assert(self->root); - if (self->root == NULL) - { - return; - } - - if (self->root->last_disconnected_server and self->root->last_disconnected_server->version == self->version) - { - return; - } - - // const_cast - memcached_st *root= (memcached_st *)self->root; - - memcached_server_free(root->last_disconnected_server); - root->last_disconnected_server= memcached_server_clone(NULL, self); - root->last_disconnected_server->version= self->version; -} +void set_last_disconnected_host(memcached_server_write_instance_st self); static inline void memcached_mark_server_for_timeout(memcached_server_write_instance_st server) { @@ -93,15 +88,11 @@ static inline void memcached_mark_server_for_timeout(memcached_server_write_inst } server->state= MEMCACHED_SERVER_STATE_IN_TIMEOUT; - server->server_failure_counter++; + if (server->server_failure_counter_query_id != server->root->query_id) + { + server->server_failure_counter++; + server->server_failure_counter_query_id= server->root->query_id; + } set_last_disconnected_host(server); } } - -LIBMEMCACHED_LOCAL - memcached_server_st *__server_create_with(memcached_st *memc, - memcached_server_write_instance_st host, - const memcached_string_t& hostname, - const in_port_t port, - uint32_t weight, - const memcached_connection_t type);