X-Git-Url: https://git.m6w6.name/?a=blobdiff_plain;f=libmemcached%2Fmemcached_version.c;h=30bcb1bd28554638681c45618036cd93d3b71048;hb=b17eff0fd7c48f66c907f5a4c9d4df3eda1a381b;hp=182ff14e316da66983f75cc4625379645c67f622;hpb=2fe4e1635c70f4b2815aaf9bc147fee0b2c93de3;p=awesomized%2Flibmemcached diff --git a/libmemcached/memcached_version.c b/libmemcached/memcached_version.c index 182ff14e..30bcb1bd 100644 --- a/libmemcached/memcached_version.c +++ b/libmemcached/memcached_version.c @@ -10,6 +10,9 @@ static inline memcached_return memcached_version_textual(memcached_st *ptr); memcached_return memcached_version(memcached_st *ptr) { + if (ptr->flags & MEM_USE_UDP) + return MEMCACHED_NOT_SUPPORTED; + if (ptr->flags & MEM_BINARY_PROTOCOL) return memcached_version_binary(ptr); else @@ -41,7 +44,10 @@ static inline memcached_return memcached_version_textual(memcached_st *ptr) rrc= memcached_response(&ptr->hosts[x], buffer, MEMCACHED_DEFAULT_COMMAND_SIZE, NULL); if (rrc != MEMCACHED_SUCCESS) + { rc= MEMCACHED_SOME_ERRORS; + continue; + } /* Find the space, and then move one past it to copy version */ response_ptr= index(buffer, ' '); @@ -63,7 +69,7 @@ static inline memcached_return memcached_version_binary(memcached_st *ptr) { memcached_return rc; unsigned int x; - protocol_binary_request_version request= {0}; + 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; @@ -94,6 +100,7 @@ static inline memcached_return memcached_version_binary(memcached_st *ptr) { memcached_io_reset(&ptr->hosts[x]); rc= MEMCACHED_SOME_ERRORS; + continue; } ptr->hosts[x].major_version= (uint8_t)strtol(buffer, &p, 10);