projects
/
m6w6
/
libmemcached
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
|
github
raw
|
inline
| side by side
fix minor bug in compare_servers()
[m6w6/libmemcached]
/
libmemcached
/
memcached_behavior.c
diff --git
a/libmemcached/memcached_behavior.c
b/libmemcached/memcached_behavior.c
index ce598fc069db6e0fd39dcfedd8aa5a08f5501082..1de8f4952a93b91de38e1a3caa5a3b46c2649f2b 100644
(file)
--- a/
libmemcached/memcached_behavior.c
+++ b/
libmemcached/memcached_behavior.c
@@
-9,24
+9,17
@@
We quit all connections so we can reset the sockets.
*/
We quit all connections so we can reset the sockets.
*/
-void set_behavior_flag(memcached_st *ptr, memcached_flags temp_flag,
void *
data)
+void set_behavior_flag(memcached_st *ptr, memcached_flags temp_flag,
uint64_t
data)
{
{
- uint8_t truefalse;
-
if (data)
if (data)
- truefalse= *(unsigned int *)data;
- else
- truefalse= 0;
-
- if (truefalse)
ptr->flags|= temp_flag;
else
ptr->flags|= temp_flag;
else
- ptr->flags
+=
temp_flag;
+ ptr->flags
&= ~
temp_flag;
}
memcached_return memcached_behavior_set(memcached_st *ptr,
memcached_behavior flag,
}
memcached_return memcached_behavior_set(memcached_st *ptr,
memcached_behavior flag,
-
void *
data)
+
uint64_t
data)
{
switch (flag)
{
{
switch (flag)
{
@@
-45,10
+38,10
@@
memcached_return memcached_behavior_set(memcached_st *ptr,
memcached_quit(ptr);
break;
case MEMCACHED_BEHAVIOR_DISTRIBUTION:
memcached_quit(ptr);
break;
case MEMCACHED_BEHAVIOR_DISTRIBUTION:
- ptr->distribution=
*(memcached_server_distribution *
)(data);
+ ptr->distribution=
(memcached_server_distribution
)(data);
break;
case MEMCACHED_BEHAVIOR_HASH:
break;
case MEMCACHED_BEHAVIOR_HASH:
- ptr->hash=
*(memcached_hash *
)(data);
+ ptr->hash=
(memcached_hash
)(data);
break;
case MEMCACHED_BEHAVIOR_CACHE_LOOKUPS:
set_behavior_flag(ptr, MEM_USE_CACHE_LOOKUPS, data);
break;
case MEMCACHED_BEHAVIOR_CACHE_LOOKUPS:
set_behavior_flag(ptr, MEM_USE_CACHE_LOOKUPS, data);
@@
-61,51
+54,43
@@
memcached_return memcached_behavior_set(memcached_st *ptr,
set_behavior_flag(ptr, MEM_USE_KETAMA, data);
break;
case MEMCACHED_BEHAVIOR_SORT_HOSTS:
set_behavior_flag(ptr, MEM_USE_KETAMA, data);
break;
case MEMCACHED_BEHAVIOR_SORT_HOSTS:
- set_behavior_flag(ptr, MEM_USE_SORT_HOSTS, data);
- break;
- case MEMCACHED_BEHAVIOR_USER_DATA:
- ptr->user_data= data;
- break;
- case MEMCACHED_BEHAVIOR_POLL_TIMEOUT:
{
{
-
int32_t timeout= (*((int32_t *)data)
);
+
set_behavior_flag(ptr, MEM_USE_SORT_HOSTS, data
);
- ptr->poll_timeout= timeout;
- break;
- }
- case MEMCACHED_BEHAVIOR_CONNECT_TIMEOUT:
- {
- int32_t timeout= (*((int32_t *)data));
+ if (ptr->flags & MEM_USE_SORT_HOSTS)
+ {
+ memcached_quit(ptr);
+ sort_hosts(ptr);
+ }
- ptr->connect_timeout= timeout;
break;
}
break;
}
+ case MEMCACHED_BEHAVIOR_POLL_TIMEOUT:
+ ptr->poll_timeout= (int32_t)data;
+ break;
+ case MEMCACHED_BEHAVIOR_CONNECT_TIMEOUT:
+ ptr->connect_timeout= (int32_t)data;
+ break;
case MEMCACHED_BEHAVIOR_RETRY_TIMEOUT:
case MEMCACHED_BEHAVIOR_RETRY_TIMEOUT:
- {
- ptr->retry_timeout= (int32_t)data;
- break;
- }
+ ptr->retry_timeout= (int32_t)data;
+ break;
case MEMCACHED_BEHAVIOR_SOCKET_SEND_SIZE:
case MEMCACHED_BEHAVIOR_SOCKET_SEND_SIZE:
- {
- ptr->send_size= (*((int *)data));
- memcached_quit(ptr);
- break;
- }
+ ptr->send_size= (int32_t)data;
+ memcached_quit(ptr);
+ break;
case MEMCACHED_BEHAVIOR_SOCKET_RECV_SIZE:
case MEMCACHED_BEHAVIOR_SOCKET_RECV_SIZE:
- {
- ptr->recv_size= (*((int *)data));
- memcached_quit(ptr);
- break;
- }
-
-
+ ptr->recv_size= (int32_t)data;
+ memcached_quit(ptr);
+ break;
+ case MEMCACHED_BEHAVIOR_USER_DATA:
+ return MEMCACHED_FAILURE;
}
return MEMCACHED_SUCCESS;
}
}
return MEMCACHED_SUCCESS;
}
-u
nsigned long long
memcached_behavior_get(memcached_st *ptr,
-
memcached_behavior flag)
+u
int64_t
memcached_behavior_get(memcached_st *ptr,
+ memcached_behavior flag)
{
memcached_flags temp_flag= 0;
{
memcached_flags temp_flag= 0;
@@
-139,8
+124,6
@@
unsigned long long memcached_behavior_get(memcached_st *ptr,
case MEMCACHED_BEHAVIOR_SORT_HOSTS:
temp_flag= MEM_USE_SORT_HOSTS;
break;
case MEMCACHED_BEHAVIOR_SORT_HOSTS:
temp_flag= MEM_USE_SORT_HOSTS;
break;
- case MEMCACHED_BEHAVIOR_USER_DATA:
- return 0;
case MEMCACHED_BEHAVIOR_POLL_TIMEOUT:
{
return (unsigned long long)ptr->poll_timeout;
case MEMCACHED_BEHAVIOR_POLL_TIMEOUT:
{
return (unsigned long long)ptr->poll_timeout;
@@
-185,6
+168,8
@@
unsigned long long memcached_behavior_get(memcached_st *ptr,
return sock_size;
}
return sock_size;
}
+ case MEMCACHED_BEHAVIOR_USER_DATA:
+ return MEMCACHED_FAILURE;
}
WATCHPOINT_ASSERT(temp_flag); /* Programming mistake if it gets this far */
}
WATCHPOINT_ASSERT(temp_flag); /* Programming mistake if it gets this far */