X-Git-Url: https://git.m6w6.name/?a=blobdiff_plain;f=libmemcached%2Fmemcached_connect.c;h=833ad0efba97f9b9eb126d7f177ab1bb4147aff9;hb=94cd1cbfb3fe6d0c446be9151ae9b15f775b6511;hp=e9ae0c76d92c9c0bef3a4e53ab1c7ee10731da15;hpb=a91a68a7c685f82bc6f46c09fa2036e44a82e7f7;p=awesomized%2Flibmemcached diff --git a/libmemcached/memcached_connect.c b/libmemcached/memcached_connect.c index e9ae0c76..833ad0ef 100644 --- a/libmemcached/memcached_connect.c +++ b/libmemcached/memcached_connect.c @@ -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, @@ -218,7 +219,7 @@ static memcached_return network_connect(memcached_server_st *ptr) (void)set_socket_options(ptr); - int flags; + int flags= 0; if (ptr->root->connect_timeout) { flags= fcntl(ptr->fd, F_GETFL, 0); @@ -306,6 +307,7 @@ memcached_return memcached_connect(memcached_server_st *ptr) LIBMEMCACHED_MEMCACHED_CONNECT_START(); /* both retry_timeout and server_failure_limit must be set in order to delay retrying a server on error. */ + WATCHPOINT_ASSERT(ptr->root); if (ptr->root->retry_timeout && ptr->root->server_failure_limit) { struct timeval next_time;