X-Git-Url: https://git.m6w6.name/?a=blobdiff_plain;f=lib%2Fmemcached_hosts.c;h=0fcf4cdb9e7c7c38048ba470a96e68f249618224;hb=7ef83f5c1f71a8527a5f3001d72772ac692bcf14;hp=64892212009361da7d5b47ac37acd8e5acf984fd;hpb=d6505b16fb85f77527934510d0395adfcbb66377;p=m6w6%2Flibmemcached diff --git a/lib/memcached_hosts.c b/lib/memcached_hosts.c index 64892212..0fcf4cdb 100644 --- a/lib/memcached_hosts.c +++ b/lib/memcached_hosts.c @@ -1,6 +1,15 @@ #include #include "common.h" +static void host_reset(memcached_server_st *host, char *new_hostname, unsigned int port) +{ + host->stack_responses= 0; + host->cursor_active= 0; + host->hostname= new_hostname; + host->port= port; + host->fd= -1; +} + memcached_return memcached_server_push(memcached_st *ptr, memcached_server_st *list) { unsigned int x; @@ -26,9 +35,11 @@ memcached_return memcached_server_push(memcached_st *ptr, memcached_server_st *l ptr->hosts[ptr->number_of_hosts].hostname= strdup(list[x].hostname); ptr->hosts[ptr->number_of_hosts].port= list[x].port; ptr->hosts[ptr->number_of_hosts].fd= list[x].fd; + ptr->hosts[ptr->number_of_hosts].stack_responses= list[x].stack_responses; + ptr->hosts[ptr->number_of_hosts].cursor_active= list[x].cursor_active; ptr->number_of_hosts++; } - memset(&ptr->hosts[ptr->number_of_hosts], 0, sizeof(memcached_server_st)); + host_reset(&ptr->hosts[ptr->number_of_hosts], NULL, 0); return MEMCACHED_SUCCESS; } @@ -52,7 +63,7 @@ memcached_return memcached_server_add(memcached_st *ptr, char *hostname, unsigne sizeof(memcached_server_st) * (ptr->number_of_hosts+1)); if (!new_host_list) return MEMCACHED_MEMORY_ALLOCATION_FAILURE; - memset(&new_host_list[ptr->number_of_hosts], 0, sizeof(memcached_server_st)); + host_reset(&new_host_list[ptr->number_of_hosts], NULL, 0); } else { @@ -60,7 +71,8 @@ memcached_return memcached_server_add(memcached_st *ptr, char *hostname, unsigne (memcached_server_st *)malloc(sizeof(memcached_server_st) * 2); if (!new_host_list) return MEMCACHED_MEMORY_ALLOCATION_FAILURE; - memset(new_host_list, 0, sizeof(memcached_server_st) * 2); + host_reset(&new_host_list[0], NULL, 0); + host_reset(&new_host_list[1], NULL, 0); } ptr->hosts= new_host_list; @@ -73,9 +85,7 @@ memcached_return memcached_server_add(memcached_st *ptr, char *hostname, unsigne memset(new_hostname, 0, strlen(hostname)+1); memcpy(new_hostname, hostname, strlen(hostname)); - ptr->hosts[ptr->number_of_hosts].hostname= new_hostname; - ptr->hosts[ptr->number_of_hosts].port= port; - ptr->hosts[ptr->number_of_hosts].fd= -1; + host_reset(&ptr->hosts[ptr->number_of_hosts], new_hostname, port); ptr->number_of_hosts++; LIBMEMCACHED_MEMCACHED_SERVER_ADD_END(); @@ -105,7 +115,7 @@ memcached_server_st *memcached_server_list_append(memcached_server_st *ptr, new_host_list= (memcached_server_st *)realloc(ptr, sizeof(memcached_server_st) * count); if (!new_host_list) goto error; - memset(&new_host_list[count-1], 0, sizeof(memcached_server_st)); + host_reset(&new_host_list[count-1], NULL, 0); } else { @@ -113,7 +123,8 @@ memcached_server_st *memcached_server_list_append(memcached_server_st *ptr, new_host_list= (memcached_server_st *)malloc(sizeof(memcached_server_st) * count); if (!new_host_list) goto error; - memset(new_host_list, 0, sizeof(memcached_server_st) * 2); + host_reset(&new_host_list[0], NULL, 0); + host_reset(&new_host_list[1], NULL, 0); } new_hostname= strdup(hostname); @@ -121,9 +132,7 @@ memcached_server_st *memcached_server_list_append(memcached_server_st *ptr, if (!new_hostname) goto error; - new_host_list[count-2].hostname= new_hostname; - new_host_list[count-2].port= port; - new_host_list[count-2].fd= -1; + host_reset(&new_host_list[count-2], new_hostname, port); *error= MEMCACHED_SUCCESS; return new_host_list;