X-Git-Url: https://git.m6w6.name/?a=blobdiff_plain;f=libmemcached%2Fserver.c;h=0d343f1d0c38460195d4c00f2fdcfbe97d118a26;hb=6cd2ec807b660cbdc893bfbf67d6ad306fb4b942;hp=d0ce3f74fea809da2442dfc36f226477cea3dbcf;hpb=2d95fdb425ede1d1cade2853bc8a1fb6016f0cb9;p=awesomized%2Flibmemcached diff --git a/libmemcached/server.c b/libmemcached/server.c index d0ce3f74..0d343f1d 100644 --- a/libmemcached/server.c +++ b/libmemcached/server.c @@ -115,15 +115,17 @@ memcached_return_t memcached_server_cursor(memcached_st *ptr, { uint32_t y; - for (y= 0; y < ptr->number_of_hosts; y++) + for (y= 0; y < memcached_server_count(ptr); y++) { uint32_t x; + memcached_server_instance_st *instance= + memcached_server_instance_fetch(ptr, y); for (x= 0; x < number_of_callbacks; x++) { unsigned int iferror; - iferror= (*callback[x])(ptr, &ptr->hosts[y], context); + iferror= (*callback[x])(ptr, instance, context); if (iferror) continue; @@ -136,13 +138,14 @@ memcached_return_t memcached_server_cursor(memcached_st *ptr, memcached_server_st *memcached_server_by_key(memcached_st *ptr, const char *key, size_t key_length, memcached_return_t *error) { uint32_t server_key; + memcached_server_instance_st *instance; *error= memcached_validate_key_length(key_length, ptr->flags.binary_protocol); unlikely (*error != MEMCACHED_SUCCESS) return NULL; - unlikely (ptr->number_of_hosts == 0) + unlikely (memcached_server_count(ptr) == 0) { *error= MEMCACHED_NO_SERVERS; return NULL; @@ -155,17 +158,17 @@ memcached_server_st *memcached_server_by_key(memcached_st *ptr, const char *key } server_key= memcached_generate_hash(ptr, key, key_length); + instance= memcached_server_instance_fetch(ptr, server_key); - return memcached_server_clone(NULL, &ptr->hosts[server_key]); + return memcached_server_clone(NULL, instance); } const char *memcached_server_error(memcached_server_st *ptr) { - if (ptr) - return ptr->cached_server_error; - else - return NULL; + return ptr + ? ptr->cached_server_error + : NULL; } void memcached_server_error_reset(memcached_server_st *ptr) @@ -177,3 +180,15 @@ memcached_server_st *memcached_server_get_last_disconnect(memcached_st *ptr) { return ptr->last_disconnected_server; } + +uint32_t memcached_server_list_count(memcached_server_st *ptr) +{ + return (ptr == NULL) + ? 0 + : memcached_servers_count(ptr); +} + +void memcached_server_list_free(memcached_server_st *ptr) +{ + server_list_free(NULL, ptr); +}