X-Git-Url: https://git.m6w6.name/?a=blobdiff_plain;ds=sidebyside;f=libmemcached%2Fresponse.cc;h=cb0e682bd163eaebe51a95e31062b60e720bde04;hb=99332db60646cb1b06a61d1636eddbbf0b5d0b40;hp=67b0999f7f2afff67e462ec9c2c5a4894577aea8;hpb=674c7578fa870c3b57e81e765c355ce98434b310;p=awesomized%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;