Prototype of a protocol parsing library for the binary protocol
[m6w6/libmemcached] / libmemcached / memcached_connect.c
index 0d61f847bab0996e2de08a41ba333b47851b720c..833ad0efba97f9b9eb126d7f177ab1bb4147aff9 100644 (file)
@@ -81,12 +81,13 @@ static memcached_return set_socket_options(memcached_server_st *ptr)
   }
 #endif
 
+  if (ptr->root->flags & MEM_NO_BLOCK)
   {
     int error;
     struct linger linger;
 
     linger.l_onoff= 1; 
-    linger.l_linger= MEMCACHED_DEFAULT_TIMEOUT; 
+    linger.l_linger= 0; /* By default on close() just drop the socket */ 
     error= setsockopt(ptr->fd, SOL_SOCKET, SO_LINGER, 
                       &linger, (socklen_t)sizeof(struct linger));
     WATCHPOINT_ASSERT(error == 0);
@@ -152,7 +153,7 @@ static memcached_return unix_socket_connect(memcached_server_st *ptr)
     servAddr.sun_family= AF_UNIX;
     strcpy(servAddr.sun_path, ptr->hostname); /* Copy filename */
 
-    addrlen= strlen(servAddr.sun_path) + sizeof(servAddr.sun_family);
+    addrlen= (socklen_t) (strlen(servAddr.sun_path) + sizeof(servAddr.sun_family));
 
 test_connect:
     if (connect(ptr->fd,