Make sure we use the correct strerror() in case someone is using threads.
[awesomized/libmemcached] / libmemcached / server.h
index 06142b9647e585b3689270f2d1f6d435b47476b5..d5b5684f5fb1b703aba0ca19e6a28a91b6e7f5dd 100644 (file)
 
 #pragma once
 
+enum memcached_server_state_t {
+  MEMCACHED_SERVER_STATE_NEW, // fd == -1, no address lookup has been done
+  MEMCACHED_SERVER_STATE_ADDRINFO, // ADDRRESS information has been gathered
+  MEMCACHED_SERVER_STATE_IN_PROGRESS,
+  MEMCACHED_SERVER_STATE_CONNECTED
+};
+
 struct memcached_server_st {
   struct {
     bool is_allocated:1;
@@ -53,6 +60,7 @@ struct memcached_server_st {
   uint32_t io_bytes_sent; /* # bytes sent since last read */
   uint32_t server_failure_counter;
   uint32_t weight;
+  enum memcached_server_state_t state;
   struct {
     uint32_t read;
     uint32_t write;
@@ -69,7 +77,7 @@ struct memcached_server_st {
   struct addrinfo *address_info;
   struct addrinfo *address_info_next;
   time_t next_retry;
-  const memcached_st *root;
+  memcached_st *root;
   uint64_t limit_maxbytes;
   char read_buffer[MEMCACHED_MAX_BUFFER];
   char write_buffer[MEMCACHED_MAX_BUFFER];