projects
/
awesomized
/
libmemcached
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
|
github
raw
|
inline
| side by side
Update hardening flags.
[awesomized/libmemcached]
/
libmemcached
/
connect.cc
diff --git
a/libmemcached/connect.cc
b/libmemcached/connect.cc
index 1ace3fd8c72b47a39f1dc683d98df5375c5fdbe4..8d027df27fc229b44659d59ef4144954335dd1f9 100644
(file)
--- a/
libmemcached/connect.cc
+++ b/
libmemcached/connect.cc
@@
-250,27
+250,27
@@
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));
+ (void)
error
;
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));
@@
-285,11
+285,14
@@
static void set_socket_options(org::libmemcached::Instance* server)
int set= 1;
int error= setsockopt(server->fd, SOL_SOCKET, SO_NOSIGPIPE, (void *)&set, sizeof(int));
int set= 1;
int error= setsockopt(server->fd, SOL_SOCKET, SO_NOSIGPIPE, (void *)&set, sizeof(int));
+ assert(error == 0);
+
// This is not considered a fatal error
if (error == -1)
{
// This is not considered a fatal error
if (error == -1)
{
- WATCHPOINT_ERRNO(get_socket_errno());
+#if 0
perror("setsockopt(SO_NOSIGPIPE)");
perror("setsockopt(SO_NOSIGPIPE)");
+#endif
}
}
#endif
}
}
#endif
@@
-737,6
+740,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);
}