X-Git-Url: https://git.m6w6.name/?a=blobdiff_plain;f=libmemcached%2Fresponse.cc;h=cb0e682bd163eaebe51a95e31062b60e720bde04;hb=6b83fd5838692b71a50710b9bc13680f9c586167;hp=67b0999f7f2afff67e462ec9c2c5a4894577aea8;hpb=facfe08e21d2c3135c508ff098ff603ddaacef3e;p=m6w6%2Flibmemcached diff --git a/libmemcached/response.cc b/libmemcached/response.cc index 67b0999f..cb0e682b 100644 --- a/libmemcached/response.cc +++ b/libmemcached/response.cc @@ -416,7 +416,17 @@ static memcached_return_t textual_read_one_response(org::libmemcached::Instance* and buffer[6] == '_' and buffer[7] == 'E' and buffer[8] == 'R' and buffer[9] == 'R' and buffer[10] == 'O' and buffer[11] == 'R') { - return MEMCACHED_CLIENT_ERROR; + // Move past the basic error message and whitespace + char *startptr= buffer + memcached_literal_param_size("CLIENT_ERROR"); + if (startptr[0] == ' ') + { + startptr++; + } + + char *endptr= startptr; + while (*endptr != '\r' && *endptr != '\n') endptr++; + + return memcached_set_error(*instance, MEMCACHED_CLIENT_ERROR, MEMCACHED_AT, startptr, size_t(endptr - startptr)); } } break;