projects
/
m6w6
/
libmemcached
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
|
github
raw
|
inline
| side by side
Fix case where --socket was not always been stored correctly.
[m6w6/libmemcached]
/
libmemcached
/
csl
/
context.h
diff --git
a/libmemcached/csl/context.h
b/libmemcached/csl/context.h
index 94f6813463f364d252a41d4343cedb32ee084e07..97303c50bf09f463e4566391356a4ed30cf79bbd 100644
(file)
--- a/
libmemcached/csl/context.h
+++ b/
libmemcached/csl/context.h
@@
-43,23
+43,28
@@
class Context
{
public:
class Context
{
public:
- Context(const char *option_string, size_t option_string_length, memcached_st *memc_
arg
,
+ Context(const char *option_string, size_t option_string_length, memcached_st *memc_,
memcached_return_t &rc_arg) :
previous_token(END),
scanner(NULL),
memcached_return_t &rc_arg) :
previous_token(END),
scanner(NULL),
+ buf(option_string),
begin(NULL),
pos(0),
begin(NULL),
pos(0),
- memc(NULL),
+ length(option_string_length),
+ memc(memc_),
rc(rc_arg),
_is_server(false),
rc(rc_arg),
_is_server(false),
- _end(false)
+ _end(false),
+ _has_hash(false)
{
_hostname[0]= 0;
{
_hostname[0]= 0;
- buf= option_string;
- length= option_string_length;
- memc= memc_arg;
init_scanner();
rc= MEMCACHED_SUCCESS;
init_scanner();
rc= MEMCACHED_SUCCESS;
+
+ memc->state.is_parsing= true;
+ memcached_string_create(memc,
+ &_string_buffer,
+ 1024);
}
bool end()
}
bool end()
@@
-75,6
+80,8
@@
public:
_end= true;
}
_end= true;
}
+ bool set_hash(memcached_hash_t hash);
+
void set_server()
{
_is_server= true;
void set_server()
{
_is_server= true;
@@
-85,14
+92,16
@@
public:
_is_server= false;
}
_is_server= false;
}
- bool is_server()
+ bool is_server()
const
{
return _is_server;
}
{
return _is_server;
}
- const char *set_hostname(const char *str, size_t size);
+ void hostname(const char*, size_t, server_t&);
+
+ bool string_buffer(const char*, size_t, memcached_string_t&);
- const char *hostname()
+ const char *hostname()
const
{
return _hostname;
}
{
return _hostname;
}
@@
-102,7
+111,9
@@
public:
~Context()
{
~Context()
{
+ memcached_string_free(&_string_buffer);
destroy_scanner();
destroy_scanner();
+ memc->state.is_parsing= false;
}
yytokentype previous_token;
}
yytokentype previous_token;
@@
-122,4
+133,6
@@
private:
bool _is_server;
bool _end;
char _hostname[NI_MAXHOST];
bool _is_server;
bool _end;
char _hostname[NI_MAXHOST];
+ bool _has_hash;
+ memcached_string_st _string_buffer;
};
};