projects
/
m6w6
/
libmemcached
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
|
github
raw
|
inline
| side by side
Fix snd/recv when number is higher then domain of value.
[m6w6/libmemcached]
/
libmemcached
/
connect.cc
diff --git
a/libmemcached/connect.cc
b/libmemcached/connect.cc
index 1ace3fd8c72b47a39f1dc683d98df5375c5fdbe4..dfe69c0b3d51424172360e6ce365e4e7be1fdf0a 100644
(file)
--- a/
libmemcached/connect.cc
+++ b/
libmemcached/connect.cc
@@
-250,27
+250,26
@@
static void set_socket_options(org::libmemcached::Instance* server)
}
#ifdef HAVE_SNDTIMEO
}
#ifdef HAVE_SNDTIMEO
- if (server->root->snd_timeout)
+ if (server->root->snd_timeout
> 0
)
{
struct timeval waittime;
{
struct timeval waittime;
- waittime.tv_sec= 0;
- waittime.tv_usec= server->root->snd_timeout;
+ waittime.tv_sec=
server->root->snd_timeout / 100000
0;
+ waittime.tv_usec= server->root->snd_timeout
% 1000000
;
int error= setsockopt(server->fd, SOL_SOCKET, SO_SNDTIMEO,
int error= setsockopt(server->fd, SOL_SOCKET, SO_SNDTIMEO,
- &waittime, (socklen_t)sizeof(struct timeval));
- (void)(error);
+ &waittime, (socklen_t)sizeof(struct timeval));
assert(error == 0);
}
#endif
#ifdef HAVE_RCVTIMEO
assert(error == 0);
}
#endif
#ifdef HAVE_RCVTIMEO
- if (server->root->rcv_timeout)
+ if (server->root->rcv_timeout
> 0
)
{
struct timeval waittime;
{
struct timeval waittime;
- waittime.tv_sec= 0;
- waittime.tv_usec= server->root->rcv_timeout;
+ waittime.tv_sec=
server->root->rcv_timeout / 100000
0;
+ waittime.tv_usec= server->root->rcv_timeout
% 1000000
;
int error= setsockopt(server->fd, SOL_SOCKET, SO_RCVTIMEO,
&waittime, (socklen_t)sizeof(struct timeval));
int error= setsockopt(server->fd, SOL_SOCKET, SO_RCVTIMEO,
&waittime, (socklen_t)sizeof(struct timeval));
@@
-737,6
+736,11
@@
static memcached_return_t _memcached_connect(org::libmemcached::Instance* server
memcached_return_t memcached_connect_try(org::libmemcached::Instance* server)
{
memcached_return_t memcached_connect_try(org::libmemcached::Instance* server)
{
+ if (server and server->root and server->root->state.is_parsing)
+ {
+ return MEMCACHED_SUCCESS;
+ }
+
return _memcached_connect(server, false);
}
return _memcached_connect(server, false);
}