X-Git-Url: https://git.m6w6.name/?a=blobdiff_plain;f=libmemcached%2Fversion.c;h=ba0b243ed9bdf746281e06066a54fc20b5a54b37;hb=b539fd56a235cfbbdd12ebc64c66686b518573d0;hp=db2419cfab3ef927a38e130348d6ab598bfe906b;hpb=7c7750f02368b570353ea109f23a0ea26d226e02;p=awesomized%2Flibmemcached diff --git a/libmemcached/version.c b/libmemcached/version.c index db2419cf..ba0b243e 100644 --- a/libmemcached/version.c +++ b/libmemcached/version.c @@ -21,7 +21,6 @@ memcached_return_t memcached_version(memcached_st *ptr) static inline memcached_return_t memcached_version_textual(memcached_st *ptr) { - unsigned int x; size_t send_length; memcached_return_t rc; char buffer[MEMCACHED_DEFAULT_COMMAND_SIZE]; @@ -31,18 +30,20 @@ static inline memcached_return_t memcached_version_textual(memcached_st *ptr) send_length= strlen(command); rc= MEMCACHED_SUCCESS; - for (x= 0; x < ptr->number_of_hosts; x++) + for (uint32_t x= 0; x < memcached_server_count(ptr); x++) { memcached_return_t rrc; + memcached_server_write_instance_st instance= + memcached_server_instance_fetch(ptr, x); - rrc= memcached_do(&ptr->hosts[x], command, send_length, 1); + rrc= memcached_do(instance, command, send_length, true); if (rrc != MEMCACHED_SUCCESS) { rc= MEMCACHED_SOME_ERRORS; continue; } - rrc= memcached_response(&ptr->hosts[x], buffer, MEMCACHED_DEFAULT_COMMAND_SIZE, NULL); + rrc= memcached_response(instance, buffer, MEMCACHED_DEFAULT_COMMAND_SIZE, NULL); if (rrc != MEMCACHED_SUCCESS) { rc= MEMCACHED_SOME_ERRORS; @@ -53,13 +54,13 @@ static inline memcached_return_t memcached_version_textual(memcached_st *ptr) response_ptr= index(buffer, ' '); response_ptr++; - ptr->hosts[x].major_version= (uint8_t)strtol(response_ptr, (char **)NULL, 10); + instance->major_version= (uint8_t)strtol(response_ptr, (char **)NULL, 10); response_ptr= index(response_ptr, '.'); response_ptr++; - ptr->hosts[x].minor_version= (uint8_t)strtol(response_ptr, (char **)NULL, 10); + instance->minor_version= (uint8_t)strtol(response_ptr, (char **)NULL, 10); response_ptr= index(response_ptr, '.'); response_ptr++; - ptr->hosts[x].micro_version= (uint8_t)strtol(response_ptr, (char **)NULL, 10); + instance->micro_version= (uint8_t)strtol(response_ptr, (char **)NULL, 10); } return rc; @@ -68,45 +69,52 @@ static inline memcached_return_t memcached_version_textual(memcached_st *ptr) static inline memcached_return_t memcached_version_binary(memcached_st *ptr) { memcached_return_t rc; - unsigned int x; protocol_binary_request_version request= { .bytes= {0}}; request.message.header.request.magic= PROTOCOL_BINARY_REQ; request.message.header.request.opcode= PROTOCOL_BINARY_CMD_VERSION; request.message.header.request.datatype= PROTOCOL_BINARY_RAW_BYTES; rc= MEMCACHED_SUCCESS; - for (x= 0; x < ptr->number_of_hosts; x++) + for (uint32_t x= 0; x < memcached_server_count(ptr); x++) { memcached_return_t rrc; - rrc= memcached_do(&ptr->hosts[x], request.bytes, sizeof(request.bytes), 1); + memcached_server_write_instance_st instance= + memcached_server_instance_fetch(ptr, x); + + rrc= memcached_do(instance, request.bytes, sizeof(request.bytes), true); if (rrc != MEMCACHED_SUCCESS) { - memcached_io_reset(&ptr->hosts[x]); + memcached_io_reset(instance); rc= MEMCACHED_SOME_ERRORS; continue; } } - for (x= 0; x < ptr->number_of_hosts; x++) - if (memcached_server_response_count(&ptr->hosts[x]) > 0) + for (uint32_t x= 0; x < memcached_server_count(ptr); x++) + { + memcached_server_write_instance_st instance= + memcached_server_instance_fetch(ptr, x); + + if (memcached_server_response_count(instance) > 0) { memcached_return_t rrc; char buffer[32]; char *p; - rrc= memcached_response(&ptr->hosts[x], buffer, sizeof(buffer), NULL); + rrc= memcached_response(instance, buffer, sizeof(buffer), NULL); if (rrc != MEMCACHED_SUCCESS) { - memcached_io_reset(&ptr->hosts[x]); + memcached_io_reset(instance); rc= MEMCACHED_SOME_ERRORS; continue; } - ptr->hosts[x].major_version= (uint8_t)strtol(buffer, &p, 10); - ptr->hosts[x].minor_version= (uint8_t)strtol(p + 1, &p, 10); - ptr->hosts[x].micro_version= (uint8_t)strtol(p + 1, NULL, 10); + instance->major_version= (uint8_t)strtol(buffer, &p, 10); + instance->minor_version= (uint8_t)strtol(p + 1, &p, 10); + instance->micro_version= (uint8_t)strtol(p + 1, NULL, 10); } + } return rc; }