projects
/
m6w6
/
libmemcached
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
|
github
raw
|
patch
|
inline
| side by side (parent:
7f81aa3
)
Fix for lingers socket issues on Freebsd
author
Brian Aker
<brian@tangent.org>
Fri, 14 Dec 2007 10:15:03 +0000
(
02:15
-0800)
committer
Brian Aker
<brian@tangent.org>
Fri, 14 Dec 2007 10:15:03 +0000
(
02:15
-0800)
lib/memcached_connect.c
patch
|
blob
|
history
diff --git
a/lib/memcached_connect.c
b/lib/memcached_connect.c
index f5acadfa6c61892a5261a4ff6f4179bb078465b9..98d7630f589dd9194dbbd64cfb50887716404c70 100644
(file)
--- a/
lib/memcached_connect.c
+++ b/
lib/memcached_connect.c
@@
-140,12
+140,24
@@
static memcached_return tcp_connect(memcached_st *ptr, unsigned int server_key)
{
int error;
struct linger linger;
{
int error;
struct linger linger;
+ struct timeval waittime;
+
+ waittime.tv_sec= 10;
+ waittime.tv_usec= 0;
linger.l_onoff= 1;
linger.l_linger= MEMCACHED_DEFAULT_TIMEOUT;
error= setsockopt(ptr->hosts[server_key].fd, SOL_SOCKET, SO_LINGER,
&linger, (socklen_t)sizeof(struct linger));
WATCHPOINT_ASSERT(error == 0);
linger.l_onoff= 1;
linger.l_linger= MEMCACHED_DEFAULT_TIMEOUT;
error= setsockopt(ptr->hosts[server_key].fd, SOL_SOCKET, SO_LINGER,
&linger, (socklen_t)sizeof(struct linger));
WATCHPOINT_ASSERT(error == 0);
+
+ error= setsockopt(ptr->hosts[server_key].fd, SOL_SOCKET, SO_SNDTIMEO,
+ &waittime, (socklen_t)sizeof(struct timeval));
+ WATCHPOINT_ASSERT(error == 0);
+
+ error= setsockopt(ptr->hosts[server_key].fd, SOL_SOCKET, SO_RCVTIMEO,
+ &waittime, (socklen_t)sizeof(struct timeval));
+ WATCHPOINT_ASSERT(error == 0);
}
if (ptr->flags & MEM_TCP_NODELAY)
}
if (ptr->flags & MEM_TCP_NODELAY)