projects
/
awesomized
/
libmemcached
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
|
github
raw
|
patch
|
inline
| side by side (parent:
ed1af1f
)
Fix for lingerd and bad free.
author
<brian@localhost.localdomain>
<>
Tue, 29 Jul 2008 04:55:31 +0000
(21:55 -0700)
committer
<brian@localhost.localdomain>
<>
Tue, 29 Jul 2008 04:55:31 +0000
(21:55 -0700)
libmemcached/common.h
patch
|
blob
|
history
libmemcached/memcached_connect.c
patch
|
blob
|
history
libmemcached/memcached_hash.c
patch
|
blob
|
history
libmemcached/memcached_hosts.c
patch
|
blob
|
history
diff --git
a/libmemcached/common.h
b/libmemcached/common.h
index 0c9b87ce3f3478eb8e7984307c7583770276d33f..d496cf773e3c759a7b688d97778abba19618e6ac 100644
(file)
--- a/
libmemcached/common.h
+++ b/
libmemcached/common.h
@@
-113,5
+113,7
@@
memcached_return memcachd_key_test(char **keys, size_t *key_length,
memcached_return run_distribution(memcached_st *ptr);
memcached_return run_distribution(memcached_st *ptr);
+uint32_t generate_hash_value(const char *key, size_t key_length, memcached_hash hash_algorithm);
+
uint32_t generate_hash(memcached_st *ptr, const char *key, size_t key_length);
#endif /* __COMMON_H__ */
uint32_t generate_hash(memcached_st *ptr, const char *key, size_t key_length);
#endif /* __COMMON_H__ */
diff --git
a/libmemcached/memcached_connect.c
b/libmemcached/memcached_connect.c
index 7d6f85a49840c99ed2c8be8114e38a5b030d0200..a4ed6680da1f82323561925d662d35cbb3b024e8 100644
(file)
--- a/
libmemcached/memcached_connect.c
+++ b/
libmemcached/memcached_connect.c
@@
-48,18
+48,11
@@
static memcached_return set_socket_options(memcached_server_st *ptr)
if (ptr->root->flags & MEM_NO_BLOCK)
{
int error;
if (ptr->root->flags & MEM_NO_BLOCK)
{
int error;
- struct linger linger;
struct timeval waittime;
waittime.tv_sec= 10;
waittime.tv_usec= 0;
struct timeval waittime;
waittime.tv_sec= 10;
waittime.tv_usec= 0;
- linger.l_onoff= 1;
- linger.l_linger= MEMCACHED_DEFAULT_TIMEOUT;
- 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_SNDTIMEO,
&waittime, (socklen_t)sizeof(struct timeval));
WATCHPOINT_ASSERT(error == 0);
error= setsockopt(ptr->fd, SOL_SOCKET, SO_SNDTIMEO,
&waittime, (socklen_t)sizeof(struct timeval));
WATCHPOINT_ASSERT(error == 0);
@@
-69,6
+62,17
@@
static memcached_return set_socket_options(memcached_server_st *ptr)
WATCHPOINT_ASSERT(error == 0);
}
WATCHPOINT_ASSERT(error == 0);
}
+ {
+ int error;
+ struct linger linger;
+
+ linger.l_onoff= 1;
+ linger.l_linger= MEMCACHED_DEFAULT_TIMEOUT;
+ error= setsockopt(ptr->fd, SOL_SOCKET, SO_LINGER,
+ &linger, (socklen_t)sizeof(struct linger));
+ WATCHPOINT_ASSERT(error == 0);
+ }
+
if (ptr->root->flags & MEM_TCP_NODELAY)
{
int flag= 1;
if (ptr->root->flags & MEM_TCP_NODELAY)
{
int flag= 1;
diff --git
a/libmemcached/memcached_hash.c
b/libmemcached/memcached_hash.c
index 75a1537a81e4547f67e8912261331e6dcec0e887..b8c8cfe5529923f1f0c5546a4c0ba04db5434e9d 100644
(file)
--- a/
libmemcached/memcached_hash.c
+++ b/
libmemcached/memcached_hash.c
@@
-163,7
+163,6
@@
unsigned int dispatch_host(memcached_st *ptr, uint32_t hash)
uint32_t memcached_generate_hash(memcached_st *ptr, const char *key, size_t key_length)
{
uint32_t hash= 1; /* Just here to remove compile warning */
uint32_t memcached_generate_hash(memcached_st *ptr, const char *key, size_t key_length)
{
uint32_t hash= 1; /* Just here to remove compile warning */
- uint32_t result= 1;
WATCHPOINT_ASSERT(ptr->number_of_hosts);
WATCHPOINT_ASSERT(ptr->number_of_hosts);
diff --git
a/libmemcached/memcached_hosts.c
b/libmemcached/memcached_hosts.c
index 55d7a49df403ea736e905a43f3576748c4069482..c52aa09621c51d549308385b5019c7ac8b0921fa 100644
(file)
--- a/
libmemcached/memcached_hosts.c
+++ b/
libmemcached/memcached_hosts.c
@@
-173,7
+173,8
@@
memcached_return update_continuum(memcached_st *ptr)
qsort(ptr->continuum, ptr->number_of_hosts * MEMCACHED_POINTS_PER_SERVER, sizeof(memcached_continuum_item_st), continuum_item_cmp);
ptr->continuum_points_counter= pointer_counter;
qsort(ptr->continuum, ptr->number_of_hosts * MEMCACHED_POINTS_PER_SERVER, sizeof(memcached_continuum_item_st), continuum_item_cmp);
ptr->continuum_points_counter= pointer_counter;
- memcached_stat_free(NULL, stat_p);
+ if (stat_p)
+ memcached_stat_free(NULL, stat_p);
#ifdef HAVE_DEBUG
for (index= 0; index < ((ptr->number_of_hosts * MEMCACHED_POINTS_PER_SERVER) - 1); index++)
#ifdef HAVE_DEBUG
for (index= 0; index < ((ptr->number_of_hosts * MEMCACHED_POINTS_PER_SERVER) - 1); index++)