ea0e705e1b5a352261a98b6b90a3acf077ff5777
[awesomized/libmemcached] / lib / memcached_do.c
1 #include "common.h"
2
3 memcached_return memcached_do(memcached_st *ptr, unsigned int server_key, char *command,
4 size_t command_length, char with_flush)
5 {
6 memcached_return rc;
7 ssize_t sent_length;
8
9 WATCHPOINT_ASSERT(command);
10
11 if (ptr->hosts[server_key].cursor_active)
12 memcached_quit_server(ptr, server_key);
13
14 if ((rc= memcached_connect(ptr, server_key)) != MEMCACHED_SUCCESS)
15 return rc;
16
17 sent_length= memcached_io_write(ptr, server_key, command, command_length, with_flush);
18
19 if (sent_length == -1 || sent_length != command_length)
20 {
21 memcached_quit_server(ptr, server_key);
22 rc= MEMCACHED_WRITE_FAILURE;
23 }
24
25 return rc;
26 }