#include <stdint.h>
#include <libmemcached/common.h>
+#include <libmemcached/options.hpp>
+
#include <libmemcached/options/context.h>
-#include <libmemcached/options/string.h>
#include <libmemcached/options/symbol.h>
#include <libmemcached/options/scanner.h>
+#include <iostream>
+
#pragma GCC diagnostic ignored "-Wold-style-cast"
int conf_lex(YYSTYPE* lvalp, void* scanner);
/* Line 189 of yacc.c */
-#line 107 "libmemcached/options/parser.cc"
+#line 110 "libmemcached/options/parser.cc"
/* Enabling traces. */
#ifndef YYDEBUG
CONFIGURE_FILE = 264,
EMPTY_LINE = 265,
SERVER = 266,
- SERVERS = 267,
- SERVERS_OPTION = 268,
- UNKNOWN_OPTION = 269,
- UNKNOWN = 270,
- BINARY_PROTOCOL = 271,
- BUFFER_REQUESTS = 272,
- CONNECT_TIMEOUT = 273,
- DISTRIBUTION = 274,
- HASH = 275,
- HASH_WITH_NAMESPACE = 276,
- IO_BYTES_WATERMARK = 277,
- IO_KEY_PREFETCH = 278,
- IO_MSG_WATERMARK = 279,
- KETAMA_HASH = 280,
- KETAMA_WEIGHTED = 281,
- NOREPLY = 282,
- NUMBER_OF_REPLICAS = 283,
- POLL_TIMEOUT = 284,
- RANDOMIZE_REPLICA_READ = 285,
- RCV_TIMEOUT = 286,
- REMOVE_FAILED_SERVERS = 287,
- RETRY_TIMEOUT = 288,
- SND_TIMEOUT = 289,
- SOCKET_RECV_SIZE = 290,
- SOCKET_SEND_SIZE = 291,
- SORT_HOSTS = 292,
- SUPPORT_CAS = 293,
- USER_DATA = 294,
- USE_UDP = 295,
- VERIFY_KEY = 296,
- _TCP_KEEPALIVE = 297,
- _TCP_KEEPIDLE = 298,
- _TCP_NODELAY = 299,
- NAMESPACE = 300,
- POOL_MIN = 301,
- POOL_MAX = 302,
- MD5 = 303,
- CRC = 304,
- FNV1_64 = 305,
- FNV1A_64 = 306,
- FNV1_32 = 307,
- FNV1A_32 = 308,
- HSIEH = 309,
- MURMUR = 310,
- JENKINS = 311,
- CONSISTENT = 312,
- MODULA = 313,
- RANDOM = 314,
- TRUE = 315,
- FALSE = 316,
- FLOAT = 317,
- NUMBER = 318,
- PORT = 319,
- WEIGHT_START = 320,
- IPADDRESS = 321,
- HOSTNAME = 322,
- STRING = 323,
- QUOTED_STRING = 324,
- FILE_PATH = 325
+ SOCKET = 267,
+ SERVERS = 268,
+ SERVERS_OPTION = 269,
+ UNKNOWN_OPTION = 270,
+ UNKNOWN = 271,
+ BINARY_PROTOCOL = 272,
+ BUFFER_REQUESTS = 273,
+ CONNECT_TIMEOUT = 274,
+ DISTRIBUTION = 275,
+ HASH = 276,
+ HASH_WITH_NAMESPACE = 277,
+ IO_BYTES_WATERMARK = 278,
+ IO_KEY_PREFETCH = 279,
+ IO_MSG_WATERMARK = 280,
+ KETAMA_HASH = 281,
+ KETAMA_WEIGHTED = 282,
+ NOREPLY = 283,
+ NUMBER_OF_REPLICAS = 284,
+ POLL_TIMEOUT = 285,
+ RANDOMIZE_REPLICA_READ = 286,
+ RCV_TIMEOUT = 287,
+ REMOVE_FAILED_SERVERS = 288,
+ RETRY_TIMEOUT = 289,
+ SND_TIMEOUT = 290,
+ SOCKET_RECV_SIZE = 291,
+ SOCKET_SEND_SIZE = 292,
+ SORT_HOSTS = 293,
+ SUPPORT_CAS = 294,
+ USER_DATA = 295,
+ USE_UDP = 296,
+ VERIFY_KEY = 297,
+ _TCP_KEEPALIVE = 298,
+ _TCP_KEEPIDLE = 299,
+ _TCP_NODELAY = 300,
+ NAMESPACE = 301,
+ POOL_MIN = 302,
+ POOL_MAX = 303,
+ MD5 = 304,
+ CRC = 305,
+ FNV1_64 = 306,
+ FNV1A_64 = 307,
+ FNV1_32 = 308,
+ FNV1A_32 = 309,
+ HSIEH = 310,
+ MURMUR = 311,
+ JENKINS = 312,
+ CONSISTENT = 313,
+ MODULA = 314,
+ RANDOM = 315,
+ TRUE = 316,
+ FALSE = 317,
+ FLOAT = 318,
+ NUMBER = 319,
+ PORT = 320,
+ WEIGHT_START = 321,
+ IPADDRESS = 322,
+ HOSTNAME = 323,
+ STRING = 324,
+ QUOTED_STRING = 325,
+ FILE_PATH = 326
};
#endif
/* Line 264 of yacc.c */
-#line 218 "libmemcached/options/parser.cc"
+#line 222 "libmemcached/options/parser.cc"
#ifdef short
# undef short
#endif
/* YYFINAL -- State number of the termination state. */
-#define YYFINAL 69
+#define YYFINAL 71
/* YYLAST -- Last index in YYTABLE. */
-#define YYLAST 73
+#define YYLAST 74
/* YYNTOKENS -- Number of terminals. */
-#define YYNTOKENS 74
+#define YYNTOKENS 75
/* YYNNTS -- Number of nonterminals. */
#define YYNNTS 12
/* YYNRULES -- Number of rules. */
-#define YYNRULES 66
+#define YYNRULES 67
/* YYNRULES -- Number of states. */
-#define YYNSTATES 82
+#define YYNSTATES 84
/* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */
#define YYUNDEFTOK 2
-#define YYMAXUTOK 325
+#define YYMAXUTOK 326
#define YYTRANSLATE(YYX) \
((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
0, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 73, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 62, 2, 2, 2, 2, 2,
+ 2, 2, 74, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 63, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 63, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 64, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
25, 26, 27, 28, 29, 30, 31, 32, 33, 34,
35, 36, 37, 38, 39, 40, 41, 42, 43, 44,
45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
- 55, 56, 57, 58, 59, 60, 61, 64, 65, 66,
- 67, 68, 69, 70, 71, 72
+ 55, 56, 57, 58, 59, 60, 61, 62, 65, 66,
+ 67, 68, 69, 70, 71, 72, 73
};
#if YYDEBUG
static const yytype_uint8 yyprhs[] =
{
0, 0, 3, 5, 9, 11, 13, 15, 17, 19,
- 21, 23, 27, 32, 37, 40, 43, 46, 48, 51,
- 54, 59, 62, 65, 67, 69, 71, 73, 75, 77,
- 79, 81, 83, 85, 87, 89, 91, 93, 95, 97,
- 99, 101, 103, 105, 107, 109, 111, 113, 115, 117,
- 118, 120, 121, 123, 125, 127, 129, 131, 133, 135,
- 137, 139, 141, 143, 145, 147, 149
+ 21, 23, 27, 32, 37, 40, 43, 46, 49, 51,
+ 54, 57, 62, 65, 68, 70, 72, 74, 76, 78,
+ 80, 82, 84, 86, 88, 90, 92, 94, 96, 98,
+ 100, 102, 104, 106, 108, 110, 112, 114, 116, 118,
+ 120, 121, 123, 124, 126, 128, 130, 132, 134, 136,
+ 138, 140, 142, 144, 146, 148, 150, 152
};
/* YYRHS -- A `-1'-separated list of the rules' RHS. */
static const yytype_int8 yyrhs[] =
{
- 75, 0, -1, 76, -1, 75, 73, 76, -1, 77,
+ 76, 0, -1, 77, -1, 76, 74, 77, -1, 78,
-1, 3, -1, 10, -1, 4, -1, 5, -1, 6,
- -1, 7, -1, 8, 73, 84, -1, 11, 69, 81,
- 82, -1, 11, 68, 81, 82, -1, 9, 84, -1,
- 46, 65, -1, 47, 65, -1, 78, -1, 45, 84,
- -1, 19, 85, -1, 19, 85, 62, 83, -1, 20,
- 83, -1, 79, 65, -1, 80, -1, 39, -1, 32,
- -1, 18, -1, 24, -1, 22, -1, 23, -1, 28,
- -1, 29, -1, 31, -1, 33, -1, 34, -1, 35,
- -1, 36, -1, 16, -1, 17, -1, 21, -1, 27,
- -1, 30, -1, 37, -1, 38, -1, 44, -1, 42,
- -1, 43, -1, 40, -1, 41, -1, -1, 66, -1,
- -1, 67, -1, 48, -1, 49, -1, 50, -1, 51,
- -1, 52, -1, 53, -1, 54, -1, 55, -1, 56,
- -1, 70, -1, 71, -1, 57, -1, 58, -1, 59,
- -1
+ -1, 7, -1, 8, 74, 85, -1, 11, 70, 82,
+ 83, -1, 11, 69, 82, 83, -1, 12, 85, -1,
+ 9, 85, -1, 47, 66, -1, 48, 66, -1, 79,
+ -1, 46, 85, -1, 20, 86, -1, 20, 86, 63,
+ 84, -1, 21, 84, -1, 80, 66, -1, 81, -1,
+ 40, -1, 33, -1, 19, -1, 25, -1, 23, -1,
+ 24, -1, 29, -1, 30, -1, 32, -1, 34, -1,
+ 35, -1, 36, -1, 37, -1, 17, -1, 18, -1,
+ 22, -1, 28, -1, 31, -1, 38, -1, 39, -1,
+ 45, -1, 43, -1, 44, -1, 41, -1, 42, -1,
+ -1, 67, -1, -1, 68, -1, 49, -1, 50, -1,
+ 51, -1, 52, -1, 53, -1, 54, -1, 55, -1,
+ 56, -1, 57, -1, 71, -1, 72, -1, 58, -1,
+ 59, -1, 60, -1
};
/* YYRLINE[YYN] -- source line where rule number YYN was defined. */
static const yytype_uint16 yyrline[] =
{
- 0, 156, 156, 157, 161, 163, 165, 167, 172, 177,
- 181, 185, 196, 204, 212, 216, 220, 224, 228, 235,
- 242, 253, 260, 267, 274, 280, 284, 288, 292, 296,
- 300, 304, 308, 312, 316, 320, 324, 331, 335, 339,
- 343, 347, 351, 355, 359, 363, 367, 371, 375, 382,
- 383, 388, 389, 394, 398, 402, 406, 410, 414, 418,
- 422, 426, 433, 437, 445, 449, 453
+ 0, 162, 162, 163, 167, 169, 171, 173, 178, 183,
+ 187, 191, 202, 210, 218, 225, 229, 233, 237, 241,
+ 248, 255, 266, 273, 280, 287, 293, 297, 301, 305,
+ 309, 313, 317, 321, 325, 329, 333, 337, 344, 348,
+ 352, 356, 360, 364, 368, 372, 376, 380, 384, 388,
+ 395, 396, 401, 402, 407, 411, 415, 419, 423, 427,
+ 431, 435, 439, 446, 450, 458, 462, 466
};
#endif
{
"$end", "error", "$undefined", "COMMENT", "END", "ERROR", "RESET",
"PARSER_DEBUG", "INCLUDE", "CONFIGURE_FILE", "EMPTY_LINE", "SERVER",
- "SERVERS", "SERVERS_OPTION", "UNKNOWN_OPTION", "UNKNOWN",
+ "SOCKET", "SERVERS", "SERVERS_OPTION", "UNKNOWN_OPTION", "UNKNOWN",
"BINARY_PROTOCOL", "BUFFER_REQUESTS", "CONNECT_TIMEOUT", "DISTRIBUTION",
"HASH", "HASH_WITH_NAMESPACE", "IO_BYTES_WATERMARK", "IO_KEY_PREFETCH",
"IO_MSG_WATERMARK", "KETAMA_HASH", "KETAMA_WEIGHTED", "NOREPLY",
285, 286, 287, 288, 289, 290, 291, 292, 293, 294,
295, 296, 297, 298, 299, 300, 301, 302, 303, 304,
305, 306, 307, 308, 309, 310, 311, 312, 313, 314,
- 315, 316, 44, 61, 317, 318, 319, 320, 321, 322,
- 323, 324, 325, 32
+ 315, 316, 317, 44, 61, 318, 319, 320, 321, 322,
+ 323, 324, 325, 326, 32
};
# endif
/* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */
static const yytype_uint8 yyr1[] =
{
- 0, 74, 75, 75, 76, 76, 76, 76, 76, 76,
- 76, 76, 77, 77, 77, 77, 77, 77, 78, 78,
- 78, 78, 78, 78, 78, 79, 79, 79, 79, 79,
- 79, 79, 79, 79, 79, 79, 79, 80, 80, 80,
- 80, 80, 80, 80, 80, 80, 80, 80, 80, 81,
- 81, 82, 82, 83, 83, 83, 83, 83, 83, 83,
- 83, 83, 84, 84, 85, 85, 85
+ 0, 75, 76, 76, 77, 77, 77, 77, 77, 77,
+ 77, 77, 78, 78, 78, 78, 78, 78, 78, 79,
+ 79, 79, 79, 79, 79, 79, 80, 80, 80, 80,
+ 80, 80, 80, 80, 80, 80, 80, 80, 81, 81,
+ 81, 81, 81, 81, 81, 81, 81, 81, 81, 81,
+ 82, 82, 83, 83, 84, 84, 84, 84, 84, 84,
+ 84, 84, 84, 85, 85, 86, 86, 86
};
/* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */
static const yytype_uint8 yyr2[] =
{
0, 2, 1, 3, 1, 1, 1, 1, 1, 1,
- 1, 3, 4, 4, 2, 2, 2, 1, 2, 2,
- 4, 2, 2, 1, 1, 1, 1, 1, 1, 1,
+ 1, 3, 4, 4, 2, 2, 2, 2, 1, 2,
+ 2, 4, 2, 2, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 0,
- 1, 0, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 0, 1, 0, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1
};
/* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state
static const yytype_uint8 yydefact[] =
{
0, 5, 7, 8, 9, 10, 0, 0, 6, 0,
- 37, 38, 26, 0, 0, 39, 28, 29, 27, 40,
- 30, 31, 41, 32, 25, 33, 34, 35, 36, 42,
- 43, 24, 47, 48, 45, 46, 44, 0, 0, 0,
- 0, 2, 4, 17, 0, 23, 0, 62, 63, 14,
- 49, 49, 64, 65, 66, 19, 53, 54, 55, 56,
- 57, 58, 59, 60, 61, 21, 18, 15, 16, 1,
- 0, 22, 11, 50, 51, 51, 0, 3, 52, 13,
- 12, 20
+ 0, 38, 39, 27, 0, 0, 40, 29, 30, 28,
+ 41, 31, 32, 42, 33, 26, 34, 35, 36, 37,
+ 43, 44, 25, 48, 49, 46, 47, 45, 0, 0,
+ 0, 0, 2, 4, 18, 0, 24, 0, 63, 64,
+ 15, 50, 50, 14, 65, 66, 67, 20, 54, 55,
+ 56, 57, 58, 59, 60, 61, 62, 22, 19, 16,
+ 17, 1, 0, 23, 11, 51, 52, 52, 0, 3,
+ 53, 13, 12, 21
};
/* YYDEFGOTO[NTERM-NUM]. */
static const yytype_int8 yydefgoto[] =
{
- -1, 40, 41, 42, 43, 44, 45, 74, 79, 65,
- 49, 55
+ -1, 41, 42, 43, 44, 45, 46, 76, 81, 67,
+ 50, 57
};
/* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
#define YYPACT_NINF -61
static const yytype_int8 yypact[] =
{
- -2, -61, -61, -61, -61, -61, -60, -23, -61, -45,
- -61, -61, -61, -47, 8, -61, -61, -61, -61, -61,
+ -2, -61, -61, -61, -61, -61, -60, -24, -61, -20,
+ -24, -61, -61, -61, -47, 13, -61, -61, -61, -61,
-61, -61, -61, -61, -61, -61, -61, -61, -61, -61,
- -61, -61, -61, -61, -61, -61, -61, -23, -16, -15,
- 0, -61, -61, -61, -14, -61, -23, -61, -61, -61,
- -13, -13, -61, -61, -61, -10, -61, -61, -61, -61,
+ -61, -61, -61, -61, -61, -61, -61, -61, -24, -41,
+ -15, 0, -61, -61, -61, -13, -61, -24, -61, -61,
+ -61, -12, -12, -61, -61, -61, -61, -9, -61, -61,
-61, -61, -61, -61, -61, -61, -61, -61, -61, -61,
- -2, -61, -61, -61, -1, -1, 8, -61, -61, -61,
- -61, -61
+ -61, -61, -2, -61, -61, -61, -11, -11, 13, -61,
+ -61, -61, -61, -61
};
/* YYPGOTO[NTERM-NUM]. */
static const yytype_int8 yypgoto[] =
{
- -61, -61, -5, -61, -61, -61, -61, 3, -8, -7,
- 9, -61
+ -61, -61, -16, -61, -61, -61, -61, 6, -18, -7,
+ 14, -61
};
/* YYTABLE[YYPACT[STATE-NUM]]. What to do in state STATE-NUM. If
#define YYTABLE_NINF -1
static const yytype_uint8 yytable[] =
{
- 69, 1, 2, 3, 4, 5, 6, 7, 8, 9,
- 52, 53, 54, 46, 10, 11, 12, 13, 14, 15,
- 16, 17, 18, 50, 51, 19, 20, 21, 22, 23,
+ 71, 1, 2, 3, 4, 5, 6, 7, 8, 9,
+ 10, 54, 55, 56, 47, 11, 12, 13, 14, 15,
+ 16, 17, 18, 19, 53, 69, 20, 21, 22, 23,
24, 25, 26, 27, 28, 29, 30, 31, 32, 33,
- 34, 35, 36, 37, 38, 39, 66, 47, 48, 67,
- 68, 71, 76, 73, 75, 72, 56, 57, 58, 59,
- 60, 61, 62, 63, 64, 77, 78, 80, 0, 81,
- 0, 0, 0, 70
+ 34, 35, 36, 37, 38, 39, 40, 48, 49, 51,
+ 52, 70, 68, 73, 78, 75, 79, 80, 77, 82,
+ 0, 74, 58, 59, 60, 61, 62, 63, 64, 65,
+ 66, 83, 0, 0, 72
};
static const yytype_int8 yycheck[] =
{
0, 3, 4, 5, 6, 7, 8, 9, 10, 11,
- 57, 58, 59, 73, 16, 17, 18, 19, 20, 21,
- 22, 23, 24, 68, 69, 27, 28, 29, 30, 31,
+ 12, 58, 59, 60, 74, 17, 18, 19, 20, 21,
+ 22, 23, 24, 25, 10, 66, 28, 29, 30, 31,
32, 33, 34, 35, 36, 37, 38, 39, 40, 41,
- 42, 43, 44, 45, 46, 47, 37, 70, 71, 65,
- 65, 65, 62, 66, 51, 46, 48, 49, 50, 51,
- 52, 53, 54, 55, 56, 70, 67, 75, -1, 76,
- -1, -1, -1, 73
+ 42, 43, 44, 45, 46, 47, 48, 71, 72, 69,
+ 70, 66, 38, 66, 63, 67, 72, 68, 52, 77,
+ -1, 47, 49, 50, 51, 52, 53, 54, 55, 56,
+ 57, 78, -1, -1, 74
};
/* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
static const yytype_uint8 yystos[] =
{
0, 3, 4, 5, 6, 7, 8, 9, 10, 11,
- 16, 17, 18, 19, 20, 21, 22, 23, 24, 27,
+ 12, 17, 18, 19, 20, 21, 22, 23, 24, 25,
28, 29, 30, 31, 32, 33, 34, 35, 36, 37,
38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
- 75, 76, 77, 78, 79, 80, 73, 70, 71, 84,
- 68, 69, 57, 58, 59, 85, 48, 49, 50, 51,
- 52, 53, 54, 55, 56, 83, 84, 65, 65, 0,
- 73, 65, 84, 66, 81, 81, 62, 76, 67, 82,
- 82, 83
+ 48, 76, 77, 78, 79, 80, 81, 74, 71, 72,
+ 85, 69, 70, 85, 58, 59, 60, 86, 49, 50,
+ 51, 52, 53, 54, 55, 56, 57, 84, 85, 66,
+ 66, 0, 74, 66, 85, 67, 82, 82, 63, 77,
+ 68, 83, 83, 84
};
#define yyerrok (yyerrstatus = 0)
case 4:
/* Line 1464 of yacc.c */
-#line 162 "libmemcached/options/parser.yy"
+#line 168 "libmemcached/options/parser.yy"
{ ;}
break;
case 5:
/* Line 1464 of yacc.c */
-#line 164 "libmemcached/options/parser.yy"
+#line 170 "libmemcached/options/parser.yy"
{ ;}
break;
case 6:
/* Line 1464 of yacc.c */
-#line 166 "libmemcached/options/parser.yy"
+#line 172 "libmemcached/options/parser.yy"
{ ;}
break;
case 7:
/* Line 1464 of yacc.c */
-#line 168 "libmemcached/options/parser.yy"
+#line 174 "libmemcached/options/parser.yy"
{
context->set_end();
YYACCEPT;
case 8:
/* Line 1464 of yacc.c */
-#line 173 "libmemcached/options/parser.yy"
+#line 179 "libmemcached/options/parser.yy"
{
context->rc= MEMCACHED_PARSE_USER_ERROR;
parser_abort(context, NULL);
case 9:
/* Line 1464 of yacc.c */
-#line 178 "libmemcached/options/parser.yy"
+#line 184 "libmemcached/options/parser.yy"
{
memcached_reset(context->memc);
;}
case 10:
/* Line 1464 of yacc.c */
-#line 182 "libmemcached/options/parser.yy"
+#line 188 "libmemcached/options/parser.yy"
{
yydebug= 1;
;}
case 11:
/* Line 1464 of yacc.c */
-#line 186 "libmemcached/options/parser.yy"
+#line 192 "libmemcached/options/parser.yy"
{
- if ((context->rc= memcached_parse_configure_file(context->memc, (yyvsp[(3) - (3)].string).c_str, (yyvsp[(3) - (3)].string).length)) != MEMCACHED_SUCCESS)
+ if ((context->rc= memcached_parse_configure_file(*context->memc, (yyvsp[(3) - (3)].string).c_str, (yyvsp[(3) - (3)].string).size)) != MEMCACHED_SUCCESS)
{
parser_abort(context, NULL);
}
case 12:
/* Line 1464 of yacc.c */
-#line 197 "libmemcached/options/parser.yy"
+#line 203 "libmemcached/options/parser.yy"
{
- if ((context->rc= memcached_server_add_with_weight(context->memc, (yyvsp[(2) - (4)].server).c_str, (yyvsp[(2) - (4)].server).port, (yyvsp[(2) - (4)].server).weight)) != MEMCACHED_SUCCESS)
+ if (memcached_failed(context->rc= memcached_server_add_with_weight(context->memc, (yyvsp[(2) - (4)].server).c_str, (yyvsp[(3) - (4)].number), (yyvsp[(4) - (4)].number))))
{
parser_abort(context, NULL);
}
case 13:
/* Line 1464 of yacc.c */
-#line 205 "libmemcached/options/parser.yy"
+#line 211 "libmemcached/options/parser.yy"
{
- if ((context->rc= memcached_server_add_with_weight(context->memc, (yyvsp[(2) - (4)].server).c_str, (yyvsp[(2) - (4)].server).port, (yyvsp[(2) - (4)].server).weight)) != MEMCACHED_SUCCESS)
+ if (memcached_failed(context->rc= memcached_server_add_with_weight(context->memc, (yyvsp[(2) - (4)].server).c_str, (yyvsp[(3) - (4)].number), (yyvsp[(4) - (4)].number))))
{
parser_abort(context, NULL);
}
case 14:
/* Line 1464 of yacc.c */
-#line 213 "libmemcached/options/parser.yy"
+#line 219 "libmemcached/options/parser.yy"
{
- memcached_set_configuration_file(context->memc, (yyvsp[(2) - (2)].string).c_str, (yyvsp[(2) - (2)].string).length);
+ if (memcached_failed(context->rc= memcached_server_add_unix_socket(context->memc, (yyvsp[(2) - (2)].string).c_str)))
+ {
+ parser_abort(context, NULL);
+ }
;}
break;
case 15:
/* Line 1464 of yacc.c */
-#line 217 "libmemcached/options/parser.yy"
+#line 226 "libmemcached/options/parser.yy"
{
- context->memc->configure.initial_pool_size= (yyvsp[(2) - (2)].number);
+ memcached_set_configuration_file(context->memc, (yyvsp[(2) - (2)].string).c_str, (yyvsp[(2) - (2)].string).size);
;}
break;
case 16:
/* Line 1464 of yacc.c */
-#line 221 "libmemcached/options/parser.yy"
+#line 230 "libmemcached/options/parser.yy"
+ {
+ context->memc->configure.initial_pool_size= (yyvsp[(2) - (2)].number);
+ ;}
+ break;
+
+ case 17:
+
+/* Line 1464 of yacc.c */
+#line 234 "libmemcached/options/parser.yy"
{
context->memc->configure.max_pool_size= (yyvsp[(2) - (2)].number);
;}
break;
- case 18:
+ case 19:
/* Line 1464 of yacc.c */
-#line 229 "libmemcached/options/parser.yy"
+#line 242 "libmemcached/options/parser.yy"
{
- if ((context->rc= memcached_set_prefix_key(context->memc, (yyvsp[(2) - (2)].string).c_str, (yyvsp[(2) - (2)].string).length)) != MEMCACHED_SUCCESS)
+ if ((context->rc= memcached_set_namespace(context->memc, (yyvsp[(2) - (2)].string).c_str, (yyvsp[(2) - (2)].string).size)) != MEMCACHED_SUCCESS)
{
parser_abort(context, NULL);;
}
;}
break;
- case 19:
+ case 20:
/* Line 1464 of yacc.c */
-#line 236 "libmemcached/options/parser.yy"
+#line 249 "libmemcached/options/parser.yy"
{
if ((context->rc= memcached_behavior_set(context->memc, MEMCACHED_BEHAVIOR_DISTRIBUTION, (yyvsp[(2) - (2)].distribution))) != MEMCACHED_SUCCESS)
{
;}
break;
- case 20:
+ case 21:
/* Line 1464 of yacc.c */
-#line 243 "libmemcached/options/parser.yy"
+#line 256 "libmemcached/options/parser.yy"
{
if ((context->rc= memcached_behavior_set(context->memc, MEMCACHED_BEHAVIOR_DISTRIBUTION, (yyvsp[(2) - (4)].distribution))) != MEMCACHED_SUCCESS)
{
;}
break;
- case 21:
+ case 22:
/* Line 1464 of yacc.c */
-#line 254 "libmemcached/options/parser.yy"
+#line 267 "libmemcached/options/parser.yy"
{
if ((context->rc= memcached_behavior_set(context->memc, MEMCACHED_BEHAVIOR_HASH, (yyvsp[(2) - (2)].hash))) != MEMCACHED_SUCCESS)
{
;}
break;
- case 22:
+ case 23:
/* Line 1464 of yacc.c */
-#line 261 "libmemcached/options/parser.yy"
+#line 274 "libmemcached/options/parser.yy"
{
if ((context->rc= memcached_behavior_set(context->memc, (yyvsp[(1) - (2)].behavior), (yyvsp[(2) - (2)].number))) != MEMCACHED_SUCCESS)
{
;}
break;
- case 23:
+ case 24:
/* Line 1464 of yacc.c */
-#line 268 "libmemcached/options/parser.yy"
+#line 281 "libmemcached/options/parser.yy"
{
if ((context->rc= memcached_behavior_set(context->memc, (yyvsp[(1) - (1)].behavior), true)) != MEMCACHED_SUCCESS)
{
;}
break;
- case 24:
+ case 25:
/* Line 1464 of yacc.c */
-#line 275 "libmemcached/options/parser.yy"
+#line 288 "libmemcached/options/parser.yy"
{
;}
break;
- case 25:
+ case 26:
/* Line 1464 of yacc.c */
-#line 281 "libmemcached/options/parser.yy"
+#line 294 "libmemcached/options/parser.yy"
{
(yyval.behavior)= MEMCACHED_BEHAVIOR_REMOVE_FAILED_SERVERS;
;}
break;
- case 26:
+ case 27:
/* Line 1464 of yacc.c */
-#line 285 "libmemcached/options/parser.yy"
+#line 298 "libmemcached/options/parser.yy"
{
(yyval.behavior)= MEMCACHED_BEHAVIOR_CONNECT_TIMEOUT;
;}
break;
- case 27:
+ case 28:
/* Line 1464 of yacc.c */
-#line 289 "libmemcached/options/parser.yy"
+#line 302 "libmemcached/options/parser.yy"
{
(yyval.behavior)= MEMCACHED_BEHAVIOR_IO_MSG_WATERMARK;
;}
break;
- case 28:
+ case 29:
/* Line 1464 of yacc.c */
-#line 293 "libmemcached/options/parser.yy"
+#line 306 "libmemcached/options/parser.yy"
{
(yyval.behavior)= MEMCACHED_BEHAVIOR_IO_BYTES_WATERMARK;
;}
break;
- case 29:
+ case 30:
/* Line 1464 of yacc.c */
-#line 297 "libmemcached/options/parser.yy"
+#line 310 "libmemcached/options/parser.yy"
{
(yyval.behavior)= MEMCACHED_BEHAVIOR_IO_KEY_PREFETCH;
;}
break;
- case 30:
+ case 31:
/* Line 1464 of yacc.c */
-#line 301 "libmemcached/options/parser.yy"
+#line 314 "libmemcached/options/parser.yy"
{
(yyval.behavior)= MEMCACHED_BEHAVIOR_NUMBER_OF_REPLICAS;
;}
break;
- case 31:
+ case 32:
/* Line 1464 of yacc.c */
-#line 305 "libmemcached/options/parser.yy"
+#line 318 "libmemcached/options/parser.yy"
{
(yyval.behavior)= MEMCACHED_BEHAVIOR_POLL_TIMEOUT;
;}
break;
- case 32:
+ case 33:
/* Line 1464 of yacc.c */
-#line 309 "libmemcached/options/parser.yy"
+#line 322 "libmemcached/options/parser.yy"
{
(yyval.behavior)= MEMCACHED_BEHAVIOR_RCV_TIMEOUT;
;}
break;
- case 33:
+ case 34:
/* Line 1464 of yacc.c */
-#line 313 "libmemcached/options/parser.yy"
+#line 326 "libmemcached/options/parser.yy"
{
(yyval.behavior)= MEMCACHED_BEHAVIOR_RETRY_TIMEOUT;
;}
break;
- case 34:
+ case 35:
/* Line 1464 of yacc.c */
-#line 317 "libmemcached/options/parser.yy"
+#line 330 "libmemcached/options/parser.yy"
{
(yyval.behavior)= MEMCACHED_BEHAVIOR_SND_TIMEOUT;
;}
break;
- case 35:
+ case 36:
/* Line 1464 of yacc.c */
-#line 321 "libmemcached/options/parser.yy"
+#line 334 "libmemcached/options/parser.yy"
{
(yyval.behavior)= MEMCACHED_BEHAVIOR_SOCKET_RECV_SIZE;
;}
break;
- case 36:
+ case 37:
/* Line 1464 of yacc.c */
-#line 325 "libmemcached/options/parser.yy"
+#line 338 "libmemcached/options/parser.yy"
{
(yyval.behavior)= MEMCACHED_BEHAVIOR_SOCKET_SEND_SIZE;
;}
break;
- case 37:
+ case 38:
/* Line 1464 of yacc.c */
-#line 332 "libmemcached/options/parser.yy"
+#line 345 "libmemcached/options/parser.yy"
{
(yyval.behavior)= MEMCACHED_BEHAVIOR_BINARY_PROTOCOL;
;}
break;
- case 38:
+ case 39:
/* Line 1464 of yacc.c */
-#line 336 "libmemcached/options/parser.yy"
+#line 349 "libmemcached/options/parser.yy"
{
(yyval.behavior)= MEMCACHED_BEHAVIOR_BUFFER_REQUESTS;
;}
break;
- case 39:
+ case 40:
/* Line 1464 of yacc.c */
-#line 340 "libmemcached/options/parser.yy"
+#line 353 "libmemcached/options/parser.yy"
{
(yyval.behavior)= MEMCACHED_BEHAVIOR_HASH_WITH_PREFIX_KEY;
;}
break;
- case 40:
+ case 41:
/* Line 1464 of yacc.c */
-#line 344 "libmemcached/options/parser.yy"
+#line 357 "libmemcached/options/parser.yy"
{
(yyval.behavior)= MEMCACHED_BEHAVIOR_NOREPLY;
;}
break;
- case 41:
+ case 42:
/* Line 1464 of yacc.c */
-#line 348 "libmemcached/options/parser.yy"
+#line 361 "libmemcached/options/parser.yy"
{
(yyval.behavior)= MEMCACHED_BEHAVIOR_RANDOMIZE_REPLICA_READ;
;}
break;
- case 42:
+ case 43:
/* Line 1464 of yacc.c */
-#line 352 "libmemcached/options/parser.yy"
+#line 365 "libmemcached/options/parser.yy"
{
(yyval.behavior)= MEMCACHED_BEHAVIOR_SORT_HOSTS;
;}
break;
- case 43:
+ case 44:
/* Line 1464 of yacc.c */
-#line 356 "libmemcached/options/parser.yy"
+#line 369 "libmemcached/options/parser.yy"
{
(yyval.behavior)= MEMCACHED_BEHAVIOR_SUPPORT_CAS;
;}
break;
- case 44:
+ case 45:
/* Line 1464 of yacc.c */
-#line 360 "libmemcached/options/parser.yy"
+#line 373 "libmemcached/options/parser.yy"
{
(yyval.behavior)= MEMCACHED_BEHAVIOR_TCP_NODELAY;
;}
break;
- case 45:
+ case 46:
/* Line 1464 of yacc.c */
-#line 364 "libmemcached/options/parser.yy"
+#line 377 "libmemcached/options/parser.yy"
{
(yyval.behavior)= MEMCACHED_BEHAVIOR_TCP_KEEPALIVE;
;}
break;
- case 46:
+ case 47:
/* Line 1464 of yacc.c */
-#line 368 "libmemcached/options/parser.yy"
+#line 381 "libmemcached/options/parser.yy"
{
(yyval.behavior)= MEMCACHED_BEHAVIOR_TCP_KEEPIDLE;
;}
break;
- case 47:
+ case 48:
/* Line 1464 of yacc.c */
-#line 372 "libmemcached/options/parser.yy"
+#line 385 "libmemcached/options/parser.yy"
{
(yyval.behavior)= MEMCACHED_BEHAVIOR_USE_UDP;
;}
break;
- case 48:
+ case 49:
/* Line 1464 of yacc.c */
-#line 376 "libmemcached/options/parser.yy"
+#line 389 "libmemcached/options/parser.yy"
{
(yyval.behavior)= MEMCACHED_BEHAVIOR_VERIFY_KEY;
;}
break;
- case 49:
+ case 50:
/* Line 1464 of yacc.c */
-#line 382 "libmemcached/options/parser.yy"
- { ;}
+#line 395 "libmemcached/options/parser.yy"
+ { (yyval.number)= MEMCACHED_DEFAULT_PORT;;}
break;
- case 50:
+ case 51:
/* Line 1464 of yacc.c */
-#line 384 "libmemcached/options/parser.yy"
+#line 397 "libmemcached/options/parser.yy"
{ ;}
break;
- case 51:
+ case 52:
/* Line 1464 of yacc.c */
-#line 388 "libmemcached/options/parser.yy"
- { ;}
+#line 401 "libmemcached/options/parser.yy"
+ { (yyval.number)= 1; ;}
break;
- case 52:
+ case 53:
/* Line 1464 of yacc.c */
-#line 390 "libmemcached/options/parser.yy"
+#line 403 "libmemcached/options/parser.yy"
{ ;}
break;
- case 53:
+ case 54:
/* Line 1464 of yacc.c */
-#line 395 "libmemcached/options/parser.yy"
+#line 408 "libmemcached/options/parser.yy"
{
(yyval.hash)= MEMCACHED_HASH_MD5;
;}
break;
- case 54:
+ case 55:
/* Line 1464 of yacc.c */
-#line 399 "libmemcached/options/parser.yy"
+#line 412 "libmemcached/options/parser.yy"
{
(yyval.hash)= MEMCACHED_HASH_CRC;
;}
break;
- case 55:
+ case 56:
/* Line 1464 of yacc.c */
-#line 403 "libmemcached/options/parser.yy"
+#line 416 "libmemcached/options/parser.yy"
{
(yyval.hash)= MEMCACHED_HASH_FNV1_64;
;}
break;
- case 56:
+ case 57:
/* Line 1464 of yacc.c */
-#line 407 "libmemcached/options/parser.yy"
+#line 420 "libmemcached/options/parser.yy"
{
(yyval.hash)= MEMCACHED_HASH_FNV1A_64;
;}
break;
- case 57:
+ case 58:
/* Line 1464 of yacc.c */
-#line 411 "libmemcached/options/parser.yy"
+#line 424 "libmemcached/options/parser.yy"
{
(yyval.hash)= MEMCACHED_HASH_FNV1_32;
;}
break;
- case 58:
+ case 59:
/* Line 1464 of yacc.c */
-#line 415 "libmemcached/options/parser.yy"
+#line 428 "libmemcached/options/parser.yy"
{
(yyval.hash)= MEMCACHED_HASH_FNV1A_32;
;}
break;
- case 59:
+ case 60:
/* Line 1464 of yacc.c */
-#line 419 "libmemcached/options/parser.yy"
+#line 432 "libmemcached/options/parser.yy"
{
(yyval.hash)= MEMCACHED_HASH_HSIEH;
;}
break;
- case 60:
+ case 61:
/* Line 1464 of yacc.c */
-#line 423 "libmemcached/options/parser.yy"
+#line 436 "libmemcached/options/parser.yy"
{
(yyval.hash)= MEMCACHED_HASH_MURMUR;
;}
break;
- case 61:
+ case 62:
/* Line 1464 of yacc.c */
-#line 427 "libmemcached/options/parser.yy"
+#line 440 "libmemcached/options/parser.yy"
{
(yyval.hash)= MEMCACHED_HASH_JENKINS;
;}
break;
- case 62:
+ case 63:
/* Line 1464 of yacc.c */
-#line 434 "libmemcached/options/parser.yy"
+#line 447 "libmemcached/options/parser.yy"
{
(yyval.string)= (yyvsp[(1) - (1)].string);
;}
break;
- case 63:
+ case 64:
/* Line 1464 of yacc.c */
-#line 438 "libmemcached/options/parser.yy"
+#line 451 "libmemcached/options/parser.yy"
{
(yyval.string).c_str= (yyvsp[(1) - (1)].string).c_str +1; // +1 to move use passed the initial quote
- (yyval.string).length= (yyvsp[(1) - (1)].string).length -1; // -1 removes the end quote
+ (yyval.string).size= (yyvsp[(1) - (1)].string).size -2; // -2 removes the begin and end quote
;}
break;
- case 64:
+ case 65:
/* Line 1464 of yacc.c */
-#line 446 "libmemcached/options/parser.yy"
+#line 459 "libmemcached/options/parser.yy"
{
(yyval.distribution)= MEMCACHED_DISTRIBUTION_CONSISTENT;
;}
break;
- case 65:
+ case 66:
/* Line 1464 of yacc.c */
-#line 450 "libmemcached/options/parser.yy"
+#line 463 "libmemcached/options/parser.yy"
{
(yyval.distribution)= MEMCACHED_DISTRIBUTION_MODULA;
;}
break;
- case 66:
+ case 67:
/* Line 1464 of yacc.c */
-#line 454 "libmemcached/options/parser.yy"
+#line 467 "libmemcached/options/parser.yy"
{
(yyval.distribution)= MEMCACHED_DISTRIBUTION_RANDOM;
;}
/* Line 1464 of yacc.c */
-#line 2104 "libmemcached/options/parser.cc"
+#line 2120 "libmemcached/options/parser.cc"
default: break;
}
YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc);
/* Line 1684 of yacc.c */
-#line 459 "libmemcached/options/parser.yy"
+#line 472 "libmemcached/options/parser.yy"
void Context::start()