nutcracker 0.2.4.mac9 → 0.2.4.1
Sign up to get free protection for your applications and to get access to all the features.
- data/README.md +13 -46
- data/Rakefile +20 -15
- data/bin/nutcracker +1 -6
- data/ext/nutcracker/ChangeLog +0 -9
- data/ext/nutcracker/LICENSE +0 -0
- data/ext/nutcracker/Makefile.am +0 -0
- data/ext/nutcracker/Makefile.in +149 -66
- data/ext/nutcracker/NOTICE +0 -0
- data/ext/nutcracker/README.md +11 -13
- data/ext/nutcracker/aclocal.m4 +201 -112
- data/ext/nutcracker/conf/nutcracker.leaf.yml +0 -0
- data/ext/nutcracker/conf/nutcracker.root.yml +0 -0
- data/ext/nutcracker/conf/nutcracker.yml +0 -0
- data/ext/nutcracker/config.h.in +0 -15
- data/ext/nutcracker/config/config.guess +84 -23
- data/ext/nutcracker/config/config.sub +93 -23
- data/ext/nutcracker/config/depcomp +81 -35
- data/ext/nutcracker/config/install-sh +122 -109
- data/ext/nutcracker/config/ltmain.sh +721 -1053
- data/ext/nutcracker/config/missing +29 -20
- data/ext/nutcracker/configure +2311 -2113
- data/ext/nutcracker/configure.ac +3 -35
- data/ext/nutcracker/contrib/Makefile.am +0 -0
- data/ext/nutcracker/contrib/Makefile.in +107 -41
- data/ext/nutcracker/contrib/yaml-0.1.4.tar.gz +0 -0
- data/ext/nutcracker/extconf.rb +5 -3
- data/ext/nutcracker/m4/libtool.m4 +492 -553
- data/ext/nutcracker/m4/ltoptions.m4 +6 -7
- data/ext/nutcracker/m4/ltversion.m4 +5 -5
- data/ext/nutcracker/m4/lt~obsolete.m4 +3 -9
- data/ext/nutcracker/notes/c-styleguide.txt +0 -0
- data/ext/nutcracker/notes/debug.txt +0 -0
- data/ext/nutcracker/notes/memcache.txt +0 -0
- data/ext/nutcracker/notes/recommendation.md +2 -21
- data/ext/nutcracker/notes/redis.md +9 -9
- data/ext/nutcracker/notes/socket.txt +0 -0
- data/ext/nutcracker/scripts/nutcracker.init +0 -0
- data/ext/nutcracker/scripts/nutcracker.spec +0 -0
- data/ext/nutcracker/scripts/redis-check.py +0 -0
- data/ext/nutcracker/scripts/redis-check.sh +0 -9
- data/ext/nutcracker/src/Makefile.am +1 -1
- data/ext/nutcracker/src/Makefile.in +153 -74
- data/ext/nutcracker/src/hashkit/Makefile.am +0 -1
- data/ext/nutcracker/src/hashkit/Makefile.in +64 -39
- data/ext/nutcracker/src/hashkit/nc_crc32.c +0 -0
- data/ext/nutcracker/src/hashkit/nc_fnv.c +0 -0
- data/ext/nutcracker/src/hashkit/nc_hashkit.h +0 -2
- data/ext/nutcracker/src/hashkit/nc_hsieh.c +0 -0
- data/ext/nutcracker/src/hashkit/nc_jenkins.c +0 -0
- data/ext/nutcracker/src/hashkit/nc_ketama.c +0 -0
- data/ext/nutcracker/src/hashkit/nc_md5.c +0 -0
- data/ext/nutcracker/src/hashkit/nc_modula.c +6 -18
- data/ext/nutcracker/src/hashkit/nc_murmur.c +0 -0
- data/ext/nutcracker/src/hashkit/nc_one_at_a_time.c +0 -0
- data/ext/nutcracker/src/hashkit/nc_random.c +0 -0
- data/ext/nutcracker/src/nc.c +0 -0
- data/ext/nutcracker/src/nc_array.c +0 -0
- data/ext/nutcracker/src/nc_array.h +0 -0
- data/ext/nutcracker/src/nc_client.c +0 -0
- data/ext/nutcracker/src/nc_client.h +0 -0
- data/ext/nutcracker/src/nc_conf.c +35 -14
- data/ext/nutcracker/src/nc_conf.h +1 -1
- data/ext/nutcracker/src/nc_connection.c +0 -0
- data/ext/nutcracker/src/nc_connection.h +0 -0
- data/ext/nutcracker/src/nc_core.c +26 -29
- data/ext/nutcracker/src/nc_core.h +5 -13
- data/ext/nutcracker/src/{nc_epoll.c → nc_event.c} +30 -94
- data/ext/nutcracker/src/nc_event.h +13 -33
- data/ext/nutcracker/src/nc_log.c +0 -0
- data/ext/nutcracker/src/nc_log.h +0 -0
- data/ext/nutcracker/src/nc_mbuf.c +0 -0
- data/ext/nutcracker/src/nc_mbuf.h +0 -0
- data/ext/nutcracker/src/nc_message.c +0 -0
- data/ext/nutcracker/src/nc_message.h +0 -2
- data/ext/nutcracker/src/nc_proxy.c +8 -8
- data/ext/nutcracker/src/nc_proxy.h +0 -0
- data/ext/nutcracker/src/nc_queue.h +0 -0
- data/ext/nutcracker/src/nc_rbtree.c +0 -0
- data/ext/nutcracker/src/nc_rbtree.h +0 -0
- data/ext/nutcracker/src/nc_request.c +3 -3
- data/ext/nutcracker/src/nc_response.c +6 -4
- data/ext/nutcracker/src/nc_server.c +12 -14
- data/ext/nutcracker/src/nc_server.h +0 -0
- data/ext/nutcracker/src/nc_signal.c +0 -0
- data/ext/nutcracker/src/nc_signal.h +0 -0
- data/ext/nutcracker/src/nc_stats.c +21 -16
- data/ext/nutcracker/src/nc_stats.h +4 -3
- data/ext/nutcracker/src/nc_string.c +0 -0
- data/ext/nutcracker/src/nc_string.h +0 -0
- data/ext/nutcracker/src/nc_util.c +0 -16
- data/ext/nutcracker/src/nc_util.h +0 -1
- data/ext/nutcracker/src/proto/Makefile.am +0 -0
- data/ext/nutcracker/src/proto/Makefile.in +60 -32
- data/ext/nutcracker/src/proto/nc_memcache.c +0 -0
- data/ext/nutcracker/src/proto/nc_proto.h +0 -0
- data/ext/nutcracker/src/proto/nc_redis.c +4 -17
- data/lib/nutcracker.rb +2 -187
- data/lib/nutcracker/version.rb +1 -1
- metadata +10 -256
- data/ext/nutcracker/Makefile +0 -643
- data/ext/nutcracker/autom4te.cache/output.0 +0 -18664
- data/ext/nutcracker/autom4te.cache/output.1 +0 -18664
- data/ext/nutcracker/autom4te.cache/output.2 +0 -18664
- data/ext/nutcracker/autom4te.cache/requests +0 -494
- data/ext/nutcracker/autom4te.cache/traces.0 +0 -2415
- data/ext/nutcracker/autom4te.cache/traces.1 +0 -945
- data/ext/nutcracker/autom4te.cache/traces.2 +0 -2415
- data/ext/nutcracker/config.h +0 -332
- data/ext/nutcracker/config.log +0 -2684
- data/ext/nutcracker/config.status +0 -2317
- data/ext/nutcracker/contrib/Makefile +0 -494
- data/ext/nutcracker/contrib/yaml-0.1.4/Makefile +0 -736
- data/ext/nutcracker/contrib/yaml-0.1.4/autom4te.cache/output.0 +0 -13102
- data/ext/nutcracker/contrib/yaml-0.1.4/autom4te.cache/output.1 +0 -13085
- data/ext/nutcracker/contrib/yaml-0.1.4/autom4te.cache/output.2 +0 -13085
- data/ext/nutcracker/contrib/yaml-0.1.4/autom4te.cache/requests +0 -476
- data/ext/nutcracker/contrib/yaml-0.1.4/autom4te.cache/traces.0 +0 -2339
- data/ext/nutcracker/contrib/yaml-0.1.4/autom4te.cache/traces.1 +0 -545
- data/ext/nutcracker/contrib/yaml-0.1.4/autom4te.cache/traces.2 +0 -2339
- data/ext/nutcracker/contrib/yaml-0.1.4/config.h +0 -81
- data/ext/nutcracker/contrib/yaml-0.1.4/config.h.in~ +0 -80
- data/ext/nutcracker/contrib/yaml-0.1.4/config.log +0 -688
- data/ext/nutcracker/contrib/yaml-0.1.4/config.status +0 -2032
- data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/annotated.html +0 -51
- data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/bc_s.png +0 -0
- data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/classes.html +0 -41
- data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/closed.png +0 -0
- data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/doxygen.css +0 -656
- data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/doxygen.png +0 -0
- data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/files.html +0 -40
- data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/functions.html +0 -91
- data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/functions_0x62.html +0 -84
- data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/functions_0x63.html +0 -87
- data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/functions_0x64.html +0 -83
- data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/functions_0x65.html +0 -110
- data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/functions_0x66.html +0 -79
- data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/functions_0x68.html +0 -80
- data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/functions_0x69.html +0 -92
- data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/functions_0x6b.html +0 -71
- data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/functions_0x6c.html +0 -88
- data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/functions_0x6d.html +0 -96
- data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/functions_0x6e.html +0 -71
- data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/functions_0x6f.html +0 -80
- data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/functions_0x70.html +0 -100
- data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/functions_0x71.html +0 -71
- data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/functions_0x72.html +0 -87
- data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/functions_0x73.html +0 -163
- data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/functions_0x74.html +0 -115
- data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/functions_0x75.html +0 -71
- data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/functions_0x76.html +0 -80
- data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/functions_0x77.html +0 -77
- data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/functions_vars.html +0 -91
- data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/functions_vars_0x62.html +0 -84
- data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/functions_vars_0x63.html +0 -87
- data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/functions_vars_0x64.html +0 -83
- data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/functions_vars_0x65.html +0 -110
- data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/functions_vars_0x66.html +0 -79
- data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/functions_vars_0x68.html +0 -80
- data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/functions_vars_0x69.html +0 -92
- data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/functions_vars_0x6b.html +0 -71
- data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/functions_vars_0x6c.html +0 -88
- data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/functions_vars_0x6d.html +0 -96
- data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/functions_vars_0x6e.html +0 -71
- data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/functions_vars_0x6f.html +0 -80
- data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/functions_vars_0x70.html +0 -100
- data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/functions_vars_0x71.html +0 -71
- data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/functions_vars_0x72.html +0 -87
- data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/functions_vars_0x73.html +0 -163
- data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/functions_vars_0x74.html +0 -115
- data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/functions_vars_0x75.html +0 -71
- data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/functions_vars_0x76.html +0 -80
- data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/functions_vars_0x77.html +0 -77
- data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/globals.html +0 -667
- data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/globals_defs.html +0 -81
- data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/globals_enum.html +0 -78
- data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/globals_eval.html +0 -373
- data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/globals_func.html +0 -196
- data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/globals_type.html +0 -126
- data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/group__basic.html +0 -320
- data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/group__emitter.html +0 -819
- data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/group__events.html +0 -664
- data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/group__export.html +0 -60
- data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/group__nodes.html +0 -795
- data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/group__parser.html +0 -606
- data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/group__styles.html +0 -222
- data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/group__tokens.html +0 -246
- data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/group__version.html +0 -106
- data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/index.html +0 -31
- data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/modules.html +0 -42
- data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/nav_f.png +0 -0
- data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/nav_h.png +0 -0
- data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/open.png +0 -0
- data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/structyaml__alias__data__s.html +0 -108
- data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/structyaml__document__s.html +0 -235
- data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/structyaml__emitter__s.html +0 -1300
- data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/structyaml__event__s.html +0 -496
- data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/structyaml__mark__s.html +0 -108
- data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/structyaml__node__pair__s.html +0 -91
- data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/structyaml__node__s.html +0 -420
- data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/structyaml__parser__s.html +0 -1229
- data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/structyaml__simple__key__s.html +0 -97
- data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/structyaml__tag__directive__s.html +0 -91
- data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/structyaml__token__s.html +0 -413
- data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/structyaml__version__directive__s.html +0 -91
- data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/tab_a.png +0 -0
- data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/tab_b.png +0 -0
- data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/tab_h.png +0 -0
- data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/tab_s.png +0 -0
- data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/tabs.css +0 -59
- data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/yaml_8h.html +0 -525
- data/ext/nutcracker/contrib/yaml-0.1.4/include/Makefile.am +0 -17
- data/ext/nutcracker/contrib/yaml-0.1.4/include/Makefile.in +0 -470
- data/ext/nutcracker/contrib/yaml-0.1.4/libtool +0 -8890
- data/ext/nutcracker/contrib/yaml-0.1.4/src/Makefile +0 -484
- data/ext/nutcracker/contrib/yaml-0.1.4/src/api.lo +0 -12
- data/ext/nutcracker/contrib/yaml-0.1.4/src/api.o +0 -0
- data/ext/nutcracker/contrib/yaml-0.1.4/src/dumper.lo +0 -12
- data/ext/nutcracker/contrib/yaml-0.1.4/src/dumper.o +0 -0
- data/ext/nutcracker/contrib/yaml-0.1.4/src/emitter.lo +0 -12
- data/ext/nutcracker/contrib/yaml-0.1.4/src/emitter.o +0 -0
- data/ext/nutcracker/contrib/yaml-0.1.4/src/libyaml.la +0 -41
- data/ext/nutcracker/contrib/yaml-0.1.4/src/loader.lo +0 -12
- data/ext/nutcracker/contrib/yaml-0.1.4/src/loader.o +0 -0
- data/ext/nutcracker/contrib/yaml-0.1.4/src/parser.lo +0 -12
- data/ext/nutcracker/contrib/yaml-0.1.4/src/parser.o +0 -0
- data/ext/nutcracker/contrib/yaml-0.1.4/src/reader.lo +0 -12
- data/ext/nutcracker/contrib/yaml-0.1.4/src/reader.o +0 -0
- data/ext/nutcracker/contrib/yaml-0.1.4/src/scanner.lo +0 -12
- data/ext/nutcracker/contrib/yaml-0.1.4/src/scanner.o +0 -0
- data/ext/nutcracker/contrib/yaml-0.1.4/src/writer.lo +0 -12
- data/ext/nutcracker/contrib/yaml-0.1.4/src/writer.o +0 -0
- data/ext/nutcracker/contrib/yaml-0.1.4/stamp-h1 +0 -1
- data/ext/nutcracker/contrib/yaml-0.1.4/tests/Makefile +0 -675
- data/ext/nutcracker/contrib/yaml-0.1.4/tests/example-deconstructor +0 -0
- data/ext/nutcracker/contrib/yaml-0.1.4/tests/example-deconstructor-alt +0 -0
- data/ext/nutcracker/contrib/yaml-0.1.4/tests/example-deconstructor-alt.o +0 -0
- data/ext/nutcracker/contrib/yaml-0.1.4/tests/example-deconstructor.o +0 -0
- data/ext/nutcracker/contrib/yaml-0.1.4/tests/example-reformatter +0 -0
- data/ext/nutcracker/contrib/yaml-0.1.4/tests/example-reformatter-alt +0 -0
- data/ext/nutcracker/contrib/yaml-0.1.4/tests/example-reformatter-alt.o +0 -0
- data/ext/nutcracker/contrib/yaml-0.1.4/tests/example-reformatter.o +0 -0
- data/ext/nutcracker/contrib/yaml-0.1.4/tests/run-dumper +0 -0
- data/ext/nutcracker/contrib/yaml-0.1.4/tests/run-dumper.o +0 -0
- data/ext/nutcracker/contrib/yaml-0.1.4/tests/run-emitter +0 -0
- data/ext/nutcracker/contrib/yaml-0.1.4/tests/run-emitter.o +0 -0
- data/ext/nutcracker/contrib/yaml-0.1.4/tests/run-loader +0 -0
- data/ext/nutcracker/contrib/yaml-0.1.4/tests/run-loader.o +0 -0
- data/ext/nutcracker/contrib/yaml-0.1.4/tests/run-parser +0 -0
- data/ext/nutcracker/contrib/yaml-0.1.4/tests/run-parser.o +0 -0
- data/ext/nutcracker/contrib/yaml-0.1.4/tests/run-scanner +0 -0
- data/ext/nutcracker/contrib/yaml-0.1.4/tests/run-scanner.o +0 -0
- data/ext/nutcracker/contrib/yaml-0.1.4/yaml-0.1.pc +0 -10
- data/ext/nutcracker/contrib/yaml-0.1.4/yaml-0.1.pc.in +0 -10
- data/ext/nutcracker/libtool +0 -9403
- data/ext/nutcracker/src/Makefile +0 -647
- data/ext/nutcracker/src/hashkit/Makefile +0 -476
- data/ext/nutcracker/src/hashkit/libhashkit.a +0 -0
- data/ext/nutcracker/src/hashkit/nc_crc16.c +0 -66
- data/ext/nutcracker/src/hashkit/nc_crc16.o +0 -0
- data/ext/nutcracker/src/hashkit/nc_crc32.o +0 -0
- data/ext/nutcracker/src/hashkit/nc_fnv.o +0 -0
- data/ext/nutcracker/src/hashkit/nc_hsieh.o +0 -0
- data/ext/nutcracker/src/hashkit/nc_jenkins.o +0 -0
- data/ext/nutcracker/src/hashkit/nc_ketama.o +0 -0
- data/ext/nutcracker/src/hashkit/nc_md5.o +0 -0
- data/ext/nutcracker/src/hashkit/nc_modula.o +0 -0
- data/ext/nutcracker/src/hashkit/nc_murmur.o +0 -0
- data/ext/nutcracker/src/hashkit/nc_one_at_a_time.o +0 -0
- data/ext/nutcracker/src/hashkit/nc_random.o +0 -0
- data/ext/nutcracker/src/nc.o +0 -0
- data/ext/nutcracker/src/nc_array.o +0 -0
- data/ext/nutcracker/src/nc_client.o +0 -0
- data/ext/nutcracker/src/nc_conf.o +0 -0
- data/ext/nutcracker/src/nc_connection.o +0 -0
- data/ext/nutcracker/src/nc_core.o +0 -0
- data/ext/nutcracker/src/nc_epoll.o +0 -0
- data/ext/nutcracker/src/nc_kqueue.c +0 -296
- data/ext/nutcracker/src/nc_kqueue.o +0 -0
- data/ext/nutcracker/src/nc_log.o +0 -0
- data/ext/nutcracker/src/nc_mbuf.o +0 -0
- data/ext/nutcracker/src/nc_message.o +0 -0
- data/ext/nutcracker/src/nc_proxy.o +0 -0
- data/ext/nutcracker/src/nc_rbtree.o +0 -0
- data/ext/nutcracker/src/nc_request.o +0 -0
- data/ext/nutcracker/src/nc_response.o +0 -0
- data/ext/nutcracker/src/nc_server.o +0 -0
- data/ext/nutcracker/src/nc_signal.o +0 -0
- data/ext/nutcracker/src/nc_stats.o +0 -0
- data/ext/nutcracker/src/nc_string.o +0 -0
- data/ext/nutcracker/src/nc_util.o +0 -0
- data/ext/nutcracker/src/nutcracker +0 -0
- data/ext/nutcracker/src/proto/Makefile +0 -454
- data/ext/nutcracker/src/proto/libproto.a +0 -0
- data/ext/nutcracker/src/proto/nc_memcache.o +0 -0
- data/ext/nutcracker/src/proto/nc_redis.o +0 -0
- data/ext/nutcracker/stamp-h1 +0 -1
@@ -1,8 +1,9 @@
|
|
1
|
-
# Makefile.in generated by automake 1.
|
1
|
+
# Makefile.in generated by automake 1.11 from Makefile.am.
|
2
2
|
# @configure_input@
|
3
3
|
|
4
4
|
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
|
5
|
-
# 2003, 2004, 2005, 2006 Free Software Foundation,
|
5
|
+
# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation,
|
6
|
+
# Inc.
|
6
7
|
# This Makefile.in is free software; the Free Software Foundation
|
7
8
|
# gives unlimited permission to copy and/or distribute it,
|
8
9
|
# with or without modifications, as long as this notice is preserved.
|
@@ -17,8 +18,9 @@
|
|
17
18
|
|
18
19
|
VPATH = @srcdir@
|
19
20
|
pkgdatadir = $(datadir)/@PACKAGE@
|
20
|
-
pkglibdir = $(libdir)/@PACKAGE@
|
21
21
|
pkgincludedir = $(includedir)/@PACKAGE@
|
22
|
+
pkglibdir = $(libdir)/@PACKAGE@
|
23
|
+
pkglibexecdir = $(libexecdir)/@PACKAGE@
|
22
24
|
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
|
23
25
|
install_sh_DATA = $(install_sh) -c -m 644
|
24
26
|
install_sh_PROGRAM = $(install_sh) -c
|
@@ -46,19 +48,20 @@ am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
|
|
46
48
|
mkinstalldirs = $(install_sh) -d
|
47
49
|
CONFIG_HEADER = $(top_builddir)/config.h
|
48
50
|
CONFIG_CLEAN_FILES =
|
51
|
+
CONFIG_CLEAN_VPATH_FILES =
|
49
52
|
LIBRARIES = $(noinst_LIBRARIES)
|
50
53
|
ARFLAGS = cru
|
51
54
|
libhashkit_a_AR = $(AR) $(ARFLAGS)
|
52
55
|
libhashkit_a_LIBADD =
|
53
|
-
am_libhashkit_a_OBJECTS =
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
nc_random.$(OBJEXT)
|
56
|
+
am_libhashkit_a_OBJECTS = nc_crc32.$(OBJEXT) nc_fnv.$(OBJEXT) \
|
57
|
+
nc_hsieh.$(OBJEXT) nc_jenkins.$(OBJEXT) nc_ketama.$(OBJEXT) \
|
58
|
+
nc_md5.$(OBJEXT) nc_modula.$(OBJEXT) nc_murmur.$(OBJEXT) \
|
59
|
+
nc_one_at_a_time.$(OBJEXT) nc_random.$(OBJEXT)
|
58
60
|
libhashkit_a_OBJECTS = $(am_libhashkit_a_OBJECTS)
|
59
|
-
DEFAULT_INCLUDES = -I
|
61
|
+
DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
|
60
62
|
depcomp = $(SHELL) $(top_srcdir)/config/depcomp
|
61
63
|
am__depfiles_maybe = depfiles
|
64
|
+
am__mv = mv -f
|
62
65
|
COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
|
63
66
|
$(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
|
64
67
|
LTCOMPILE = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
|
@@ -174,6 +177,7 @@ libdir = @libdir@
|
|
174
177
|
libexecdir = @libexecdir@
|
175
178
|
localedir = @localedir@
|
176
179
|
localstatedir = @localstatedir@
|
180
|
+
lt_ECHO = @lt_ECHO@
|
177
181
|
mandir = @mandir@
|
178
182
|
mkdir_p = @mkdir_p@
|
179
183
|
oldincludedir = @oldincludedir@
|
@@ -196,7 +200,6 @@ AM_CFLAGS = -Wall -Wshadow -Wno-unused-parameter -Wno-unused-value
|
|
196
200
|
noinst_LIBRARIES = libhashkit.a
|
197
201
|
noinst_HEADERS = nc_hashkit.h
|
198
202
|
libhashkit_a_SOURCES = \
|
199
|
-
nc_crc16.c \
|
200
203
|
nc_crc32.c \
|
201
204
|
nc_fnv.c \
|
202
205
|
nc_hsieh.c \
|
@@ -216,14 +219,14 @@ $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
|
|
216
219
|
@for dep in $?; do \
|
217
220
|
case '$(am__configure_deps)' in \
|
218
221
|
*$$dep*) \
|
219
|
-
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
|
220
|
-
|
222
|
+
( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
|
223
|
+
&& { if test -f $@; then exit 0; else break; fi; }; \
|
221
224
|
exit 1;; \
|
222
225
|
esac; \
|
223
226
|
done; \
|
224
|
-
echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign
|
225
|
-
|
226
|
-
$(AUTOMAKE) --foreign
|
227
|
+
echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign src/hashkit/Makefile'; \
|
228
|
+
$(am__cd) $(top_srcdir) && \
|
229
|
+
$(AUTOMAKE) --foreign src/hashkit/Makefile
|
227
230
|
.PRECIOUS: Makefile
|
228
231
|
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
|
229
232
|
@case '$?' in \
|
@@ -241,6 +244,7 @@ $(top_srcdir)/configure: $(am__configure_deps)
|
|
241
244
|
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
|
242
245
|
$(ACLOCAL_M4): $(am__aclocal_m4_deps)
|
243
246
|
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
|
247
|
+
$(am__aclocal_m4_deps):
|
244
248
|
|
245
249
|
clean-noinstLIBRARIES:
|
246
250
|
-test -z "$(noinst_LIBRARIES)" || rm -f $(noinst_LIBRARIES)
|
@@ -255,7 +259,6 @@ mostlyclean-compile:
|
|
255
259
|
distclean-compile:
|
256
260
|
-rm -f *.tab.c
|
257
261
|
|
258
|
-
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/nc_crc16.Po@am__quote@
|
259
262
|
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/nc_crc32.Po@am__quote@
|
260
263
|
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/nc_fnv.Po@am__quote@
|
261
264
|
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/nc_hsieh.Po@am__quote@
|
@@ -269,21 +272,21 @@ distclean-compile:
|
|
269
272
|
|
270
273
|
.c.o:
|
271
274
|
@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
|
272
|
-
@am__fastdepCC_TRUE@
|
275
|
+
@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
|
273
276
|
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
|
274
277
|
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
275
278
|
@am__fastdepCC_FALSE@ $(COMPILE) -c $<
|
276
279
|
|
277
280
|
.c.obj:
|
278
281
|
@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
|
279
|
-
@am__fastdepCC_TRUE@
|
282
|
+
@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
|
280
283
|
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
|
281
284
|
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
282
285
|
@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'`
|
283
286
|
|
284
287
|
.c.lo:
|
285
288
|
@am__fastdepCC_TRUE@ $(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
|
286
|
-
@am__fastdepCC_TRUE@
|
289
|
+
@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
|
287
290
|
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
|
288
291
|
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
289
292
|
@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $<
|
@@ -299,45 +302,49 @@ ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
|
|
299
302
|
unique=`for i in $$list; do \
|
300
303
|
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
|
301
304
|
done | \
|
302
|
-
$(AWK) '
|
303
|
-
|
305
|
+
$(AWK) '{ files[$$0] = 1; nonempty = 1; } \
|
306
|
+
END { if (nonempty) { for (i in files) print i; }; }'`; \
|
304
307
|
mkid -fID $$unique
|
305
308
|
tags: TAGS
|
306
309
|
|
307
310
|
TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
|
308
311
|
$(TAGS_FILES) $(LISP)
|
309
|
-
|
312
|
+
set x; \
|
310
313
|
here=`pwd`; \
|
311
314
|
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
|
312
315
|
unique=`for i in $$list; do \
|
313
316
|
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
|
314
317
|
done | \
|
315
|
-
$(AWK) '
|
316
|
-
|
317
|
-
|
318
|
+
$(AWK) '{ files[$$0] = 1; nonempty = 1; } \
|
319
|
+
END { if (nonempty) { for (i in files) print i; }; }'`; \
|
320
|
+
shift; \
|
321
|
+
if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
|
318
322
|
test -n "$$unique" || unique=$$empty_fix; \
|
319
|
-
|
320
|
-
|
323
|
+
if test $$# -gt 0; then \
|
324
|
+
$(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
|
325
|
+
"$$@" $$unique; \
|
326
|
+
else \
|
327
|
+
$(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
|
328
|
+
$$unique; \
|
329
|
+
fi; \
|
321
330
|
fi
|
322
331
|
ctags: CTAGS
|
323
332
|
CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
|
324
333
|
$(TAGS_FILES) $(LISP)
|
325
|
-
tags=; \
|
326
|
-
here=`pwd`; \
|
327
334
|
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
|
328
335
|
unique=`for i in $$list; do \
|
329
336
|
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
|
330
337
|
done | \
|
331
|
-
$(AWK) '
|
332
|
-
|
333
|
-
test -z "$(CTAGS_ARGS)$$
|
338
|
+
$(AWK) '{ files[$$0] = 1; nonempty = 1; } \
|
339
|
+
END { if (nonempty) { for (i in files) print i; }; }'`; \
|
340
|
+
test -z "$(CTAGS_ARGS)$$unique" \
|
334
341
|
|| $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
|
335
|
-
$$
|
342
|
+
$$unique
|
336
343
|
|
337
344
|
GTAGS:
|
338
345
|
here=`$(am__cd) $(top_builddir) && pwd` \
|
339
|
-
&&
|
340
|
-
&& gtags -i $(GTAGS_ARGS) $$here
|
346
|
+
&& $(am__cd) $(top_srcdir) \
|
347
|
+
&& gtags -i $(GTAGS_ARGS) "$$here"
|
341
348
|
|
342
349
|
distclean-tags:
|
343
350
|
-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
|
@@ -358,13 +365,17 @@ distdir: $(DISTFILES)
|
|
358
365
|
if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
|
359
366
|
if test -d $$d/$$file; then \
|
360
367
|
dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
|
368
|
+
if test -d "$(distdir)/$$file"; then \
|
369
|
+
find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
|
370
|
+
fi; \
|
361
371
|
if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
|
362
|
-
cp -
|
372
|
+
cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
|
373
|
+
find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
|
363
374
|
fi; \
|
364
|
-
cp -
|
375
|
+
cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
|
365
376
|
else \
|
366
|
-
test -f $(distdir)/$$file \
|
367
|
-
|| cp -p $$d/$$file $(distdir)/$$file \
|
377
|
+
test -f "$(distdir)/$$file" \
|
378
|
+
|| cp -p $$d/$$file "$(distdir)/$$file" \
|
368
379
|
|| exit 1; \
|
369
380
|
fi; \
|
370
381
|
done
|
@@ -392,6 +403,7 @@ clean-generic:
|
|
392
403
|
|
393
404
|
distclean-generic:
|
394
405
|
-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
|
406
|
+
-test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
|
395
407
|
|
396
408
|
maintainer-clean-generic:
|
397
409
|
@echo "This command is intended for maintainers to use"
|
@@ -414,6 +426,8 @@ dvi-am:
|
|
414
426
|
|
415
427
|
html: html-am
|
416
428
|
|
429
|
+
html-am:
|
430
|
+
|
417
431
|
info: info-am
|
418
432
|
|
419
433
|
info-am:
|
@@ -422,18 +436,28 @@ install-data-am:
|
|
422
436
|
|
423
437
|
install-dvi: install-dvi-am
|
424
438
|
|
439
|
+
install-dvi-am:
|
440
|
+
|
425
441
|
install-exec-am:
|
426
442
|
|
427
443
|
install-html: install-html-am
|
428
444
|
|
445
|
+
install-html-am:
|
446
|
+
|
429
447
|
install-info: install-info-am
|
430
448
|
|
449
|
+
install-info-am:
|
450
|
+
|
431
451
|
install-man:
|
432
452
|
|
433
453
|
install-pdf: install-pdf-am
|
434
454
|
|
455
|
+
install-pdf-am:
|
456
|
+
|
435
457
|
install-ps: install-ps-am
|
436
458
|
|
459
|
+
install-ps-am:
|
460
|
+
|
437
461
|
installcheck-am:
|
438
462
|
|
439
463
|
maintainer-clean: maintainer-clean-am
|
@@ -471,6 +495,7 @@ uninstall-am:
|
|
471
495
|
mostlyclean-compile mostlyclean-generic mostlyclean-libtool \
|
472
496
|
pdf pdf-am ps ps-am tags uninstall uninstall-am
|
473
497
|
|
498
|
+
|
474
499
|
# Tell versions [3.59,3.63) of GNU make to not export all variables.
|
475
500
|
# Otherwise a system limit (for SysV at least) may be exceeded.
|
476
501
|
.NOEXPORT:
|
File without changes
|
File without changes
|
@@ -24,7 +24,6 @@
|
|
24
24
|
#define HASH_CODEC(ACTION) \
|
25
25
|
ACTION( HASH_ONE_AT_A_TIME, one_at_a_time ) \
|
26
26
|
ACTION( HASH_MD5, md5 ) \
|
27
|
-
ACTION( HASH_CRC16, crc16 ) \
|
28
27
|
ACTION( HASH_CRC32, crc32 ) \
|
29
28
|
ACTION( HASH_FNV1_64, fnv1_64 ) \
|
30
29
|
ACTION( HASH_FNV1A_64, fnv1a_64 ) \
|
@@ -57,7 +56,6 @@ uint32_t hash_one_at_a_time(const char *key, size_t key_length);
|
|
57
56
|
void md5_signature(const unsigned char *key, unsigned int length, unsigned char *result);
|
58
57
|
uint32_t hash_md5(const char *key, size_t key_length);
|
59
58
|
uint32_t hash_crc32(const char *key, size_t key_length);
|
60
|
-
uint32_t hash_crc16(const char *key, size_t key_length);
|
61
59
|
uint32_t hash_fnv1_64(const char *key, size_t key_length);
|
62
60
|
uint32_t hash_fnv1a_64(const char *key, size_t key_length);
|
63
61
|
uint32_t hash_fnv1_32(const char *key, size_t key_length);
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
@@ -36,8 +36,6 @@ modula_update(struct server_pool *pool)
|
|
36
36
|
uint32_t continuum_index; /* continuum index */
|
37
37
|
uint32_t continuum_addition; /* extra space in the continuum */
|
38
38
|
uint32_t server_index; /* server index */
|
39
|
-
uint32_t weight_index; /* weight index */
|
40
|
-
uint32_t total_weight; /* total live server weight */
|
41
39
|
int64_t now; /* current timestamp in usec */
|
42
40
|
|
43
41
|
now = nc_usec_now();
|
@@ -47,7 +45,6 @@ modula_update(struct server_pool *pool)
|
|
47
45
|
|
48
46
|
nserver = array_n(&pool->server);
|
49
47
|
nlive_server = 0;
|
50
|
-
total_weight = 0;
|
51
48
|
pool->next_rebuild = 0LL;
|
52
49
|
|
53
50
|
for (server_index = 0; server_index < nserver; server_index++) {
|
@@ -64,13 +61,6 @@ modula_update(struct server_pool *pool)
|
|
64
61
|
} else {
|
65
62
|
nlive_server++;
|
66
63
|
}
|
67
|
-
|
68
|
-
ASSERT(server->weight > 0);
|
69
|
-
|
70
|
-
/* count weight only for live servers */
|
71
|
-
if (!pool->auto_eject_hosts || server->next_retry <= now) {
|
72
|
-
total_weight += server->weight;
|
73
|
-
}
|
74
64
|
}
|
75
65
|
|
76
66
|
pool->nlive_server = nlive_server;
|
@@ -95,9 +85,9 @@ modula_update(struct server_pool *pool)
|
|
95
85
|
* Allocate the continuum for the pool, the first time, and every time we
|
96
86
|
* add a new server to the pool
|
97
87
|
*/
|
98
|
-
if (
|
88
|
+
if (nlive_server > pool->nserver_continuum) {
|
99
89
|
struct continuum *continuum;
|
100
|
-
uint32_t nserver_continuum =
|
90
|
+
uint32_t nserver_continuum = nlive_server + MODULA_CONTINUUM_ADDITION;
|
101
91
|
uint32_t ncontinuum = nserver_continuum * MODULA_POINTS_PER_SERVER;
|
102
92
|
|
103
93
|
continuum = nc_realloc(pool->continuum, sizeof(*continuum) * ncontinuum);
|
@@ -120,14 +110,12 @@ modula_update(struct server_pool *pool)
|
|
120
110
|
continue;
|
121
111
|
}
|
122
112
|
|
123
|
-
|
124
|
-
pointer_per_server = 1;
|
113
|
+
pointer_per_server = 1;
|
125
114
|
|
126
|
-
|
127
|
-
|
115
|
+
pool->continuum[continuum_index].index = server_index;
|
116
|
+
pool->continuum[continuum_index++].value = 0;
|
128
117
|
|
129
|
-
|
130
|
-
}
|
118
|
+
pointer_counter += pointer_per_server;
|
131
119
|
}
|
132
120
|
pool->ncontinuum = pointer_counter;
|
133
121
|
|
File without changes
|
File without changes
|
File without changes
|
data/ext/nutcracker/src/nc.c
CHANGED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
@@ -1109,6 +1109,14 @@ conf_pre_validate(struct conf *cf)
|
|
1109
1109
|
return NC_OK;
|
1110
1110
|
}
|
1111
1111
|
|
1112
|
+
static int
|
1113
|
+
conf_server_pname_cmp(const void *t1, const void *t2)
|
1114
|
+
{
|
1115
|
+
const struct conf_server *s1 = t1, *s2 = t2;
|
1116
|
+
|
1117
|
+
return string_compare(&s1->pname, &s2->pname);
|
1118
|
+
}
|
1119
|
+
|
1112
1120
|
static int
|
1113
1121
|
conf_server_name_cmp(const void *t1, const void *t2)
|
1114
1122
|
{
|
@@ -1148,10 +1156,27 @@ conf_validate_server(struct conf *cf, struct conf_pool *cp)
|
|
1148
1156
|
|
1149
1157
|
/*
|
1150
1158
|
* Disallow duplicate servers - servers with identical "host:port:weight"
|
1151
|
-
* or "name" combination are considered as duplicates
|
1152
|
-
* is configured, we only check for duplicate "name" and not for duplicate
|
1153
|
-
* "host:port:weight"
|
1159
|
+
* or "name" combination are considered as duplicates
|
1154
1160
|
*/
|
1161
|
+
array_sort(&cp->server, conf_server_pname_cmp);
|
1162
|
+
for (valid = true, i = 0; i < nserver - 1; i++) {
|
1163
|
+
struct conf_server *cs1, *cs2;
|
1164
|
+
|
1165
|
+
cs1 = array_get(&cp->server, i);
|
1166
|
+
cs2 = array_get(&cp->server, i + 1);
|
1167
|
+
|
1168
|
+
if (string_compare(&cs1->pname, &cs2->pname) == 0) {
|
1169
|
+
log_error("conf: pool '%.*s' has servers with same name '%.*s'",
|
1170
|
+
cp->name.len, cp->name.data, cs1->pname.len,
|
1171
|
+
cs1->pname.data);
|
1172
|
+
valid = false;
|
1173
|
+
break;
|
1174
|
+
}
|
1175
|
+
}
|
1176
|
+
if (!valid) {
|
1177
|
+
return NC_ERROR;
|
1178
|
+
}
|
1179
|
+
|
1155
1180
|
array_sort(&cp->server, conf_server_name_cmp);
|
1156
1181
|
for (valid = true, i = 0; i < nserver - 1; i++) {
|
1157
1182
|
struct conf_server *cs1, *cs2;
|
@@ -1472,7 +1497,7 @@ conf_add_server(struct conf *cf, struct command *cmd, void *conf)
|
|
1472
1497
|
struct conf_server *field;
|
1473
1498
|
uint8_t *p, *q, *start;
|
1474
1499
|
uint8_t *pname, *addr, *port, *weight, *name;
|
1475
|
-
uint32_t k,
|
1500
|
+
uint32_t k, pnamelen, addrlen, portlen, weightlen, namelen;
|
1476
1501
|
struct string address;
|
1477
1502
|
char delim[] = " ::";
|
1478
1503
|
|
@@ -1489,7 +1514,7 @@ conf_add_server(struct conf *cf, struct command *cmd, void *conf)
|
|
1489
1514
|
|
1490
1515
|
value = array_top(&cf->arg);
|
1491
1516
|
|
1492
|
-
/* parse "hostname:port:weight [name]"
|
1517
|
+
/* parse "hostname:port:weight [name]" from the end */
|
1493
1518
|
p = value->data + value->len - 1;
|
1494
1519
|
start = value->data;
|
1495
1520
|
addr = NULL;
|
@@ -1501,8 +1526,6 @@ conf_add_server(struct conf *cf, struct command *cmd, void *conf)
|
|
1501
1526
|
name = NULL;
|
1502
1527
|
namelen = 0;
|
1503
1528
|
|
1504
|
-
delimlen = value->data[0] == '/' ? 2 : 3;
|
1505
|
-
|
1506
1529
|
for (k = 0; k < sizeof(delim); k++) {
|
1507
1530
|
q = nc_strrchr(p, start, delim[k]);
|
1508
1531
|
if (q == NULL) {
|
@@ -1539,8 +1562,8 @@ conf_add_server(struct conf *cf, struct command *cmd, void *conf)
|
|
1539
1562
|
p = q - 1;
|
1540
1563
|
}
|
1541
1564
|
|
1542
|
-
if (k !=
|
1543
|
-
return "has an invalid \"hostname:port:weight [name]\"
|
1565
|
+
if (k != 3) {
|
1566
|
+
return "has an invalid \"hostname:port:weight [name]\" format string";
|
1544
1567
|
}
|
1545
1568
|
|
1546
1569
|
pname = value->data;
|
@@ -1559,11 +1582,9 @@ conf_add_server(struct conf *cf, struct command *cmd, void *conf)
|
|
1559
1582
|
return "has an invalid weight in \"hostname:port:weight [name]\" format string";
|
1560
1583
|
}
|
1561
1584
|
|
1562
|
-
|
1563
|
-
|
1564
|
-
|
1565
|
-
return "has an invalid port in \"hostname:port:weight [name]\" format string";
|
1566
|
-
}
|
1585
|
+
field->port = nc_atoi(port, portlen);
|
1586
|
+
if (field->port < 0 || !nc_valid_port(field->port)) {
|
1587
|
+
return "has an invalid port in \"hostname:port:weight [name]\" format string";
|
1567
1588
|
}
|
1568
1589
|
|
1569
1590
|
if (name == NULL) {
|