projects
/
awesomized
/
libmemcached
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
|
github
raw
|
inline
| side by side
Fixed retry counter wrongly incremented in case of certain behavior change
[awesomized/libmemcached]
/
libmemcached
/
memcached_connect.c
diff --git
a/libmemcached/memcached_connect.c
b/libmemcached/memcached_connect.c
index 66525183c4a114c5800de32a027e9a0ce6b76b0d..833ad0efba97f9b9eb126d7f177ab1bb4147aff9 100644
(file)
--- 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
}
#endif
+ if (ptr->root->flags & MEM_NO_BLOCK)
{
int error;
struct linger linger;
linger.l_onoff= 1;
{
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);
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 */
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,
test_connect:
if (connect(ptr->fd,
@@
-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. */
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;
if (ptr->root->retry_timeout && ptr->root->server_failure_limit)
{
struct timeval next_time;