projects
/
m6w6
/
libmemcached
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
|
github
raw
|
inline
| side by side
Merge Monty
[m6w6/libmemcached]
/
libmemcached
/
memcached_parse.c
diff --git
a/libmemcached/memcached_parse.c
b/libmemcached/memcached_parse.c
index fc6a4cb1ecb19e08892afc84a024eac263118c4d..ec695cfa897f606f55d9fc8d2bb16f66880af5dc 100644
(file)
--- a/
libmemcached/memcached_parse.c
+++ b/
libmemcached/memcached_parse.c
@@
-5,15
+5,15
@@
Frankly its too damn useful not to be here though.
*/
Frankly its too damn useful not to be here though.
*/
-#include <memcached.h>
#include "common.h"
#include "common.h"
-memcached_server_st *memcached_servers_parse(char *server_strings)
+memcached_server_st *memcached_servers_parse(c
onst c
har *server_strings)
{
char *string;
{
char *string;
- unsigned int port;
- char *begin_ptr;
- char *end_ptr;
+ uint32_t port;
+ uint32_t weight;
+ const char *begin_ptr;
+ const char *end_ptr;
memcached_server_st *servers= NULL;
memcached_return rc;
memcached_server_st *servers= NULL;
memcached_return rc;
@@
-26,12
+26,13
@@
memcached_server_st *memcached_servers_parse(char *server_strings)
string= index(begin_ptr, ','))
{
char buffer[HUGE_STRING_LEN];
string= index(begin_ptr, ','))
{
char buffer[HUGE_STRING_LEN];
- char *ptr;
+ char *ptr
, *ptr2
;
port= 0;
port= 0;
+ weight= 0;
if (string)
{
if (string)
{
- memcpy(buffer, begin_ptr,
string - begin_ptr
);
+ memcpy(buffer, begin_ptr,
(size_t) (string - begin_ptr)
);
buffer[(unsigned int)(string - begin_ptr)]= 0;
begin_ptr= string+1;
}
buffer[(unsigned int)(string - begin_ptr)]= 0;
begin_ptr= string+1;
}
@@
-51,10
+52,19
@@
memcached_server_st *memcached_servers_parse(char *server_strings)
ptr++;
ptr++;
- port= strtoul(ptr, (char **)NULL, 10);
+ port= (uint32_t) strtoul(ptr, (char **)NULL, 10);
+
+ ptr2= index(ptr, ' ');
+ if (! ptr2)
+ ptr2= index(ptr, ':');
+ if (ptr2)
+ {
+ ptr2++;
+ weight = (uint32_t) strtoul(ptr2, (char **)NULL, 10);
+ }
}
}
- servers= memcached_server_list_append
(servers, buffer, por
t, &rc);
+ servers= memcached_server_list_append
_with_weight(servers, buffer, port, weigh
t, &rc);
if (isspace(*begin_ptr))
begin_ptr++;
if (isspace(*begin_ptr))
begin_ptr++;