projects
/
m6w6
/
libmemcached
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
|
github
raw
|
inline
| side by side
Deprecate MEMCACHED_NO_KEY_PROVIDED, and fixed key validation tests for the binary...
[m6w6/libmemcached]
/
libmemcached
/
memcached_connect.c
diff --git
a/libmemcached/memcached_connect.c
b/libmemcached/memcached_connect.c
index 57bce10107255bbef5c00a3506b6fd9c7a2a709d..ca35420066582efcf7d62cc18e24845ca4921fa8 100644
(file)
--- a/
libmemcached/memcached_connect.c
+++ b/
libmemcached/memcached_connect.c
@@
-46,9
+46,12
@@
static memcached_return set_hostinfo(memcached_server_st *server)
static memcached_return set_socket_options(memcached_server_st *ptr)
{
static memcached_return set_socket_options(memcached_server_st *ptr)
{
+ WATCHPOINT_ASSERT(ptr->fd != -1);
+
if (ptr->type == MEMCACHED_CONNECTION_UDP)
return MEMCACHED_SUCCESS;
if (ptr->type == MEMCACHED_CONNECTION_UDP)
return MEMCACHED_SUCCESS;
+#ifdef HAVE_SNDTIMEO
if (ptr->root->snd_timeout)
{
int error;
if (ptr->root->snd_timeout)
{
int error;
@@
-61,7
+64,9
@@
static memcached_return set_socket_options(memcached_server_st *ptr)
&waittime, (socklen_t)sizeof(struct timeval));
WATCHPOINT_ASSERT(error == 0);
}
&waittime, (socklen_t)sizeof(struct timeval));
WATCHPOINT_ASSERT(error == 0);
}
+#endif
+#ifdef HAVE_RCVTIMEO
if (ptr->root->rcv_timeout)
{
int error;
if (ptr->root->rcv_timeout)
{
int error;
@@
-74,6
+79,7
@@
static memcached_return set_socket_options(memcached_server_st *ptr)
&waittime, (socklen_t)sizeof(struct timeval));
WATCHPOINT_ASSERT(error == 0);
}
&waittime, (socklen_t)sizeof(struct timeval));
WATCHPOINT_ASSERT(error == 0);
}
+#endif
{
int error;
{
int error;
@@
-167,6
+173,8
@@
test_connect:
}
}
}
}
}
}
+
+ WATCHPOINT_ASSERT(ptr->fd != -1);
return MEMCACHED_SUCCESS;
}
return MEMCACHED_SUCCESS;
}
@@
-185,7
+193,7
@@
static memcached_return network_connect(memcached_server_st *ptr)
}
}
}
}
- if (ptr->sockaddr_inited
== MEMCACHED_NOT_ALLOCATED
||
+ if (ptr->sockaddr_inited ||
(!(ptr->root->flags & MEM_USE_CACHE_LOOKUPS)))
{
memcached_return rc;
(!(ptr->root->flags & MEM_USE_CACHE_LOOKUPS)))
{
memcached_return rc;
@@
-193,7
+201,7
@@
static memcached_return network_connect(memcached_server_st *ptr)
rc= set_hostinfo(ptr);
if (rc != MEMCACHED_SUCCESS)
return rc;
rc= set_hostinfo(ptr);
if (rc != MEMCACHED_SUCCESS)
return rc;
- ptr->sockaddr_inited=
MEMCACHED_ALLOCATED
;
+ ptr->sockaddr_inited=
true
;
}
use= ptr->address_info;
}
use= ptr->address_info;
@@
-234,18
+242,12
@@
test_connect:
{
goto handle_retry;
}
{
goto handle_retry;
}
- else if (error != 1
||
fds[0].revents & POLLERR)
+ else if (error != 1
&&
fds[0].revents & POLLERR)
{
ptr->cached_errno= errno;
WATCHPOINT_ERRNO(ptr->cached_errno);
WATCHPOINT_NUMBER(ptr->root->connect_timeout);
{
ptr->cached_errno= errno;
WATCHPOINT_ERRNO(ptr->cached_errno);
WATCHPOINT_NUMBER(ptr->root->connect_timeout);
- close(ptr->fd);
- ptr->fd= -1;
- if (ptr->address_info)
- {
- freeaddrinfo(ptr->address_info);
- ptr->address_info= NULL;
- }
+ memcached_quit_server(ptr, 1);
if (ptr->root->retry_timeout)
{
if (ptr->root->retry_timeout)
{
@@
-255,6
+257,7
@@
test_connect:
ptr->next_retry= next_time.tv_sec + ptr->root->retry_timeout;
}
ptr->server_failure_counter+= 1;
ptr->next_retry= next_time.tv_sec + ptr->root->retry_timeout;
}
ptr->server_failure_counter+= 1;
+
return MEMCACHED_ERRNO;
}
return MEMCACHED_ERRNO;
}