X-Git-Url: https://git.m6w6.name/?a=blobdiff_plain;f=libmemcached%2Fserver.cc;h=ea88967d444716d4599e8194f832d12b2436a0c2;hb=9fd31c03436acf24c593dc3a77c905eb137ef570;hp=cb0f0c2f65bdaeeaf5436f460ef98c523499ac0c;hpb=f0b9c972a973d997db6660680938dd5acb2baa46;p=awesomized%2Flibmemcached diff --git a/libmemcached/server.cc b/libmemcached/server.cc index cb0f0c2f..ea88967d 100644 --- a/libmemcached/server.cc +++ b/libmemcached/server.cc @@ -69,6 +69,8 @@ static inline void _server_init(memcached_server_st *self, memcached_st *root, self->address_info= NULL; self->address_info_next= NULL; + self->state= MEMCACHED_SERVER_STATE_NEW; + if (root) { self->next_retry= root->retry_timeout; @@ -80,13 +82,13 @@ static inline void _server_init(memcached_server_st *self, memcached_st *root, self->root= root; self->limit_maxbytes= 0; - if (hostname == NULL) + if (hostname) { - self->hostname[0]= 0; + strncpy(self->hostname, hostname, NI_MAXHOST - 1); } else { - strncpy(self->hostname, hostname, NI_MAXHOST - 1); + self->hostname[0]= 0; } } @@ -135,7 +137,9 @@ memcached_server_st *memcached_server_create_with(const memcached_st *memc, void memcached_server_free(memcached_server_st *self) { - assert(self); + if (not self) + return; + memcached_quit_server(self, false); if (self->cached_server_error) @@ -146,14 +150,7 @@ void memcached_server_free(memcached_server_st *self) if (memcached_is_allocated(self)) { - if (self->root) - { - libmemcached_free(self->root, self); - } - else - { - free(self); - } + libmemcached_free(self->root, self); } else { @@ -174,7 +171,7 @@ memcached_server_st *memcached_server_clone(memcached_server_st *destination, destination= memcached_server_create_with(source->root, destination, source->hostname, source->port, source->weight, source->type); - if (destination != NULL) + if (not destination) { destination->cached_errno= source->cached_errno; @@ -299,15 +296,7 @@ void memcached_server_list_free(memcached_server_list_st self) } } - memcached_st *root= self->root; - if (root) - { - libmemcached_free(root, self); - } - else - { - free(self); - } + libmemcached_free(self->root, self); } uint32_t memcached_servers_set_count(memcached_server_st *servers, uint32_t count)