X-Git-Url: https://git.m6w6.name/?a=blobdiff_plain;f=lib%2Fmemcached_fetch.c;h=8d281f35d182dd0758df03425cad4c7b24cdea0d;hb=3bd95102380ff8d9f2599f0965c09776344d0691;hp=d96d33fb2e92329fbf44fbab07f8a9b836b6bfa9;hpb=758bc213bbf8e00c6f33903c1c845c69f39a1ab0;p=m6w6%2Flibmemcached diff --git a/lib/memcached_fetch.c b/lib/memcached_fetch.c index d96d33fb..8d281f35 100644 --- a/lib/memcached_fetch.c +++ b/lib/memcached_fetch.c @@ -35,7 +35,7 @@ static memcached_return memcached_value_fetch(memcached_st *ptr, char *key, size { *key_length= 0; - for (; isalnum(*string_ptr); string_ptr++) + for (; isgraph(*string_ptr); string_ptr++) { *key= *string_ptr; key++; @@ -43,7 +43,7 @@ static memcached_return memcached_value_fetch(memcached_st *ptr, char *key, size } } else /* Skip characters */ - for (; isalnum(*string_ptr); string_ptr++); + for (; isgraph(*string_ptr); string_ptr++); if (end_ptr == string_ptr) goto read_error; @@ -147,6 +147,9 @@ char *memcached_fetch(memcached_st *ptr, char *key, size_t *key_length, memcached_string_st *result_buffer; result_buffer= &ptr->result_buffer; + if (ptr->flags & MEM_NO_BLOCK) + memcached_io_preread(ptr); + while (ptr->cursor_server < ptr->number_of_hosts) { if (!ptr->hosts[ptr->cursor_server].cursor_active) @@ -185,6 +188,9 @@ memcached_result_st *memcached_fetch_result(memcached_st *ptr, WATCHPOINT_ASSERT(result->value.is_allocated != MEMCACHED_USED); + if (ptr->flags & MEM_NO_BLOCK) + memcached_io_preread(ptr); + while (ptr->cursor_server < ptr->number_of_hosts) { if (!ptr->hosts[ptr->cursor_server].cursor_active) @@ -212,7 +218,7 @@ memcached_result_st *memcached_fetch_result(memcached_st *ptr, return NULL; } - /* An error has occurred */ + /* We have completed reading data */ if (result->is_allocated == MEMCACHED_ALLOCATED) memcached_result_free(result); else