WiP cmake-ify
[m6w6/libmemcached] / libmemcached / csl / context.cc
index 1e6e18ae588dae871732473346e4c05a1546e330..fa2500be61837d13df5ab223f63a6b4c76a356af 100644 (file)
@@ -38,7 +38,7 @@
 #include <libmemcached/csl/common.h>
 #include <libmemcached/csl/context.h>
 
-void Context::abort(const char *error_arg, yytokentype last_token, const char *last_token_str)
+void Context::abort(const char *error_arg, config_tokentype last_token, const char *last_token_str)
 {
   rc= MEMCACHED_PARSE_ERROR;
   (void)last_token;
@@ -58,7 +58,7 @@ void Context::abort(const char *error_arg, yytokentype last_token, const char *l
   memcached_set_parser_error(*memc, MEMCACHED_AT, "unknown parsing error");
 }
 
-void Context::error(const char *error_arg, yytokentype last_token, const char *last_token_str)
+void Context::error(const char *error_arg, config_tokentype last_token, const char *last_token_str)
 {
   rc= MEMCACHED_PARSE_ERROR;
   if (not error_arg)
@@ -67,7 +67,7 @@ void Context::error(const char *error_arg, yytokentype last_token, const char *l
     return;
   }
 
-  if (error_arg and strcmp(error_arg, "memory exhausted") == 0)
+  if (strcmp(error_arg, "memory exhausted") == 0)
   {
     (void)memcached_set_error(*memc, MEMCACHED_MEMORY_ALLOCATION_FAILURE, MEMCACHED_AT, memcached_string_make_from_cstr(error_arg));
     return;
@@ -75,9 +75,7 @@ void Context::error(const char *error_arg, yytokentype last_token, const char *l
 
   // We now test if it is something other then a syntax error, if it  we
   // return a generic message 
-  if (error_arg and strcmp(error_arg, "syntax error") == 0)
-  { }
-  else if (error_arg)
+  if (strcmp(error_arg, "syntax error") != 0)
   {
     memcached_set_parser_error(*memc, MEMCACHED_AT, "Error occured during parsing (%s)", error_arg);
     return;
@@ -97,13 +95,29 @@ void Context::error(const char *error_arg, yytokentype last_token, const char *l
   }
 }
 
-const char *Context::set_hostname(const char *str, size_t size)
+void Context::hostname(const char *str, size_t size, server_t& server_)
 {
   size_t copy_length= size_t(NI_MAXHOST) > size ? size : size_t(NI_MAXHOST);
   memcpy(_hostname, str, copy_length);
   _hostname[copy_length]= 0;
 
-  return _hostname;
+  server_.port= MEMCACHED_DEFAULT_PORT;
+  server_.weight= 1;
+  server_.c_str= _hostname;
+  server_.size= size;
+}
+
+bool Context::string_buffer(const char *str, size_t size, memcached_string_t& string_)
+{
+  if (memcached_string_set(_string_buffer, str, size))
+  {
+    string_.c_str= memcached_string_value(_string_buffer);
+    string_.size= memcached_string_length(_string_buffer);
+
+    return true;
+  }
+
+  return false;
 }
 
 bool Context::set_hash(memcached_hash_t hash)