3 memcached_return
memcached_do(memcached_server_st
*ptr
, const void *command
,
4 size_t command_length
, uint8_t with_flush
)
9 WATCHPOINT_ASSERT(command_length
);
10 WATCHPOINT_ASSERT(command
);
12 if ((rc
= memcached_connect(ptr
)) != MEMCACHED_SUCCESS
)
19 ** Since non buffering ops in UDP mode dont check to make sure they will fit
20 ** before they start writing, if there is any data in buffer, clear it out,
21 ** otherwise we might get a partial write.
23 if (ptr
->type
== MEMCACHED_CONNECTION_UDP
&& with_flush
&& ptr
->write_buffer_offset
> UDP_DATAGRAM_HEADER_LENGTH
)
24 memcached_io_write(ptr
, NULL
, 0, 1);
26 sent_length
= memcached_io_write(ptr
, command
, command_length
, with_flush
);
28 if (sent_length
== -1 || (size_t)sent_length
!= command_length
)
29 rc
= MEMCACHED_WRITE_FAILURE
;
30 else if ((ptr
->root
->flags
& MEM_NOREPLY
) == 0)
31 memcached_server_response_increment(ptr
);