Merge in code such that we are much closer to running the same test
[awesomized/libmemcached] / libmemcached / server.h
index d4005f89c222cfb456916a2fdacc50e8e887aeae..9000454988f7ac99dbc2d27e7c8df0b955139e6d 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;
@@ -118,6 +126,13 @@ LIBMEMCACHED_API
 memcached_return_t memcached_server_add(memcached_st *ptr,
                                         const char *hostname, in_port_t port);
 
+LIBMEMCACHED_LOCAL
+  memcached_return_t memcached_server_add_parsed(memcached_st *ptr,
+                                                 const char *hostname,
+                                                 size_t hostname_length,
+                                                 in_port_t port,
+                                                 uint32_t weight);
+
 LIBMEMCACHED_API
 memcached_return_t memcached_server_add_udp_with_weight(memcached_st *ptr,
                                                         const char *hostname,