Incomming code for additions in keys (see Changelog)
[awesomized/libmemcached] / libmemcached / memcached_server.c
index 6dff69408571b4c0f459b60241621878709b584c..fd022355ab9b7a001bc27221dc7e41f14566456f 100644 (file)
@@ -27,6 +27,18 @@ memcached_server_st *memcached_server_create(memcached_st *memc, memcached_serve
 
 void memcached_server_free(memcached_server_st *ptr)
 {
+  memcached_return rc;
+  WATCHPOINT_ASSERT(ptr->is_allocated != MEMCACHED_NOT_ALLOCATED);
+
+  rc= memcached_io_close(ptr);
+  WATCHPOINT_ASSERT(rc == MEMCACHED_SUCCESS);
+
+  if (ptr->address_info)
+  {
+    freeaddrinfo(ptr->address_info);
+    ptr->address_info= NULL;
+  }
+
   if (ptr->is_allocated == MEMCACHED_ALLOCATED)
   {
     if (ptr->root && ptr->root->call_free)
@@ -63,7 +75,7 @@ memcached_server_st *memcached_server_clone(memcached_server_st *clone, memcache
   new_clone->root= ptr->root;
 
   host_reset(new_clone->root, new_clone, 
-             ptr->hostname, ptr->port,
+             ptr->hostname, ptr->port, ptr->weight,
              ptr->type);
 
   return new_clone;