return io_wait(ptr, MEM_WRITE);
}
-static memcached_return_t _io_fill(memcached_server_write_instance_st ptr, ssize_t& nread)
+static memcached_return_t _io_fill(memcached_server_write_instance_st ptr)
{
ssize_t data_read;
do
case EFAULT:
case ECONNREFUSED:
default:
- {
- memcached_quit_server(ptr, true);
- nread= -1;
- return memcached_set_errno(*ptr, get_socket_errno(), MEMCACHED_AT);
- }
+ memcached_quit_server(ptr, true);
+ memcached_set_errno(*ptr, get_socket_errno(), MEMCACHED_AT);
+ break;
}
+
+ return memcached_server_error_return(ptr);
}
else if (data_read == 0)
{
it will return EGAIN if data is not immediatly available.
*/
memcached_quit_server(ptr, true);
- nread= -1;
return memcached_set_error(*ptr, MEMCACHED_CONNECTION_FAILURE, MEMCACHED_AT,
memcached_literal_param("::rec() returned zero, server has disconnected"));
}
if (ptr->read_buffer_length == 0)
{
memcached_return_t io_fill_ret;
- if (memcached_fatal(io_fill_ret= _io_fill(ptr, nread)))
+ if (memcached_fatal(io_fill_ret= _io_fill(ptr)))
{
+ nread= -1;
return io_fill_ret;
}
}
if (length > 1)
{
- size_t difference;
-
- difference= (length > ptr->read_buffer_length) ? ptr->read_buffer_length : length;
+ size_t difference= (length > ptr->read_buffer_length) ? ptr->read_buffer_length : length;
memcpy(buffer_ptr, ptr->read_ptr, difference);
length -= difference;