couchbase-memcached 1.2.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data.tar.gz.sig +2 -0
- data/BENCHMARKS +134 -0
- data/CHANGELOG +127 -0
- data/LICENSE +184 -0
- data/Manifest +535 -0
- data/README +118 -0
- data/Rakefile +83 -0
- data/TODO +4 -0
- data/couchbase-memcached.gemspec +33 -0
- data/ext/extconf-make.rb +25 -0
- data/ext/extconf.rb +91 -0
- data/ext/libmemcached-0.50/AUTHORS +11 -0
- data/ext/libmemcached-0.50/COPYING +33 -0
- data/ext/libmemcached-0.50/ChangeLog +392 -0
- data/ext/libmemcached-0.50/Makefile.am +114 -0
- data/ext/libmemcached-0.50/Makefile.in +4232 -0
- data/ext/libmemcached-0.50/NEWS +1 -0
- data/ext/libmemcached-0.50/README +43 -0
- data/ext/libmemcached-0.50/README.FIRST +31 -0
- data/ext/libmemcached-0.50/README.win32 +25 -0
- data/ext/libmemcached-0.50/THANKS +14 -0
- data/ext/libmemcached-0.50/TODO +11 -0
- data/ext/libmemcached-0.50/aclocal.m4 +1077 -0
- data/ext/libmemcached-0.50/clients/client_options.h +45 -0
- data/ext/libmemcached-0.50/clients/execute.cc +131 -0
- data/ext/libmemcached-0.50/clients/execute.h +30 -0
- data/ext/libmemcached-0.50/clients/generator.cc +96 -0
- data/ext/libmemcached-0.50/clients/generator.h +36 -0
- data/ext/libmemcached-0.50/clients/include.am +116 -0
- data/ext/libmemcached-0.50/clients/memaslap.c +908 -0
- data/ext/libmemcached-0.50/clients/memcapable.cc +2094 -0
- data/ext/libmemcached-0.50/clients/memcat.cc +242 -0
- data/ext/libmemcached-0.50/clients/memcp.cc +317 -0
- data/ext/libmemcached-0.50/clients/memdump.cc +183 -0
- data/ext/libmemcached-0.50/clients/memerror.cc +102 -0
- data/ext/libmemcached-0.50/clients/memflush.cc +154 -0
- data/ext/libmemcached-0.50/clients/memparse.cc +68 -0
- data/ext/libmemcached-0.50/clients/memrm.cc +177 -0
- data/ext/libmemcached-0.50/clients/memslap.cc +495 -0
- data/ext/libmemcached-0.50/clients/memstat.cc +349 -0
- data/ext/libmemcached-0.50/clients/ms_atomic.h +69 -0
- data/ext/libmemcached-0.50/clients/ms_conn.c +3413 -0
- data/ext/libmemcached-0.50/clients/ms_conn.h +241 -0
- data/ext/libmemcached-0.50/clients/ms_memslap.h +132 -0
- data/ext/libmemcached-0.50/clients/ms_setting.c +1068 -0
- data/ext/libmemcached-0.50/clients/ms_setting.h +181 -0
- data/ext/libmemcached-0.50/clients/ms_sigsegv.c +126 -0
- data/ext/libmemcached-0.50/clients/ms_sigsegv.h +34 -0
- data/ext/libmemcached-0.50/clients/ms_stats.c +307 -0
- data/ext/libmemcached-0.50/clients/ms_stats.h +69 -0
- data/ext/libmemcached-0.50/clients/ms_task.c +1114 -0
- data/ext/libmemcached-0.50/clients/ms_task.h +94 -0
- data/ext/libmemcached-0.50/clients/ms_thread.c +351 -0
- data/ext/libmemcached-0.50/clients/ms_thread.h +78 -0
- data/ext/libmemcached-0.50/clients/utilities.cc +231 -0
- data/ext/libmemcached-0.50/clients/utilities.h +64 -0
- data/ext/libmemcached-0.50/config.h.in +647 -0
- data/ext/libmemcached-0.50/config/autorun.sh +126 -0
- data/ext/libmemcached-0.50/config/compile +143 -0
- data/ext/libmemcached-0.50/config/config.guess +1517 -0
- data/ext/libmemcached-0.50/config/config.rpath +666 -0
- data/ext/libmemcached-0.50/config/config.sub +1760 -0
- data/ext/libmemcached-0.50/config/depcomp +630 -0
- data/ext/libmemcached-0.50/config/install-sh +520 -0
- data/ext/libmemcached-0.50/config/ltmain.sh +9642 -0
- data/ext/libmemcached-0.50/config/missing +376 -0
- data/ext/libmemcached-0.50/config/pandora-plugin +752 -0
- data/ext/libmemcached-0.50/config/uncrustify.cfg +1112 -0
- data/ext/libmemcached-0.50/configure +27103 -0
- data/ext/libmemcached-0.50/configure.ac +186 -0
- data/ext/libmemcached-0.50/docs/conf.py.in +354 -0
- data/ext/libmemcached-0.50/docs/include.am +240 -0
- data/ext/libmemcached-0.50/docs/man/hashkit_clone.3 +88 -0
- data/ext/libmemcached-0.50/docs/man/hashkit_crc32.3 +105 -0
- data/ext/libmemcached-0.50/docs/man/hashkit_create.3 +88 -0
- data/ext/libmemcached-0.50/docs/man/hashkit_fnv1_32.3 +105 -0
- data/ext/libmemcached-0.50/docs/man/hashkit_fnv1_64.3 +105 -0
- data/ext/libmemcached-0.50/docs/man/hashkit_fnv1a_32.3 +105 -0
- data/ext/libmemcached-0.50/docs/man/hashkit_fnv1a_64.3 +105 -0
- data/ext/libmemcached-0.50/docs/man/hashkit_free.3 +88 -0
- data/ext/libmemcached-0.50/docs/man/hashkit_functions.3 +105 -0
- data/ext/libmemcached-0.50/docs/man/hashkit_hsieh.3 +105 -0
- data/ext/libmemcached-0.50/docs/man/hashkit_is_allocated.3 +88 -0
- data/ext/libmemcached-0.50/docs/man/hashkit_jenkins.3 +105 -0
- data/ext/libmemcached-0.50/docs/man/hashkit_md5.3 +105 -0
- data/ext/libmemcached-0.50/docs/man/hashkit_murmur.3 +105 -0
- data/ext/libmemcached-0.50/docs/man/hashkit_value.3 +66 -0
- data/ext/libmemcached-0.50/docs/man/libhashkit.3 +57 -0
- data/ext/libmemcached-0.50/docs/man/libmemcached.3 +208 -0
- data/ext/libmemcached-0.50/docs/man/libmemcached_check_configuration.3 +293 -0
- data/ext/libmemcached-0.50/docs/man/libmemcached_configuration.3 +293 -0
- data/ext/libmemcached-0.50/docs/man/libmemcached_examples.3 +144 -0
- data/ext/libmemcached-0.50/docs/man/libmemcachedutil.3 +68 -0
- data/ext/libmemcached-0.50/docs/man/memaslap.1 +1222 -0
- data/ext/libmemcached-0.50/docs/man/memcached.3 +293 -0
- data/ext/libmemcached-0.50/docs/man/memcached_add.3 +132 -0
- data/ext/libmemcached-0.50/docs/man/memcached_add_by_key.3 +132 -0
- data/ext/libmemcached-0.50/docs/man/memcached_analyze.3 +77 -0
- data/ext/libmemcached-0.50/docs/man/memcached_append.3 +111 -0
- data/ext/libmemcached-0.50/docs/man/memcached_append_by_key.3 +111 -0
- data/ext/libmemcached-0.50/docs/man/memcached_behavior_get.3 +333 -0
- data/ext/libmemcached-0.50/docs/man/memcached_behavior_set.3 +333 -0
- data/ext/libmemcached-0.50/docs/man/memcached_callback_get.3 +159 -0
- data/ext/libmemcached-0.50/docs/man/memcached_callback_set.3 +159 -0
- data/ext/libmemcached-0.50/docs/man/memcached_cas.3 +91 -0
- data/ext/libmemcached-0.50/docs/man/memcached_cas_by_key.3 +91 -0
- data/ext/libmemcached-0.50/docs/man/memcached_clone.3 +99 -0
- data/ext/libmemcached-0.50/docs/man/memcached_create.3 +99 -0
- data/ext/libmemcached-0.50/docs/man/memcached_decrement.3 +124 -0
- data/ext/libmemcached-0.50/docs/man/memcached_decrement_with_initial.3 +124 -0
- data/ext/libmemcached-0.50/docs/man/memcached_delete.3 +83 -0
- data/ext/libmemcached-0.50/docs/man/memcached_delete_by_key.3 +83 -0
- data/ext/libmemcached-0.50/docs/man/memcached_destroy_sasl_auth_data.3 +95 -0
- data/ext/libmemcached-0.50/docs/man/memcached_dump.3 +77 -0
- data/ext/libmemcached-0.50/docs/man/memcached_fetch.3 +174 -0
- data/ext/libmemcached-0.50/docs/man/memcached_fetch_execute.3 +174 -0
- data/ext/libmemcached-0.50/docs/man/memcached_fetch_result.3 +174 -0
- data/ext/libmemcached-0.50/docs/man/memcached_flush_buffers.3 +72 -0
- data/ext/libmemcached-0.50/docs/man/memcached_free.3 +99 -0
- data/ext/libmemcached-0.50/docs/man/memcached_generate_hash.3 +85 -0
- data/ext/libmemcached-0.50/docs/man/memcached_generate_hash_value.3 +85 -0
- data/ext/libmemcached-0.50/docs/man/memcached_get.3 +174 -0
- data/ext/libmemcached-0.50/docs/man/memcached_get_by_key.3 +174 -0
- data/ext/libmemcached-0.50/docs/man/memcached_get_memory_allocators.3 +111 -0
- data/ext/libmemcached-0.50/docs/man/memcached_get_sasl_callbacks.3 +95 -0
- data/ext/libmemcached-0.50/docs/man/memcached_get_user_data.3 +79 -0
- data/ext/libmemcached-0.50/docs/man/memcached_increment.3 +124 -0
- data/ext/libmemcached-0.50/docs/man/memcached_increment_with_initial.3 +124 -0
- data/ext/libmemcached-0.50/docs/man/memcached_lib_version.3 +76 -0
- data/ext/libmemcached-0.50/docs/man/memcached_mget.3 +174 -0
- data/ext/libmemcached-0.50/docs/man/memcached_mget_by_key.3 +174 -0
- data/ext/libmemcached-0.50/docs/man/memcached_mget_execute.3 +174 -0
- data/ext/libmemcached-0.50/docs/man/memcached_mget_execute_by_key.3 +174 -0
- data/ext/libmemcached-0.50/docs/man/memcached_pool_behavior_get.3 +139 -0
- data/ext/libmemcached-0.50/docs/man/memcached_pool_behavior_set.3 +139 -0
- data/ext/libmemcached-0.50/docs/man/memcached_pool_create.3 +139 -0
- data/ext/libmemcached-0.50/docs/man/memcached_pool_destroy.3 +139 -0
- data/ext/libmemcached-0.50/docs/man/memcached_pool_pop.3 +139 -0
- data/ext/libmemcached-0.50/docs/man/memcached_pool_push.3 +139 -0
- data/ext/libmemcached-0.50/docs/man/memcached_pool_st.3 +139 -0
- data/ext/libmemcached-0.50/docs/man/memcached_prepend.3 +111 -0
- data/ext/libmemcached-0.50/docs/man/memcached_prepend_by_key.3 +111 -0
- data/ext/libmemcached-0.50/docs/man/memcached_quit.3 +74 -0
- data/ext/libmemcached-0.50/docs/man/memcached_replace.3 +132 -0
- data/ext/libmemcached-0.50/docs/man/memcached_replace_by_key.3 +132 -0
- data/ext/libmemcached-0.50/docs/man/memcached_sasl_set_auth_data.3 +95 -0
- data/ext/libmemcached-0.50/docs/man/memcached_server_add.3 +141 -0
- data/ext/libmemcached-0.50/docs/man/memcached_server_count.3 +141 -0
- data/ext/libmemcached-0.50/docs/man/memcached_server_cursor.3 +141 -0
- data/ext/libmemcached-0.50/docs/man/memcached_server_list.3 +141 -0
- data/ext/libmemcached-0.50/docs/man/memcached_server_list_append.3 +111 -0
- data/ext/libmemcached-0.50/docs/man/memcached_server_list_count.3 +111 -0
- data/ext/libmemcached-0.50/docs/man/memcached_server_list_free.3 +111 -0
- data/ext/libmemcached-0.50/docs/man/memcached_server_push.3 +141 -0
- data/ext/libmemcached-0.50/docs/man/memcached_servers_parse.3 +111 -0
- data/ext/libmemcached-0.50/docs/man/memcached_set.3 +132 -0
- data/ext/libmemcached-0.50/docs/man/memcached_set_by_key.3 +132 -0
- data/ext/libmemcached-0.50/docs/man/memcached_set_memory_allocators.3 +111 -0
- data/ext/libmemcached-0.50/docs/man/memcached_set_sasl_callbacks.3 +95 -0
- data/ext/libmemcached-0.50/docs/man/memcached_set_user_data.3 +79 -0
- data/ext/libmemcached-0.50/docs/man/memcached_stat.3 +116 -0
- data/ext/libmemcached-0.50/docs/man/memcached_stat_execute.3 +116 -0
- data/ext/libmemcached-0.50/docs/man/memcached_stat_get_keys.3 +116 -0
- data/ext/libmemcached-0.50/docs/man/memcached_stat_get_value.3 +116 -0
- data/ext/libmemcached-0.50/docs/man/memcached_stat_servername.3 +116 -0
- data/ext/libmemcached-0.50/docs/man/memcached_strerror.3 +69 -0
- data/ext/libmemcached-0.50/docs/man/memcached_verbosity.3 +66 -0
- data/ext/libmemcached-0.50/docs/man/memcached_version.3 +76 -0
- data/ext/libmemcached-0.50/docs/man/memcapable.1 +92 -0
- data/ext/libmemcached-0.50/docs/man/memcat.1 +71 -0
- data/ext/libmemcached-0.50/docs/man/memcp.1 +77 -0
- data/ext/libmemcached-0.50/docs/man/memdump.1 +66 -0
- data/ext/libmemcached-0.50/docs/man/memerror.1 +65 -0
- data/ext/libmemcached-0.50/docs/man/memflush.1 +73 -0
- data/ext/libmemcached-0.50/docs/man/memrm.1 +72 -0
- data/ext/libmemcached-0.50/docs/man/memslap.1 +59 -0
- data/ext/libmemcached-0.50/docs/man/memstat.1 +70 -0
- data/ext/libmemcached-0.50/example/include.am +24 -0
- data/ext/libmemcached-0.50/example/interface_v0.c +594 -0
- data/ext/libmemcached-0.50/example/interface_v1.c +411 -0
- data/ext/libmemcached-0.50/example/memcached_light.c +474 -0
- data/ext/libmemcached-0.50/example/memcached_light.h +7 -0
- data/ext/libmemcached-0.50/example/storage.c +172 -0
- data/ext/libmemcached-0.50/example/storage.h +27 -0
- data/ext/libmemcached-0.50/example/storage_innodb.c +535 -0
- data/ext/libmemcached-0.50/libhashkit/algorithm.cc +69 -0
- data/ext/libmemcached-0.50/libhashkit/algorithm.h +96 -0
- data/ext/libmemcached-0.50/libhashkit/behavior.cc +9 -0
- data/ext/libmemcached-0.50/libhashkit/behavior.h +26 -0
- data/ext/libmemcached-0.50/libhashkit/common.h +33 -0
- data/ext/libmemcached-0.50/libhashkit/configure.h.in +19 -0
- data/ext/libmemcached-0.50/libhashkit/crc32.cc +86 -0
- data/ext/libmemcached-0.50/libhashkit/digest.cc +62 -0
- data/ext/libmemcached-0.50/libhashkit/digest.h +30 -0
- data/ext/libmemcached-0.50/libhashkit/fnv.cc +75 -0
- data/ext/libmemcached-0.50/libhashkit/function.cc +156 -0
- data/ext/libmemcached-0.50/libhashkit/function.h +44 -0
- data/ext/libmemcached-0.50/libhashkit/hashkit.cc +100 -0
- data/ext/libmemcached-0.50/libhashkit/hashkit.h +95 -0
- data/ext/libmemcached-0.50/libhashkit/hashkit.hpp +97 -0
- data/ext/libmemcached-0.50/libhashkit/hsieh.cc +70 -0
- data/ext/libmemcached-0.50/libhashkit/include.am +69 -0
- data/ext/libmemcached-0.50/libhashkit/jenkins.cc +214 -0
- data/ext/libmemcached-0.50/libhashkit/ketama.cc +164 -0
- data/ext/libmemcached-0.50/libhashkit/md5.cc +367 -0
- data/ext/libmemcached-0.50/libhashkit/murmur.cc +77 -0
- data/ext/libmemcached-0.50/libhashkit/one_at_a_time.cc +34 -0
- data/ext/libmemcached-0.50/libhashkit/str_algorithm.cc +58 -0
- data/ext/libmemcached-0.50/libhashkit/str_algorithm.h +48 -0
- data/ext/libmemcached-0.50/libhashkit/strerror.cc +25 -0
- data/ext/libmemcached-0.50/libhashkit/strerror.h +23 -0
- data/ext/libmemcached-0.50/libhashkit/types.h +90 -0
- data/ext/libmemcached-0.50/libhashkit/visibility.h +48 -0
- data/ext/libmemcached-0.50/libmemcached/allocators.cc +119 -0
- data/ext/libmemcached-0.50/libmemcached/allocators.h +87 -0
- data/ext/libmemcached-0.50/libmemcached/analyze.cc +110 -0
- data/ext/libmemcached-0.50/libmemcached/analyze.h +66 -0
- data/ext/libmemcached-0.50/libmemcached/array.c +128 -0
- data/ext/libmemcached-0.50/libmemcached/array.h +75 -0
- data/ext/libmemcached-0.50/libmemcached/auto.cc +383 -0
- data/ext/libmemcached-0.50/libmemcached/auto.h +111 -0
- data/ext/libmemcached-0.50/libmemcached/basic_string.h +55 -0
- data/ext/libmemcached-0.50/libmemcached/behavior.cc +590 -0
- data/ext/libmemcached-0.50/libmemcached/behavior.h +86 -0
- data/ext/libmemcached-0.50/libmemcached/byteorder.cc +90 -0
- data/ext/libmemcached-0.50/libmemcached/byteorder.h +52 -0
- data/ext/libmemcached-0.50/libmemcached/callback.cc +160 -0
- data/ext/libmemcached-0.50/libmemcached/callback.h +61 -0
- data/ext/libmemcached-0.50/libmemcached/common.h +182 -0
- data/ext/libmemcached-0.50/libmemcached/configure.h.in +52 -0
- data/ext/libmemcached-0.50/libmemcached/connect.cc +626 -0
- data/ext/libmemcached-0.50/libmemcached/constants.h +167 -0
- data/ext/libmemcached-0.50/libmemcached/delete.cc +266 -0
- data/ext/libmemcached-0.50/libmemcached/delete.h +57 -0
- data/ext/libmemcached-0.50/libmemcached/do.cc +100 -0
- data/ext/libmemcached-0.50/libmemcached/do.hpp +49 -0
- data/ext/libmemcached-0.50/libmemcached/dump.cc +107 -0
- data/ext/libmemcached-0.50/libmemcached/dump.h +51 -0
- data/ext/libmemcached-0.50/libmemcached/error.cc +419 -0
- data/ext/libmemcached-0.50/libmemcached/error.h +61 -0
- data/ext/libmemcached-0.50/libmemcached/error.hpp +87 -0
- data/ext/libmemcached-0.50/libmemcached/exception.hpp +63 -0
- data/ext/libmemcached-0.50/libmemcached/fetch.cc +267 -0
- data/ext/libmemcached-0.50/libmemcached/fetch.h +53 -0
- data/ext/libmemcached-0.50/libmemcached/flush.cc +149 -0
- data/ext/libmemcached-0.50/libmemcached/flush.h +49 -0
- data/ext/libmemcached-0.50/libmemcached/flush_buffers.cc +66 -0
- data/ext/libmemcached-0.50/libmemcached/flush_buffers.h +49 -0
- data/ext/libmemcached-0.50/libmemcached/get.cc +842 -0
- data/ext/libmemcached-0.50/libmemcached/get.h +135 -0
- data/ext/libmemcached-0.50/libmemcached/hash.cc +178 -0
- data/ext/libmemcached-0.50/libmemcached/hash.h +68 -0
- data/ext/libmemcached-0.50/libmemcached/hosts.cc +516 -0
- data/ext/libmemcached-0.50/libmemcached/include.am +183 -0
- data/ext/libmemcached-0.50/libmemcached/initialize_query.cc +70 -0
- data/ext/libmemcached-0.50/libmemcached/initialize_query.h +51 -0
- data/ext/libmemcached-0.50/libmemcached/internal.h +46 -0
- data/ext/libmemcached-0.50/libmemcached/io.cc +920 -0
- data/ext/libmemcached-0.50/libmemcached/io.h +119 -0
- data/ext/libmemcached-0.50/libmemcached/is.h +48 -0
- data/ext/libmemcached-0.50/libmemcached/key.cc +23 -0
- data/ext/libmemcached-0.50/libmemcached/libmemcached_probes.d +30 -0
- data/ext/libmemcached-0.50/libmemcached/libmemcached_probes.h +118 -0
- data/ext/libmemcached-0.50/libmemcached/memcached.cc +437 -0
- data/ext/libmemcached-0.50/libmemcached/memcached.h +214 -0
- data/ext/libmemcached-0.50/libmemcached/memcached.hpp +799 -0
- data/ext/libmemcached-0.50/libmemcached/memcached/README.txt +7 -0
- data/ext/libmemcached-0.50/libmemcached/memcached/protocol_binary.h +726 -0
- data/ext/libmemcached-0.50/libmemcached/memcached/vbucket.h +26 -0
- data/ext/libmemcached-0.50/libmemcached/memcached_util.h +44 -0
- data/ext/libmemcached-0.50/libmemcached/memory.h +79 -0
- data/ext/libmemcached-0.50/libmemcached/options.cc +178 -0
- data/ext/libmemcached-0.50/libmemcached/options.h +49 -0
- data/ext/libmemcached-0.50/libmemcached/options.hpp +56 -0
- data/ext/libmemcached-0.50/libmemcached/options/context.h +151 -0
- data/ext/libmemcached-0.50/libmemcached/options/include.am +19 -0
- data/ext/libmemcached-0.50/libmemcached/options/parser.am +0 -0
- data/ext/libmemcached-0.50/libmemcached/options/parser.cc +2324 -0
- data/ext/libmemcached-0.50/libmemcached/options/parser.h +122 -0
- data/ext/libmemcached-0.50/libmemcached/options/scanner.cc +3203 -0
- data/ext/libmemcached-0.50/libmemcached/options/scanner.h +479 -0
- data/ext/libmemcached-0.50/libmemcached/options/server.h +60 -0
- data/ext/libmemcached-0.50/libmemcached/options/symbol.h +57 -0
- data/ext/libmemcached-0.50/libmemcached/parse.cc +110 -0
- data/ext/libmemcached-0.50/libmemcached/parse.h +23 -0
- data/ext/libmemcached-0.50/libmemcached/platform.h +56 -0
- data/ext/libmemcached-0.50/libmemcached/prefix_key.cc +65 -0
- data/ext/libmemcached-0.50/libmemcached/prefix_key.h +49 -0
- data/ext/libmemcached-0.50/libmemcached/protocol/ascii_handler.c +963 -0
- data/ext/libmemcached-0.50/libmemcached/protocol/ascii_handler.h +40 -0
- data/ext/libmemcached-0.50/libmemcached/protocol/binary_handler.c +1121 -0
- data/ext/libmemcached-0.50/libmemcached/protocol/binary_handler.h +47 -0
- data/ext/libmemcached-0.50/libmemcached/protocol/cache.c +149 -0
- data/ext/libmemcached-0.50/libmemcached/protocol/cache.h +116 -0
- data/ext/libmemcached-0.50/libmemcached/protocol/callback.h +418 -0
- data/ext/libmemcached-0.50/libmemcached/protocol/common.h +163 -0
- data/ext/libmemcached-0.50/libmemcached/protocol/include.am +26 -0
- data/ext/libmemcached-0.50/libmemcached/protocol/pedantic.c +202 -0
- data/ext/libmemcached-0.50/libmemcached/protocol/protocol_handler.c +365 -0
- data/ext/libmemcached-0.50/libmemcached/protocol_handler.h +215 -0
- data/ext/libmemcached-0.50/libmemcached/purge.cc +90 -0
- data/ext/libmemcached-0.50/libmemcached/quit.cc +139 -0
- data/ext/libmemcached-0.50/libmemcached/quit.h +55 -0
- data/ext/libmemcached-0.50/libmemcached/response.cc +619 -0
- data/ext/libmemcached-0.50/libmemcached/response.h +57 -0
- data/ext/libmemcached-0.50/libmemcached/result.cc +173 -0
- data/ext/libmemcached-0.50/libmemcached/result.h +100 -0
- data/ext/libmemcached-0.50/libmemcached/return.h +98 -0
- data/ext/libmemcached-0.50/libmemcached/sasl.c +408 -0
- data/ext/libmemcached-0.50/libmemcached/sasl.h +86 -0
- data/ext/libmemcached-0.50/libmemcached/server.cc +351 -0
- data/ext/libmemcached-0.50/libmemcached/server.h +169 -0
- data/ext/libmemcached-0.50/libmemcached/server_list.cc +88 -0
- data/ext/libmemcached-0.50/libmemcached/server_list.h +77 -0
- data/ext/libmemcached-0.50/libmemcached/stats.cc +623 -0
- data/ext/libmemcached-0.50/libmemcached/stats.h +96 -0
- data/ext/libmemcached-0.50/libmemcached/storage.cc +567 -0
- data/ext/libmemcached-0.50/libmemcached/storage.h +133 -0
- data/ext/libmemcached-0.50/libmemcached/strerror.cc +189 -0
- data/ext/libmemcached-0.50/libmemcached/strerror.h +50 -0
- data/ext/libmemcached-0.50/libmemcached/string.cc +253 -0
- data/ext/libmemcached-0.50/libmemcached/string.h +121 -0
- data/ext/libmemcached-0.50/libmemcached/touch.cc +106 -0
- data/ext/libmemcached-0.50/libmemcached/touch.h +59 -0
- data/ext/libmemcached-0.50/libmemcached/types.h +117 -0
- data/ext/libmemcached-0.50/libmemcached/util.h +40 -0
- data/ext/libmemcached-0.50/libmemcached/util/flush.cc +61 -0
- data/ext/libmemcached-0.50/libmemcached/util/flush.h +50 -0
- data/ext/libmemcached-0.50/libmemcached/util/include.am +34 -0
- data/ext/libmemcached-0.50/libmemcached/util/ping.cc +62 -0
- data/ext/libmemcached-0.50/libmemcached/util/ping.h +49 -0
- data/ext/libmemcached-0.50/libmemcached/util/pool.cc +392 -0
- data/ext/libmemcached-0.50/libmemcached/util/pool.h +78 -0
- data/ext/libmemcached-0.50/libmemcached/util/version.cc +87 -0
- data/ext/libmemcached-0.50/libmemcached/util/version.h +53 -0
- data/ext/libmemcached-0.50/libmemcached/verbosity.cc +97 -0
- data/ext/libmemcached-0.50/libmemcached/verbosity.h +50 -0
- data/ext/libmemcached-0.50/libmemcached/version.cc +214 -0
- data/ext/libmemcached-0.50/libmemcached/version.h +52 -0
- data/ext/libmemcached-0.50/libmemcached/virtual_bucket.c +118 -0
- data/ext/libmemcached-0.50/libmemcached/virtual_bucket.h +59 -0
- data/ext/libmemcached-0.50/libmemcached/visibility.h +51 -0
- data/ext/libmemcached-0.50/libmemcached/watchpoint.h +110 -0
- data/ext/libmemcached-0.50/libtest/callbacks.h +21 -0
- data/ext/libmemcached-0.50/libtest/collection.h +19 -0
- data/ext/libmemcached-0.50/libtest/common.h +50 -0
- data/ext/libmemcached-0.50/libtest/core.h +11 -0
- data/ext/libmemcached-0.50/libtest/error.h +18 -0
- data/ext/libmemcached-0.50/libtest/failed.h +52 -0
- data/ext/libmemcached-0.50/libtest/framework.cc +57 -0
- data/ext/libmemcached-0.50/libtest/framework.h +137 -0
- data/ext/libmemcached-0.50/libtest/get.h +22 -0
- data/ext/libmemcached-0.50/libtest/include.am +52 -0
- data/ext/libmemcached-0.50/libtest/runner.h +19 -0
- data/ext/libmemcached-0.50/libtest/server.c +355 -0
- data/ext/libmemcached-0.50/libtest/server.h +43 -0
- data/ext/libmemcached-0.50/libtest/stats.h +30 -0
- data/ext/libmemcached-0.50/libtest/strerror.h +14 -0
- data/ext/libmemcached-0.50/libtest/test.cc +319 -0
- data/ext/libmemcached-0.50/libtest/test.h +162 -0
- data/ext/libmemcached-0.50/libtest/test.hpp +46 -0
- data/ext/libmemcached-0.50/libtest/visibility.h +69 -0
- data/ext/libmemcached-0.50/m4/ac_cxx_header_stdcxx_98.m4 +83 -0
- data/ext/libmemcached-0.50/m4/acx_pthread.m4 +271 -0
- data/ext/libmemcached-0.50/m4/byteorder.m4 +19 -0
- data/ext/libmemcached-0.50/m4/deprecated.m4 +17 -0
- data/ext/libmemcached-0.50/m4/eagain.m4 +28 -0
- data/ext/libmemcached-0.50/m4/enable_utillib.m4 +16 -0
- data/ext/libmemcached-0.50/m4/gettext.m4 +379 -0
- data/ext/libmemcached-0.50/m4/hsieh.m4 +18 -0
- data/ext/libmemcached-0.50/m4/iconv.m4 +214 -0
- data/ext/libmemcached-0.50/m4/lib-ld.m4 +110 -0
- data/ext/libmemcached-0.50/m4/lib-link.m4 +767 -0
- data/ext/libmemcached-0.50/m4/lib-prefix.m4 +221 -0
- data/ext/libmemcached-0.50/m4/libtool.m4 +7851 -0
- data/ext/libmemcached-0.50/m4/ltoptions.m4 +369 -0
- data/ext/libmemcached-0.50/m4/ltsugar.m4 +123 -0
- data/ext/libmemcached-0.50/m4/ltversion.m4 +23 -0
- data/ext/libmemcached-0.50/m4/lt~obsolete.m4 +98 -0
- data/ext/libmemcached-0.50/m4/memaslap.m4 +9 -0
- data/ext/libmemcached-0.50/m4/memcached.m4 +31 -0
- data/ext/libmemcached-0.50/m4/murmur.m4 +18 -0
- data/ext/libmemcached-0.50/m4/pandora_64bit.m4 +60 -0
- data/ext/libmemcached-0.50/m4/pandora_bison.m4 +33 -0
- data/ext/libmemcached-0.50/m4/pandora_canonical.m4 +418 -0
- data/ext/libmemcached-0.50/m4/pandora_check_compiler_version.m4 +37 -0
- data/ext/libmemcached-0.50/m4/pandora_check_cxx_standard.m4 +23 -0
- data/ext/libmemcached-0.50/m4/pandora_cinttypes.m4 +39 -0
- data/ext/libmemcached-0.50/m4/pandora_clock_gettime.m4 +15 -0
- data/ext/libmemcached-0.50/m4/pandora_compile_stdcxx_0x.m4 +103 -0
- data/ext/libmemcached-0.50/m4/pandora_cstdint.m4 +38 -0
- data/ext/libmemcached-0.50/m4/pandora_cxx_demangle.m4 +27 -0
- data/ext/libmemcached-0.50/m4/pandora_enable_dtrace.m4 +60 -0
- data/ext/libmemcached-0.50/m4/pandora_ensure_gcc_version.m4 +62 -0
- data/ext/libmemcached-0.50/m4/pandora_extensions.m4 +16 -0
- data/ext/libmemcached-0.50/m4/pandora_fdatasync.m4 +25 -0
- data/ext/libmemcached-0.50/m4/pandora_flex.m4 +33 -0
- data/ext/libmemcached-0.50/m4/pandora_have_better_malloc.m4 +66 -0
- data/ext/libmemcached-0.50/m4/pandora_have_boost.m4 +93 -0
- data/ext/libmemcached-0.50/m4/pandora_have_gcc_atomics.m4 +37 -0
- data/ext/libmemcached-0.50/m4/pandora_have_innodb.m4 +41 -0
- data/ext/libmemcached-0.50/m4/pandora_have_libaio.m4 +56 -0
- data/ext/libmemcached-0.50/m4/pandora_have_libavahi.m4 +41 -0
- data/ext/libmemcached-0.50/m4/pandora_have_libbdb.m4 +40 -0
- data/ext/libmemcached-0.50/m4/pandora_have_libboost_date_time.m4 +46 -0
- data/ext/libmemcached-0.50/m4/pandora_have_libboost_filesystem.m4 +47 -0
- data/ext/libmemcached-0.50/m4/pandora_have_libboost_iostreams.m4 +49 -0
- data/ext/libmemcached-0.50/m4/pandora_have_libboost_options.m4 +47 -0
- data/ext/libmemcached-0.50/m4/pandora_have_libboost_regex.m4 +54 -0
- data/ext/libmemcached-0.50/m4/pandora_have_libboost_test.m4 +45 -0
- data/ext/libmemcached-0.50/m4/pandora_have_libboost_thread.m4 +54 -0
- data/ext/libmemcached-0.50/m4/pandora_have_libcassandra.m4 +44 -0
- data/ext/libmemcached-0.50/m4/pandora_have_libcurl.m4 +62 -0
- data/ext/libmemcached-0.50/m4/pandora_have_libdl.m4 +51 -0
- data/ext/libmemcached-0.50/m4/pandora_have_libdrizzle.m4 +61 -0
- data/ext/libmemcached-0.50/m4/pandora_have_libevent.m4 +66 -0
- data/ext/libmemcached-0.50/m4/pandora_have_libgearman.m4 +41 -0
- data/ext/libmemcached-0.50/m4/pandora_have_libgtest.m4 +47 -0
- data/ext/libmemcached-0.50/m4/pandora_have_libhaildb.m4 +43 -0
- data/ext/libmemcached-0.50/m4/pandora_have_libhashkit.m4 +42 -0
- data/ext/libmemcached-0.50/m4/pandora_have_libinnodb.m4 +64 -0
- data/ext/libmemcached-0.50/m4/pandora_have_libldap.m4 +73 -0
- data/ext/libmemcached-0.50/m4/pandora_have_libmemcached.m4 +106 -0
- data/ext/libmemcached-0.50/m4/pandora_have_libmysqlclient.m4 +146 -0
- data/ext/libmemcached-0.50/m4/pandora_have_libndbclient.m4 +80 -0
- data/ext/libmemcached-0.50/m4/pandora_have_libpcre.m4 +73 -0
- data/ext/libmemcached-0.50/m4/pandora_have_libpq.m4 +46 -0
- data/ext/libmemcached-0.50/m4/pandora_have_libpqxx.m4 +44 -0
- data/ext/libmemcached-0.50/m4/pandora_have_libsqlite3.m4 +42 -0
- data/ext/libmemcached-0.50/m4/pandora_have_libtokyocabinet.m4 +54 -0
- data/ext/libmemcached-0.50/m4/pandora_have_libuuid.m4 +55 -0
- data/ext/libmemcached-0.50/m4/pandora_have_libvbucket.m4 +40 -0
- data/ext/libmemcached-0.50/m4/pandora_have_libxml2.m4 +52 -0
- data/ext/libmemcached-0.50/m4/pandora_have_libz.m4 +51 -0
- data/ext/libmemcached-0.50/m4/pandora_have_protobuf.m4 +82 -0
- data/ext/libmemcached-0.50/m4/pandora_have_sasl.m4 +133 -0
- data/ext/libmemcached-0.50/m4/pandora_have_thrift.m4 +45 -0
- data/ext/libmemcached-0.50/m4/pandora_header_assert.m4 +23 -0
- data/ext/libmemcached-0.50/m4/pandora_header_stdcxx_98.m4 +83 -0
- data/ext/libmemcached-0.50/m4/pandora_intltool.m4 +225 -0
- data/ext/libmemcached-0.50/m4/pandora_libtool.m4 +25 -0
- data/ext/libmemcached-0.50/m4/pandora_optimize.m4 +75 -0
- data/ext/libmemcached-0.50/m4/pandora_platform.m4 +117 -0
- data/ext/libmemcached-0.50/m4/pandora_plugins.m4 +62 -0
- data/ext/libmemcached-0.50/m4/pandora_print_callstack.m4 +61 -0
- data/ext/libmemcached-0.50/m4/pandora_pthread.m4 +258 -0
- data/ext/libmemcached-0.50/m4/pandora_python3_devel.m4 +236 -0
- data/ext/libmemcached-0.50/m4/pandora_run_cpplint.m4 +8 -0
- data/ext/libmemcached-0.50/m4/pandora_sasl.m4 +133 -0
- data/ext/libmemcached-0.50/m4/pandora_shared_ptr.m4 +59 -0
- data/ext/libmemcached-0.50/m4/pandora_stack_direction.m4 +39 -0
- data/ext/libmemcached-0.50/m4/pandora_stl_hash.m4 +94 -0
- data/ext/libmemcached-0.50/m4/pandora_swig.m4 +39 -0
- data/ext/libmemcached-0.50/m4/pandora_use_pipe.m4 +36 -0
- data/ext/libmemcached-0.50/m4/pandora_vc_build.m4 +168 -0
- data/ext/libmemcached-0.50/m4/pandora_version.m4 +11 -0
- data/ext/libmemcached-0.50/m4/pandora_visibility.m4 +75 -0
- data/ext/libmemcached-0.50/m4/pandora_warnings.m4 +447 -0
- data/ext/libmemcached-0.50/m4/pandora_with_gettext.m4 +44 -0
- data/ext/libmemcached-0.50/m4/pandora_with_lua.m4 +55 -0
- data/ext/libmemcached-0.50/m4/pandora_with_memcached.m4 +41 -0
- data/ext/libmemcached-0.50/m4/pandora_with_perl.m4 +81 -0
- data/ext/libmemcached-0.50/m4/pandora_with_php.m4 +56 -0
- data/ext/libmemcached-0.50/m4/pandora_with_python.m4 +37 -0
- data/ext/libmemcached-0.50/m4/pandora_with_python3.m4 +44 -0
- data/ext/libmemcached-0.50/m4/pandora_with_r.m4 +33 -0
- data/ext/libmemcached-0.50/m4/pandora_with_ruby.m4 +79 -0
- data/ext/libmemcached-0.50/m4/pandora_with_valgrind.m4 +17 -0
- data/ext/libmemcached-0.50/m4/pkg.m4 +157 -0
- data/ext/libmemcached-0.50/m4/po.m4 +449 -0
- data/ext/libmemcached-0.50/m4/progtest.m4 +92 -0
- data/ext/libmemcached-0.50/m4/protocol_binary.m4 +36 -0
- data/ext/libmemcached-0.50/m4/setsockopt.m4 +73 -0
- data/ext/libmemcached-0.50/m4/socket_send_flags.m4 +66 -0
- data/ext/libmemcached-0.50/poll/include.am +8 -0
- data/ext/libmemcached-0.50/poll/poll.c +77 -0
- data/ext/libmemcached-0.50/poll/poll.h +45 -0
- data/ext/libmemcached-0.50/support/include.am +11 -0
- data/ext/libmemcached-0.50/support/libmemcached-fc.spec.in +105 -0
- data/ext/libmemcached-0.50/support/libmemcached.pc.in +10 -0
- data/ext/libmemcached-0.50/support/libmemcached.spec.in +281 -0
- data/ext/libmemcached-0.50/support/set_benchmark.sh +5 -0
- data/ext/libmemcached-0.50/tests/atomsmasher.cc +295 -0
- data/ext/libmemcached-0.50/tests/basic.cc +134 -0
- data/ext/libmemcached-0.50/tests/basic.h +66 -0
- data/ext/libmemcached-0.50/tests/cpp_example.cc +195 -0
- data/ext/libmemcached-0.50/tests/deprecated.cc +72 -0
- data/ext/libmemcached-0.50/tests/deprecated.h +49 -0
- data/ext/libmemcached-0.50/tests/error_conditions.cc +63 -0
- data/ext/libmemcached-0.50/tests/error_conditions.h +48 -0
- data/ext/libmemcached-0.50/tests/hash_plus.cc +225 -0
- data/ext/libmemcached-0.50/tests/hash_results.h +127 -0
- data/ext/libmemcached-0.50/tests/hashkit_functions.cc +619 -0
- data/ext/libmemcached-0.50/tests/include.am +342 -0
- data/ext/libmemcached-0.50/tests/ketama_test_cases.h +121 -0
- data/ext/libmemcached-0.50/tests/ketama_test_cases_spy.h +118 -0
- data/ext/libmemcached-0.50/tests/libmemcached_world.h +205 -0
- data/ext/libmemcached-0.50/tests/mem_functions.cc +6648 -0
- data/ext/libmemcached-0.50/tests/mem_udp.cc +510 -0
- data/ext/libmemcached-0.50/tests/output_plus.res +5 -0
- data/ext/libmemcached-0.50/tests/parser.cc +599 -0
- data/ext/libmemcached-0.50/tests/parser.h +109 -0
- data/ext/libmemcached-0.50/tests/plus.cpp +240 -0
- data/ext/libmemcached-0.50/tests/pool.cc +78 -0
- data/ext/libmemcached-0.50/tests/pool.h +49 -0
- data/ext/libmemcached-0.50/tests/print.cc +58 -0
- data/ext/libmemcached-0.50/tests/print.h +51 -0
- data/ext/libmemcached-0.50/tests/replication.cc +333 -0
- data/ext/libmemcached-0.50/tests/replication.h +64 -0
- data/ext/libmemcached-0.50/tests/start.cc +29 -0
- data/ext/libmemcached-0.50/tests/string.cc +174 -0
- data/ext/libmemcached-0.50/tests/string.h +67 -0
- data/ext/libmemcached-0.50/tests/virtual_buckets.cc +143 -0
- data/ext/libmemcached-0.50/tests/virtual_buckets.h +51 -0
- data/ext/libmemcached-0.50/win32/include.am +11 -0
- data/ext/libmemcached-0.50/win32/wrappers.h +55 -0
- data/ext/rlibmemcached.i +263 -0
- data/ext/rlibmemcached_wrap.c +16732 -0
- data/lib/memcached.rb +32 -0
- data/lib/memcached/auth.rb +16 -0
- data/lib/memcached/behaviors.rb +77 -0
- data/lib/memcached/exceptions.rb +84 -0
- data/lib/memcached/experimental.rb +48 -0
- data/lib/memcached/memcached.rb +660 -0
- data/lib/memcached/rails.rb +133 -0
- data/test/profile/benchmark.rb +245 -0
- data/test/profile/c_profiler.rb +14 -0
- data/test/profile/exercise.rb +185 -0
- data/test/profile/rb_profiler.rb +21 -0
- data/test/profile/valgrind.rb +10 -0
- data/test/setup.rb +30 -0
- data/test/teardown.rb +0 -0
- data/test/test_helper.rb +19 -0
- data/test/unit/binding_test.rb +8 -0
- data/test/unit/memcached_experimental_test.rb +274 -0
- data/test/unit/memcached_test.rb +1293 -0
- data/test/unit/rails_test.rb +122 -0
- metadata +650 -0
- metadata.gz.sig +0 -0
|
@@ -0,0 +1,231 @@
|
|
|
1
|
+
/* LibMemcached
|
|
2
|
+
* Copyright (C) 2006-2009 Brian Aker
|
|
3
|
+
* All rights reserved.
|
|
4
|
+
*
|
|
5
|
+
* Use and distribution licensed under the BSD license. See
|
|
6
|
+
* the COPYING file in the parent directory for full text.
|
|
7
|
+
*
|
|
8
|
+
* Summary:
|
|
9
|
+
*
|
|
10
|
+
*/
|
|
11
|
+
#include "config.h"
|
|
12
|
+
|
|
13
|
+
#include <clients/utilities.h>
|
|
14
|
+
#include <cstdio>
|
|
15
|
+
#include <cstring>
|
|
16
|
+
#include <ctype.h>
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
long int timedif(struct timeval a, struct timeval b)
|
|
20
|
+
{
|
|
21
|
+
long us, s;
|
|
22
|
+
|
|
23
|
+
us = (int)(a.tv_usec - b.tv_usec);
|
|
24
|
+
us /= 1000;
|
|
25
|
+
s = (int)(a.tv_sec - b.tv_sec);
|
|
26
|
+
s *= 1000;
|
|
27
|
+
return s + us;
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
void version_command(const char *command_name)
|
|
31
|
+
{
|
|
32
|
+
printf("%s v%u.%u\n", command_name, 1U, 0U);
|
|
33
|
+
exit(0);
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
static const char *lookup_help(memcached_options option)
|
|
37
|
+
{
|
|
38
|
+
switch (option)
|
|
39
|
+
{
|
|
40
|
+
case OPT_SERVERS: return("List which servers you wish to connect to.");
|
|
41
|
+
case OPT_VERSION: return("Display the version of the application and then exit.");
|
|
42
|
+
case OPT_HELP: return("Display this message and then exit.");
|
|
43
|
+
case OPT_VERBOSE: return("Give more details on the progression of the application.");
|
|
44
|
+
case OPT_DEBUG: return("Provide output only useful for debugging.");
|
|
45
|
+
case OPT_FLAG: return("Provide flag information for storage operation.");
|
|
46
|
+
case OPT_EXPIRE: return("Set the expire option for the object.");
|
|
47
|
+
case OPT_SET: return("Use set command with memcached when storing.");
|
|
48
|
+
case OPT_REPLACE: return("Use replace command with memcached when storing.");
|
|
49
|
+
case OPT_ADD: return("Use add command with memcached when storing.");
|
|
50
|
+
case OPT_SLAP_EXECUTE_NUMBER: return("Number of times to execute the given test.");
|
|
51
|
+
case OPT_SLAP_INITIAL_LOAD: return("Number of key pairs to load before executing tests.");
|
|
52
|
+
case OPT_SLAP_TEST: return("Test to run (currently \"get\" or \"set\").");
|
|
53
|
+
case OPT_SLAP_CONCURRENCY: return("Number of users to simulate with load.");
|
|
54
|
+
case OPT_SLAP_NON_BLOCK: return("Set TCP up to use non-blocking IO.");
|
|
55
|
+
case OPT_SLAP_TCP_NODELAY: return("Set TCP socket up to use nodelay.");
|
|
56
|
+
case OPT_FLUSH: return("Flush servers before running tests.");
|
|
57
|
+
case OPT_HASH: return("Select hash type.");
|
|
58
|
+
case OPT_BINARY: return("Switch to binary protocol.");
|
|
59
|
+
case OPT_ANALYZE: return("Analyze the provided servers.");
|
|
60
|
+
case OPT_UDP: return("Use UDP protocol when communicating with server.");
|
|
61
|
+
case OPT_USERNAME: return "Username to use for SASL authentication";
|
|
62
|
+
case OPT_PASSWD: return "Password to use for SASL authentication";
|
|
63
|
+
case OPT_FILE: return "Path to file in which to save result";
|
|
64
|
+
case OPT_STAT_ARGS: return "Argument for statistics";
|
|
65
|
+
default: WATCHPOINT_ASSERT(0);
|
|
66
|
+
};
|
|
67
|
+
|
|
68
|
+
WATCHPOINT_ASSERT(0);
|
|
69
|
+
return "forgot to document this function :)";
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
void help_command(const char *command_name, const char *description,
|
|
73
|
+
const struct option *long_options,
|
|
74
|
+
memcached_programs_help_st *options)
|
|
75
|
+
{
|
|
76
|
+
unsigned int x;
|
|
77
|
+
(void)options;
|
|
78
|
+
|
|
79
|
+
printf("%s v%u.%u\n\n", command_name, 1U, 0U);
|
|
80
|
+
printf("\t%s\n\n", description);
|
|
81
|
+
printf("Current options. A '=' means the option takes a value.\n\n");
|
|
82
|
+
|
|
83
|
+
for (x= 0; long_options[x].name; x++)
|
|
84
|
+
{
|
|
85
|
+
const char *help_message;
|
|
86
|
+
|
|
87
|
+
printf("\t --%s%c\n", long_options[x].name,
|
|
88
|
+
long_options[x].has_arg ? '=' : ' ');
|
|
89
|
+
if ((help_message= lookup_help(memcached_options(long_options[x].val))))
|
|
90
|
+
printf("\t\t%s\n", help_message);
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
printf("\n");
|
|
94
|
+
exit(0);
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
void process_hash_option(memcached_st *memc, char *opt_hash)
|
|
98
|
+
{
|
|
99
|
+
uint64_t set;
|
|
100
|
+
memcached_return_t rc;
|
|
101
|
+
|
|
102
|
+
if (opt_hash == NULL)
|
|
103
|
+
return;
|
|
104
|
+
|
|
105
|
+
set= MEMCACHED_HASH_DEFAULT; /* Just here to solve warning */
|
|
106
|
+
if (!strcasecmp(opt_hash, "CRC"))
|
|
107
|
+
set= MEMCACHED_HASH_CRC;
|
|
108
|
+
else if (!strcasecmp(opt_hash, "FNV1_64"))
|
|
109
|
+
set= MEMCACHED_HASH_FNV1_64;
|
|
110
|
+
else if (!strcasecmp(opt_hash, "FNV1A_64"))
|
|
111
|
+
set= MEMCACHED_HASH_FNV1A_64;
|
|
112
|
+
else if (!strcasecmp(opt_hash, "FNV1_32"))
|
|
113
|
+
set= MEMCACHED_HASH_FNV1_32;
|
|
114
|
+
else if (!strcasecmp(opt_hash, "FNV1A_32"))
|
|
115
|
+
set= MEMCACHED_HASH_FNV1A_32;
|
|
116
|
+
else if (!strcasecmp(opt_hash, "NONE"))
|
|
117
|
+
set= MEMCACHED_HASH_NONE;
|
|
118
|
+
else
|
|
119
|
+
{
|
|
120
|
+
fprintf(stderr, "hash: type not recognized %s\n", opt_hash);
|
|
121
|
+
exit(1);
|
|
122
|
+
}
|
|
123
|
+
|
|
124
|
+
rc= memcached_behavior_set(memc, MEMCACHED_BEHAVIOR_HASH, set);
|
|
125
|
+
if (rc != MEMCACHED_SUCCESS)
|
|
126
|
+
{
|
|
127
|
+
fprintf(stderr, "hash: memcache error %s\n", memcached_strerror(memc, rc));
|
|
128
|
+
exit(1);
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
|
|
132
|
+
#ifdef LIBMEMCACHED_WITH_SASL_SUPPORT
|
|
133
|
+
static char *username;
|
|
134
|
+
static char *passwd;
|
|
135
|
+
|
|
136
|
+
static int get_username(void *context, int id, const char **result, unsigned int *len)
|
|
137
|
+
{
|
|
138
|
+
(void)context;
|
|
139
|
+
if (!result || (id != SASL_CB_USER && id != SASL_CB_AUTHNAME))
|
|
140
|
+
return SASL_BADPARAM;
|
|
141
|
+
|
|
142
|
+
*result= username;
|
|
143
|
+
if (len)
|
|
144
|
+
*len= (username == NULL) ? 0 : (unsigned int)strlen(username);
|
|
145
|
+
|
|
146
|
+
return SASL_OK;
|
|
147
|
+
}
|
|
148
|
+
|
|
149
|
+
static int get_password(sasl_conn_t *conn, void *context, int id,
|
|
150
|
+
sasl_secret_t **psecret)
|
|
151
|
+
{
|
|
152
|
+
(void)context;
|
|
153
|
+
static sasl_secret_t* ptr;
|
|
154
|
+
|
|
155
|
+
if (!conn || ! psecret || id != SASL_CB_PASS)
|
|
156
|
+
return SASL_BADPARAM;
|
|
157
|
+
|
|
158
|
+
if (passwd == NULL)
|
|
159
|
+
{
|
|
160
|
+
*psecret= NULL;
|
|
161
|
+
return SASL_OK;
|
|
162
|
+
}
|
|
163
|
+
|
|
164
|
+
size_t len= strlen(passwd);
|
|
165
|
+
ptr= (sasl_secret_t *)malloc(sizeof(sasl_secret_t) + len +1);
|
|
166
|
+
if (not ptr)
|
|
167
|
+
return SASL_NOMEM;
|
|
168
|
+
|
|
169
|
+
ptr->len= len;
|
|
170
|
+
memcpy(ptr->data, passwd, len);
|
|
171
|
+
ptr->data[len]= 0;
|
|
172
|
+
|
|
173
|
+
*psecret= ptr;
|
|
174
|
+
return SASL_OK;
|
|
175
|
+
}
|
|
176
|
+
|
|
177
|
+
typedef int (*local_sasl_fn)(void);
|
|
178
|
+
|
|
179
|
+
/* callbacks we support */
|
|
180
|
+
static sasl_callback_t sasl_callbacks[] = {
|
|
181
|
+
{ SASL_CB_USER, (local_sasl_fn)get_username, NULL },
|
|
182
|
+
{ SASL_CB_AUTHNAME, (local_sasl_fn)get_username, NULL },
|
|
183
|
+
{ SASL_CB_PASS, (local_sasl_fn)get_password, NULL },
|
|
184
|
+
{ SASL_CB_LIST_END, NULL, NULL }
|
|
185
|
+
};
|
|
186
|
+
#endif
|
|
187
|
+
|
|
188
|
+
bool initialize_sasl(memcached_st *memc, char *user, char *password)
|
|
189
|
+
{
|
|
190
|
+
#ifdef LIBMEMCACHED_WITH_SASL_SUPPORT
|
|
191
|
+
if (user != NULL && password != NULL)
|
|
192
|
+
{
|
|
193
|
+
username= user;
|
|
194
|
+
passwd= password;
|
|
195
|
+
|
|
196
|
+
if (sasl_client_init(NULL) != SASL_OK)
|
|
197
|
+
{
|
|
198
|
+
fprintf(stderr, "Failed to initialize sasl library!\n");
|
|
199
|
+
return false;
|
|
200
|
+
}
|
|
201
|
+
memcached_set_sasl_callbacks(memc, sasl_callbacks);
|
|
202
|
+
}
|
|
203
|
+
#else
|
|
204
|
+
(void)memc;
|
|
205
|
+
(void)user;
|
|
206
|
+
(void)password;
|
|
207
|
+
#endif
|
|
208
|
+
|
|
209
|
+
return true;
|
|
210
|
+
}
|
|
211
|
+
|
|
212
|
+
void shutdown_sasl(void)
|
|
213
|
+
{
|
|
214
|
+
#ifdef LIBMEMCACHED_WITH_SASL_SUPPORT
|
|
215
|
+
if (username != NULL || passwd != NULL)
|
|
216
|
+
sasl_done();
|
|
217
|
+
#endif
|
|
218
|
+
}
|
|
219
|
+
|
|
220
|
+
void initialize_sockets(void)
|
|
221
|
+
{
|
|
222
|
+
/* Define the function for all platforms to avoid #ifdefs in each program */
|
|
223
|
+
#ifdef WIN32
|
|
224
|
+
WSADATA wsaData;
|
|
225
|
+
if (WSAStartup(MAKEWORD(2,0), &wsaData) != 0)
|
|
226
|
+
{
|
|
227
|
+
fprintf(stderr, "Socket Initialization Error. Program aborted\n");
|
|
228
|
+
exit(EXIT_FAILURE);
|
|
229
|
+
}
|
|
230
|
+
#endif
|
|
231
|
+
}
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
/* LibMemcached
|
|
2
|
+
* Copyright (C) 2006-2009 Brian Aker
|
|
3
|
+
* All rights reserved.
|
|
4
|
+
*
|
|
5
|
+
* Use and distribution licensed under the BSD license. See
|
|
6
|
+
* the COPYING file in the parent directory for full text.
|
|
7
|
+
*
|
|
8
|
+
* Summary:
|
|
9
|
+
*
|
|
10
|
+
*/
|
|
11
|
+
|
|
12
|
+
#pragma once
|
|
13
|
+
|
|
14
|
+
#include <getopt.h>
|
|
15
|
+
#include <libmemcached/memcached.h>
|
|
16
|
+
#include "libmemcached/watchpoint.h"
|
|
17
|
+
#include "client_options.h"
|
|
18
|
+
|
|
19
|
+
#if TIME_WITH_SYS_TIME
|
|
20
|
+
# include <sys/time.h>
|
|
21
|
+
# include <time.h>
|
|
22
|
+
#else
|
|
23
|
+
# if HAVE_SYS_TIME_H
|
|
24
|
+
# include <sys/time.h>
|
|
25
|
+
# else
|
|
26
|
+
# include <time.h>
|
|
27
|
+
# endif
|
|
28
|
+
#endif
|
|
29
|
+
|
|
30
|
+
#ifdef __sun
|
|
31
|
+
/* For some odd reason the option struct on solaris defines the argument
|
|
32
|
+
* as char* and not const char*
|
|
33
|
+
*/
|
|
34
|
+
#define OPTIONSTRING char*
|
|
35
|
+
#else
|
|
36
|
+
#define OPTIONSTRING const char*
|
|
37
|
+
#endif
|
|
38
|
+
|
|
39
|
+
typedef struct memcached_programs_help_st memcached_programs_help_st;
|
|
40
|
+
|
|
41
|
+
struct memcached_programs_help_st
|
|
42
|
+
{
|
|
43
|
+
char *not_used_yet;
|
|
44
|
+
};
|
|
45
|
+
|
|
46
|
+
#ifdef __cplusplus
|
|
47
|
+
extern "C" {
|
|
48
|
+
#endif
|
|
49
|
+
|
|
50
|
+
char *strdup_cleanup(const char *str);
|
|
51
|
+
void cleanup(void);
|
|
52
|
+
long int timedif(struct timeval a, struct timeval b);
|
|
53
|
+
void version_command(const char *command_name);
|
|
54
|
+
void help_command(const char *command_name, const char *description,
|
|
55
|
+
const struct option *long_options,
|
|
56
|
+
memcached_programs_help_st *options);
|
|
57
|
+
void process_hash_option(memcached_st *memc, char *opt_hash);
|
|
58
|
+
bool initialize_sasl(memcached_st *memc, char *user, char *password);
|
|
59
|
+
void shutdown_sasl(void);
|
|
60
|
+
void initialize_sockets(void);
|
|
61
|
+
|
|
62
|
+
#ifdef __cplusplus
|
|
63
|
+
} // extern "C"
|
|
64
|
+
#endif
|
|
@@ -0,0 +1,647 @@
|
|
|
1
|
+
/* config.h.in. Generated from configure.ac by autoheader. */
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
#ifndef __CONFIG_H__
|
|
5
|
+
#define __CONFIG_H__
|
|
6
|
+
|
|
7
|
+
/* _SYS_FEATURE_TESTS_H is Solaris, _FEATURES_H is GCC */
|
|
8
|
+
#if defined( _SYS_FEATURE_TESTS_H) || defined(_FEATURES_H)
|
|
9
|
+
#error "You should include config.h as your first include file"
|
|
10
|
+
#endif
|
|
11
|
+
|
|
12
|
+
#include <config/top.h>
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
#ifndef CONFIG_H
|
|
17
|
+
#define CONFIG_H
|
|
18
|
+
|
|
19
|
+
#ifdef _SYS_FEATURE_TESTS_H
|
|
20
|
+
#error "You should include config.h as your first include file"
|
|
21
|
+
#endif
|
|
22
|
+
|
|
23
|
+
#ifdef WIN32
|
|
24
|
+
#define _WIN32_WINNT 0x0501
|
|
25
|
+
#endif
|
|
26
|
+
|
|
27
|
+
|
|
28
|
+
/* Define if building universal (internal helper macro) */
|
|
29
|
+
#undef AC_APPLE_UNIVERSAL_BUILD
|
|
30
|
+
|
|
31
|
+
/* the location of <cinttypes> */
|
|
32
|
+
#undef CINTTYPES_H
|
|
33
|
+
|
|
34
|
+
/* the location of <cstdint> */
|
|
35
|
+
#undef CSTDINT_H
|
|
36
|
+
|
|
37
|
+
/* Another magical number */
|
|
38
|
+
#undef EAI_SYSTEM
|
|
39
|
+
|
|
40
|
+
/* Define to 1 if you have the <assert.h> header file. */
|
|
41
|
+
#undef HAVE_ASSERT_H
|
|
42
|
+
|
|
43
|
+
/* Define to 1 if you have the `atomic_add_32' function. */
|
|
44
|
+
#undef HAVE_ATOMIC_ADD_32
|
|
45
|
+
|
|
46
|
+
/* Define to 1 if you have the `atomic_add_64' function. */
|
|
47
|
+
#undef HAVE_ATOMIC_ADD_64
|
|
48
|
+
|
|
49
|
+
/* Define to 1 if you have the <atomic.h> header file. */
|
|
50
|
+
#undef HAVE_ATOMIC_H
|
|
51
|
+
|
|
52
|
+
/* Define to 1 if you have the `backtrace' function. */
|
|
53
|
+
#undef HAVE_BACKTRACE
|
|
54
|
+
|
|
55
|
+
/* Define to 1 if you have the `backtrace_symbols_fd' function. */
|
|
56
|
+
#undef HAVE_BACKTRACE_SYMBOLS_FD
|
|
57
|
+
|
|
58
|
+
/* Have a working clock_gettime function */
|
|
59
|
+
#undef HAVE_CLOCK_GETTIME
|
|
60
|
+
|
|
61
|
+
/* Define to 1 if you have the declaration of `madvise', and to 0 if you
|
|
62
|
+
don't. */
|
|
63
|
+
#undef HAVE_DECL_MADVISE
|
|
64
|
+
|
|
65
|
+
/* Define to 1 if you have the <dlfcn.h> header file. */
|
|
66
|
+
#undef HAVE_DLFCN_H
|
|
67
|
+
|
|
68
|
+
/* Enables DTRACE Support */
|
|
69
|
+
#undef HAVE_DTRACE
|
|
70
|
+
|
|
71
|
+
/* Define to 1 if you have the `event_base_free' function. */
|
|
72
|
+
#undef HAVE_EVENT_BASE_FREE
|
|
73
|
+
|
|
74
|
+
/* Define to 1 if you have the `event_base_get_method' function. */
|
|
75
|
+
#undef HAVE_EVENT_BASE_GET_METHOD
|
|
76
|
+
|
|
77
|
+
/* Define to 1 if you have the `event_base_new' function. */
|
|
78
|
+
#undef HAVE_EVENT_BASE_NEW
|
|
79
|
+
|
|
80
|
+
/* Define to 1 if you have the <execinfo.h> header file. */
|
|
81
|
+
#undef HAVE_EXECINFO_H
|
|
82
|
+
|
|
83
|
+
/* Define to 1 if you have the <fnmatch.h> header file. */
|
|
84
|
+
#undef HAVE_FNMATCH_H
|
|
85
|
+
|
|
86
|
+
/* Define to 1 if compiler provides atomic builtins. */
|
|
87
|
+
#undef HAVE_GCC_ATOMIC_BUILTINS
|
|
88
|
+
|
|
89
|
+
/* Define to 1 if you have the `getline' function. */
|
|
90
|
+
#undef HAVE_GETLINE
|
|
91
|
+
|
|
92
|
+
/* Enables hsieh hashing support */
|
|
93
|
+
#undef HAVE_HSIEH_HASH
|
|
94
|
+
|
|
95
|
+
/* Have ntohll */
|
|
96
|
+
#undef HAVE_HTONLL
|
|
97
|
+
|
|
98
|
+
/* Define to 1 if you have the <inttypes.h> header file. */
|
|
99
|
+
#undef HAVE_INTTYPES_H
|
|
100
|
+
|
|
101
|
+
/* Define to 1 if you have the `bind' library (-lbind). */
|
|
102
|
+
#undef HAVE_LIBBIND
|
|
103
|
+
|
|
104
|
+
/* Define to 1 if you have the `c_p' library (-lc_p). */
|
|
105
|
+
#undef HAVE_LIBC_P
|
|
106
|
+
|
|
107
|
+
/* Define if you have the event library. */
|
|
108
|
+
#undef HAVE_LIBEVENT
|
|
109
|
+
|
|
110
|
+
/* Define if you have the innodb library. */
|
|
111
|
+
#undef HAVE_LIBINNODB
|
|
112
|
+
|
|
113
|
+
/* Enables libmemcachedutil Support */
|
|
114
|
+
#undef HAVE_LIBMEMCACHEDUTIL
|
|
115
|
+
|
|
116
|
+
/* Define to 1 if you have the `mtmalloc' library (-lmtmalloc). */
|
|
117
|
+
#undef HAVE_LIBMTMALLOC
|
|
118
|
+
|
|
119
|
+
/* Define if you have the sasl library. */
|
|
120
|
+
#undef HAVE_LIBSASL
|
|
121
|
+
|
|
122
|
+
/* Define if you have the sasl2 library. */
|
|
123
|
+
#undef HAVE_LIBSASL2
|
|
124
|
+
|
|
125
|
+
/* Define to 1 if you have the `socket' library (-lsocket). */
|
|
126
|
+
#undef HAVE_LIBSOCKET
|
|
127
|
+
|
|
128
|
+
/* Define to 1 if you have the `tcmalloc' library (-ltcmalloc). */
|
|
129
|
+
#undef HAVE_LIBTCMALLOC
|
|
130
|
+
|
|
131
|
+
/* Define to 1 if you have the `tcmalloc-minimal' library
|
|
132
|
+
(-ltcmalloc-minimal). */
|
|
133
|
+
#undef HAVE_LIBTCMALLOC_MINIMAL
|
|
134
|
+
|
|
135
|
+
/* Define to 1 if you have the `umem' library (-lumem). */
|
|
136
|
+
#undef HAVE_LIBUMEM
|
|
137
|
+
|
|
138
|
+
/* Define to 1 if you have the <memory.h> header file. */
|
|
139
|
+
#undef HAVE_MEMORY_H
|
|
140
|
+
|
|
141
|
+
/* Define to 1 if you have a MSG_DONTWAIT */
|
|
142
|
+
#undef HAVE_MSG_DONTWAIT
|
|
143
|
+
|
|
144
|
+
/* Define to 1 if you have a HAVE_MSG_MORE */
|
|
145
|
+
#undef HAVE_MSG_MORE
|
|
146
|
+
|
|
147
|
+
/* Define to 1 if you have a MSG_NOSIGNAL */
|
|
148
|
+
#undef HAVE_MSG_NOSIGNAL
|
|
149
|
+
|
|
150
|
+
/* Enables murmur hashing support */
|
|
151
|
+
#undef HAVE_MURMUR_HASH
|
|
152
|
+
|
|
153
|
+
/* For some non posix threads */
|
|
154
|
+
#undef HAVE_NONPOSIX_PTHREAD_GETSPECIFIC
|
|
155
|
+
|
|
156
|
+
/* For some non posix threads */
|
|
157
|
+
#undef HAVE_NONPOSIX_PTHREAD_MUTEX_INIT
|
|
158
|
+
|
|
159
|
+
/* sigwait with one argument */
|
|
160
|
+
#undef HAVE_NONPOSIX_SIGWAIT
|
|
161
|
+
|
|
162
|
+
/* Define to 1 if you have the <poll.h> header file. */
|
|
163
|
+
#undef HAVE_POLL_H
|
|
164
|
+
|
|
165
|
+
/* Define to 1 if you have the `printstack' function. */
|
|
166
|
+
#undef HAVE_PRINTSTACK
|
|
167
|
+
|
|
168
|
+
/* Define if you have POSIX threads libraries and header files. */
|
|
169
|
+
#undef HAVE_PTHREAD
|
|
170
|
+
|
|
171
|
+
/* Define to 1 if you have the `pthread_attr_create' function. */
|
|
172
|
+
#undef HAVE_PTHREAD_ATTR_CREATE
|
|
173
|
+
|
|
174
|
+
/* Define to 1 if you have the `pthread_attr_getstacksize' function. */
|
|
175
|
+
#undef HAVE_PTHREAD_ATTR_GETSTACKSIZE
|
|
176
|
+
|
|
177
|
+
/* Define to 1 if you have the `pthread_attr_setprio' function. */
|
|
178
|
+
#undef HAVE_PTHREAD_ATTR_SETPRIO
|
|
179
|
+
|
|
180
|
+
/* Define to 1 if you have the `pthread_attr_setschedparam' function. */
|
|
181
|
+
#undef HAVE_PTHREAD_ATTR_SETSCHEDPARAM
|
|
182
|
+
|
|
183
|
+
/* pthread_attr_setscope */
|
|
184
|
+
#undef HAVE_PTHREAD_ATTR_SETSCOPE
|
|
185
|
+
|
|
186
|
+
/* Define to 1 if you have the `pthread_attr_setstacksize' function. */
|
|
187
|
+
#undef HAVE_PTHREAD_ATTR_SETSTACKSIZE
|
|
188
|
+
|
|
189
|
+
/* Define to 1 if you have the `pthread_condattr_create' function. */
|
|
190
|
+
#undef HAVE_PTHREAD_CONDATTR_CREATE
|
|
191
|
+
|
|
192
|
+
/* Define to 1 if you have the `pthread_getsequence_np' function. */
|
|
193
|
+
#undef HAVE_PTHREAD_GETSEQUENCE_NP
|
|
194
|
+
|
|
195
|
+
/* Define to 1 if you have the `pthread_key_delete' function. */
|
|
196
|
+
#undef HAVE_PTHREAD_KEY_DELETE
|
|
197
|
+
|
|
198
|
+
/* Define to 1 if you have the `pthread_rwlock_rdlock' function. */
|
|
199
|
+
#undef HAVE_PTHREAD_RWLOCK_RDLOCK
|
|
200
|
+
|
|
201
|
+
/* Define to 1 if you have the `pthread_setprio' function. */
|
|
202
|
+
#undef HAVE_PTHREAD_SETPRIO
|
|
203
|
+
|
|
204
|
+
/* Define to 1 if you have the `pthread_setprio_np' function. */
|
|
205
|
+
#undef HAVE_PTHREAD_SETPRIO_NP
|
|
206
|
+
|
|
207
|
+
/* Define to 1 if you have the `pthread_setschedparam' function. */
|
|
208
|
+
#undef HAVE_PTHREAD_SETSCHEDPARAM
|
|
209
|
+
|
|
210
|
+
/* Define to 1 if you have the `pthread_sigmask' function. */
|
|
211
|
+
#undef HAVE_PTHREAD_SIGMASK
|
|
212
|
+
|
|
213
|
+
/* Define to 1 if you have the `pthread_yield_np' function. */
|
|
214
|
+
#undef HAVE_PTHREAD_YIELD_NP
|
|
215
|
+
|
|
216
|
+
/* pthread_yield function with one argument */
|
|
217
|
+
#undef HAVE_PTHREAD_YIELD_ONE_ARG
|
|
218
|
+
|
|
219
|
+
/* pthread_yield that doesn't take any arguments */
|
|
220
|
+
#undef HAVE_PTHREAD_YIELD_ZERO_ARG
|
|
221
|
+
|
|
222
|
+
/* Define to 1 if you have a working SO_RCVTIMEO */
|
|
223
|
+
#undef HAVE_RCVTIMEO
|
|
224
|
+
|
|
225
|
+
/* POSIX readdir_r */
|
|
226
|
+
#undef HAVE_READDIR_R
|
|
227
|
+
|
|
228
|
+
/* Define to 1 if you have the `rwlock_init' function. */
|
|
229
|
+
#undef HAVE_RWLOCK_INIT
|
|
230
|
+
|
|
231
|
+
/* POSIX sigwait */
|
|
232
|
+
#undef HAVE_SIGWAIT
|
|
233
|
+
|
|
234
|
+
/* Define to 1 if you have a working SO_SNDTIMEO */
|
|
235
|
+
#undef HAVE_SNDTIMEO
|
|
236
|
+
|
|
237
|
+
/* Define to 1 if you have the <stdint.h> header file. */
|
|
238
|
+
#undef HAVE_STDINT_H
|
|
239
|
+
|
|
240
|
+
/* Define to 1 if you have the <stdlib.h> header file. */
|
|
241
|
+
#undef HAVE_STDLIB_H
|
|
242
|
+
|
|
243
|
+
/* Define to 1 if you have the <strings.h> header file. */
|
|
244
|
+
#undef HAVE_STRINGS_H
|
|
245
|
+
|
|
246
|
+
/* Define to 1 if you have the <string.h> header file. */
|
|
247
|
+
#undef HAVE_STRING_H
|
|
248
|
+
|
|
249
|
+
/* Define to 1 if you have the <sys/sdt.h> header file. */
|
|
250
|
+
#undef HAVE_SYS_SDT_H
|
|
251
|
+
|
|
252
|
+
/* Define to 1 if you have the <sys/socket.h> header file. */
|
|
253
|
+
#undef HAVE_SYS_SOCKET_H
|
|
254
|
+
|
|
255
|
+
/* Define to 1 if you have the <sys/stat.h> header file. */
|
|
256
|
+
#undef HAVE_SYS_STAT_H
|
|
257
|
+
|
|
258
|
+
/* Define to 1 if you have the <sys/types.h> header file. */
|
|
259
|
+
#undef HAVE_SYS_TYPES_H
|
|
260
|
+
|
|
261
|
+
/* Define to 1 if you have the <sys/wait.h> header file. */
|
|
262
|
+
#undef HAVE_SYS_WAIT_H
|
|
263
|
+
|
|
264
|
+
/* Define to 1 if you have the <ucontext.h> header file. */
|
|
265
|
+
#undef HAVE_UCONTEXT_H
|
|
266
|
+
|
|
267
|
+
/* Define to 1 if you have the <unistd.h> header file. */
|
|
268
|
+
#undef HAVE_UNISTD_H
|
|
269
|
+
|
|
270
|
+
/* Add additional valgrind code for testing with valgrind. */
|
|
271
|
+
#undef HAVE_VALGRIND
|
|
272
|
+
|
|
273
|
+
/* Define to 1 or 0, depending whether the compiler supports simple visibility
|
|
274
|
+
declarations. */
|
|
275
|
+
#undef HAVE_VISIBILITY
|
|
276
|
+
|
|
277
|
+
/* Define to 1 if you have the <winsock2.h> header file. */
|
|
278
|
+
#undef HAVE_WINSOCK2_H
|
|
279
|
+
|
|
280
|
+
/* CPU of Build System */
|
|
281
|
+
#undef HOST_CPU
|
|
282
|
+
|
|
283
|
+
/* OS of Build System */
|
|
284
|
+
#undef HOST_OS
|
|
285
|
+
|
|
286
|
+
/* Vendor of Build System */
|
|
287
|
+
#undef HOST_VENDOR
|
|
288
|
+
|
|
289
|
+
/* Define to the sub-directory in which libtool stores uninstalled libraries.
|
|
290
|
+
*/
|
|
291
|
+
#undef LT_OBJDIR
|
|
292
|
+
|
|
293
|
+
/* Name of the memcached binary used in make test */
|
|
294
|
+
#undef MEMCACHED_BINARY
|
|
295
|
+
|
|
296
|
+
/* Define to 1 if assertions should be disabled. */
|
|
297
|
+
#undef NDEBUG
|
|
298
|
+
|
|
299
|
+
/* Define to 1 if your C compiler doesn't accept -c and -o together. */
|
|
300
|
+
#undef NO_MINUS_C_MINUS_O
|
|
301
|
+
|
|
302
|
+
/* Name of package */
|
|
303
|
+
#undef PACKAGE
|
|
304
|
+
|
|
305
|
+
/* Define to the address where bug reports for this package should be sent. */
|
|
306
|
+
#undef PACKAGE_BUGREPORT
|
|
307
|
+
|
|
308
|
+
/* Define to the full name of this package. */
|
|
309
|
+
#undef PACKAGE_NAME
|
|
310
|
+
|
|
311
|
+
/* Define to the full name and version of this package. */
|
|
312
|
+
#undef PACKAGE_STRING
|
|
313
|
+
|
|
314
|
+
/* Define to the one symbol short name of this package. */
|
|
315
|
+
#undef PACKAGE_TARNAME
|
|
316
|
+
|
|
317
|
+
/* Define to the home page for this package. */
|
|
318
|
+
#undef PACKAGE_URL
|
|
319
|
+
|
|
320
|
+
/* Define to the version of this package. */
|
|
321
|
+
#undef PACKAGE_VERSION
|
|
322
|
+
|
|
323
|
+
/* Version of the software */
|
|
324
|
+
#undef PANDORA_RELEASE_VERSION
|
|
325
|
+
|
|
326
|
+
/* Define to necessary symbol if this constant uses a non-standard name on
|
|
327
|
+
your system. */
|
|
328
|
+
#undef PTHREAD_CREATE_JOINABLE
|
|
329
|
+
|
|
330
|
+
/* Define if system doesn't define */
|
|
331
|
+
#undef RUSAGE_THREAD
|
|
332
|
+
|
|
333
|
+
/* Size of long long as computed by sizeof() */
|
|
334
|
+
#undef SIZEOF_LONG_LONG
|
|
335
|
+
|
|
336
|
+
/* The size of `off_t', as computed by sizeof. */
|
|
337
|
+
#undef SIZEOF_OFF_T
|
|
338
|
+
|
|
339
|
+
/* Size of size_t as computed by sizeof() */
|
|
340
|
+
#undef SIZEOF_SIZE_T
|
|
341
|
+
|
|
342
|
+
/* Define if ISO C++ 1998 header files are present. */
|
|
343
|
+
#undef STDCXX_98_HEADERS
|
|
344
|
+
|
|
345
|
+
/* Define to 1 if you have the ANSI C header files. */
|
|
346
|
+
#undef STDC_HEADERS
|
|
347
|
+
|
|
348
|
+
/* CPU of Target System */
|
|
349
|
+
#undef TARGET_CPU
|
|
350
|
+
|
|
351
|
+
/* OS of Target System */
|
|
352
|
+
#undef TARGET_OS
|
|
353
|
+
|
|
354
|
+
/* Whether we are building for FreeBSD */
|
|
355
|
+
#undef TARGET_OS_FREEBSD
|
|
356
|
+
|
|
357
|
+
/* Whether we build for Linux */
|
|
358
|
+
#undef TARGET_OS_LINUX
|
|
359
|
+
|
|
360
|
+
/* Whether we build for OSX */
|
|
361
|
+
#undef TARGET_OS_OSX
|
|
362
|
+
|
|
363
|
+
/* Whether we are building for Solaris */
|
|
364
|
+
#undef TARGET_OS_SOLARIS
|
|
365
|
+
|
|
366
|
+
/* Whether we are building for Windows */
|
|
367
|
+
#undef TARGET_OS_WINDOWS
|
|
368
|
+
|
|
369
|
+
/* Vendor of Target System */
|
|
370
|
+
#undef TARGET_VENDOR
|
|
371
|
+
|
|
372
|
+
/* Define to 1 if time_t is unsigned */
|
|
373
|
+
#undef TIME_T_UNSIGNED
|
|
374
|
+
|
|
375
|
+
/* Define to 1 if you can safely include both <sys/time.h> and <time.h>. */
|
|
376
|
+
#undef TIME_WITH_SYS_TIME
|
|
377
|
+
|
|
378
|
+
/* Define to 1 if your <sys/time.h> declares `struct tm'. */
|
|
379
|
+
#undef TM_IN_SYS_TIME
|
|
380
|
+
|
|
381
|
+
/* Define to true if you want to use functions from atomic.h */
|
|
382
|
+
#undef USE_ATOMIC_H
|
|
383
|
+
|
|
384
|
+
/* Define to true if you need to test for eagain */
|
|
385
|
+
#undef USE_EAGAIN
|
|
386
|
+
|
|
387
|
+
/* Enable extensions on AIX 3, Interix. */
|
|
388
|
+
#ifndef _ALL_SOURCE
|
|
389
|
+
# undef _ALL_SOURCE
|
|
390
|
+
#endif
|
|
391
|
+
/* Enable GNU extensions on systems that have them. */
|
|
392
|
+
#ifndef _GNU_SOURCE
|
|
393
|
+
# undef _GNU_SOURCE
|
|
394
|
+
#endif
|
|
395
|
+
/* Enable threading extensions on Solaris. */
|
|
396
|
+
#ifndef _POSIX_PTHREAD_SEMANTICS
|
|
397
|
+
# undef _POSIX_PTHREAD_SEMANTICS
|
|
398
|
+
#endif
|
|
399
|
+
/* Enable extensions on HP NonStop. */
|
|
400
|
+
#ifndef _TANDEM_SOURCE
|
|
401
|
+
# undef _TANDEM_SOURCE
|
|
402
|
+
#endif
|
|
403
|
+
/* Enable general extensions on Solaris. */
|
|
404
|
+
#ifndef __EXTENSIONS__
|
|
405
|
+
# undef __EXTENSIONS__
|
|
406
|
+
#endif
|
|
407
|
+
|
|
408
|
+
|
|
409
|
+
/* Version number of package */
|
|
410
|
+
#undef VERSION
|
|
411
|
+
|
|
412
|
+
/* Version of Windows */
|
|
413
|
+
#undef WINVER
|
|
414
|
+
|
|
415
|
+
/* Define WORDS_BIGENDIAN to 1 if your processor stores words with the most
|
|
416
|
+
significant byte first (like Motorola and SPARC, unlike Intel). */
|
|
417
|
+
#if defined AC_APPLE_UNIVERSAL_BUILD
|
|
418
|
+
# if defined __BIG_ENDIAN__
|
|
419
|
+
# define WORDS_BIGENDIAN 1
|
|
420
|
+
# endif
|
|
421
|
+
#else
|
|
422
|
+
# ifndef WORDS_BIGENDIAN
|
|
423
|
+
# undef WORDS_BIGENDIAN
|
|
424
|
+
# endif
|
|
425
|
+
#endif
|
|
426
|
+
|
|
427
|
+
/* Number of bits in a file offset, on hosts where this is settable. */
|
|
428
|
+
#undef _FILE_OFFSET_BITS
|
|
429
|
+
|
|
430
|
+
/* Define for large files, on AIX-style hosts. */
|
|
431
|
+
#undef _LARGE_FILES
|
|
432
|
+
|
|
433
|
+
/* Define to 1 if on MINIX. */
|
|
434
|
+
#undef _MINIX
|
|
435
|
+
|
|
436
|
+
/* Define to 2 if the system does not provide POSIX.1 features except with
|
|
437
|
+
this defined. */
|
|
438
|
+
#undef _POSIX_1_SOURCE
|
|
439
|
+
|
|
440
|
+
/* Define to 1 if you need to in order for `stat' and other things to work. */
|
|
441
|
+
#undef _POSIX_SOURCE
|
|
442
|
+
|
|
443
|
+
/* Cause Sun Studio to not be quite so strict with standards conflicts */
|
|
444
|
+
#undef _STLP_NO_NEW_C_HEADERS
|
|
445
|
+
|
|
446
|
+
/* Magical number to make things work */
|
|
447
|
+
#undef _WIN32_WINNT
|
|
448
|
+
|
|
449
|
+
/* Workaround for bug in FreeBSD headers */
|
|
450
|
+
#undef __APPLE_CC__
|
|
451
|
+
|
|
452
|
+
/* Use STDC Constant Macros in C++ */
|
|
453
|
+
#undef __STDC_CONSTANT_MACROS
|
|
454
|
+
|
|
455
|
+
/* Use STDC Format Macros in C++ */
|
|
456
|
+
#undef __STDC_FORMAT_MACROS
|
|
457
|
+
|
|
458
|
+
/* Use STDC Limit Macros in C++ */
|
|
459
|
+
#undef __STDC_LIMIT_MACROS
|
|
460
|
+
|
|
461
|
+
/* Define to empty if `const' does not conform to ANSI C. */
|
|
462
|
+
#undef const
|
|
463
|
+
|
|
464
|
+
/* Define to `__inline__' or `__inline' if that's what the C compiler
|
|
465
|
+
calls it, or to nothing if 'inline' is not supported under any name. */
|
|
466
|
+
#ifndef __cplusplus
|
|
467
|
+
#undef inline
|
|
468
|
+
#endif
|
|
469
|
+
|
|
470
|
+
/* Define to the equivalent of the C99 'restrict' keyword, or to
|
|
471
|
+
nothing if this is not supported. Do not define if restrict is
|
|
472
|
+
supported directly. */
|
|
473
|
+
#undef restrict
|
|
474
|
+
/* Work around a bug in Sun C++: it does not support _Restrict or
|
|
475
|
+
__restrict__, even though the corresponding Sun C compiler ends up with
|
|
476
|
+
"#define restrict _Restrict" or "#define restrict __restrict__" in the
|
|
477
|
+
previous line. Perhaps some future version of Sun C++ will work with
|
|
478
|
+
restrict; if so, hopefully it defines __RESTRICT like Sun C does. */
|
|
479
|
+
#if defined __SUNPRO_CC && !defined __RESTRICT
|
|
480
|
+
# define _Restrict
|
|
481
|
+
# define __restrict__
|
|
482
|
+
#endif
|
|
483
|
+
|
|
484
|
+
/* Define to `unsigned int' if <sys/types.h> does not define. */
|
|
485
|
+
#undef size_t
|
|
486
|
+
|
|
487
|
+
/* Define to empty if the keyword `volatile' does not work. Warning: valid
|
|
488
|
+
code using `volatile' can become incorrect without. Disable with care. */
|
|
489
|
+
#undef volatile
|
|
490
|
+
|
|
491
|
+
|
|
492
|
+
#ifndef HAVE_SYS_SOCKET_H
|
|
493
|
+
# define SHUT_RD SD_RECEIVE
|
|
494
|
+
# define SHUT_WR SD_SEND
|
|
495
|
+
# define SHUT_RDWR SD_BOTH
|
|
496
|
+
#endif
|
|
497
|
+
|
|
498
|
+
|
|
499
|
+
|
|
500
|
+
#if defined(__cplusplus)
|
|
501
|
+
# include CSTDINT_H
|
|
502
|
+
# include CINTTYPES_H
|
|
503
|
+
#else
|
|
504
|
+
# include <stdint.h>
|
|
505
|
+
# include <inttypes.h>
|
|
506
|
+
#endif
|
|
507
|
+
|
|
508
|
+
#if !defined(HAVE_ULONG) && !defined(__USE_MISC)
|
|
509
|
+
# define HAVE_ULONG 1
|
|
510
|
+
typedef unsigned long int ulong;
|
|
511
|
+
#endif
|
|
512
|
+
|
|
513
|
+
/* To hide the platform differences between MS Windows and Unix, I am
|
|
514
|
+
* going to use the Microsoft way and #define the Microsoft-specific
|
|
515
|
+
* functions to the unix way. Microsoft use a separate subsystem for sockets,
|
|
516
|
+
* but Unix normally just use a filedescriptor on the same functions. It is
|
|
517
|
+
* a lot easier to map back to the unix way with macros than going the other
|
|
518
|
+
* way without side effect ;-)
|
|
519
|
+
*/
|
|
520
|
+
#ifdef TARGET_OS_WINDOWS
|
|
521
|
+
#define random() rand()
|
|
522
|
+
#define srandom(a) srand(a)
|
|
523
|
+
#define get_socket_errno() WSAGetLastError()
|
|
524
|
+
#else
|
|
525
|
+
#define INVALID_SOCKET -1
|
|
526
|
+
#define SOCKET_ERROR -1
|
|
527
|
+
#define closesocket(a) close(a)
|
|
528
|
+
#define get_socket_errno() errno
|
|
529
|
+
#endif
|
|
530
|
+
|
|
531
|
+
#if defined(__cplusplus)
|
|
532
|
+
# if defined(DEBUG)
|
|
533
|
+
# include <cassert>
|
|
534
|
+
# include <cstddef>
|
|
535
|
+
# endif
|
|
536
|
+
template<typename To, typename From>
|
|
537
|
+
inline To implicit_cast(From const &f) {
|
|
538
|
+
return f;
|
|
539
|
+
}
|
|
540
|
+
template<typename To, typename From> // use like this: down_cast<T*>(foo);
|
|
541
|
+
inline To down_cast(From* f) { // so we only accept pointers
|
|
542
|
+
// Ensures that To is a sub-type of From *. This test is here only
|
|
543
|
+
// for compile-time type checking, and has no overhead in an
|
|
544
|
+
// optimized build at run-time, as it will be optimized away
|
|
545
|
+
// completely.
|
|
546
|
+
if (false) {
|
|
547
|
+
implicit_cast<From*, To>(0);
|
|
548
|
+
}
|
|
549
|
+
|
|
550
|
+
#if defined(DEBUG)
|
|
551
|
+
assert(f == NULL || dynamic_cast<To>(f) != NULL); // RTTI: debug mode only!
|
|
552
|
+
#endif
|
|
553
|
+
return static_cast<To>(f);
|
|
554
|
+
}
|
|
555
|
+
#endif /* defined(__cplusplus) */
|
|
556
|
+
|
|
557
|
+
#endif /* __CONFIG_H__ */
|
|
558
|
+
|
|
559
|
+
|
|
560
|
+
|
|
561
|
+
#ifdef HAVE_SYS_WAIT_H
|
|
562
|
+
#include <sys/wait.h>
|
|
563
|
+
#endif
|
|
564
|
+
|
|
565
|
+
#ifdef HAVE_FNMATCH_H
|
|
566
|
+
#include <fnmatch.h>
|
|
567
|
+
#endif
|
|
568
|
+
|
|
569
|
+
#ifdef HAVE_POLL_H
|
|
570
|
+
#include <poll.h>
|
|
571
|
+
#else
|
|
572
|
+
#include "poll/poll.h"
|
|
573
|
+
#endif
|
|
574
|
+
|
|
575
|
+
/* To hide the platform differences between MS Windows and Unix, I am
|
|
576
|
+
* going to use the Microsoft way and #define the Microsoft-specific
|
|
577
|
+
* functions to the unix way. Microsoft use a separate subsystem for sockets,
|
|
578
|
+
* but Unix normally just use a filedescriptor on the same functions. It is
|
|
579
|
+
* a lot easier to map back to the unix way with macros than going the other
|
|
580
|
+
* way without side effect ;-)
|
|
581
|
+
*/
|
|
582
|
+
#ifdef WIN32
|
|
583
|
+
#include "win32/wrappers.h"
|
|
584
|
+
#define get_socket_errno() WSAGetLastError()
|
|
585
|
+
#else
|
|
586
|
+
#define INVALID_SOCKET -1
|
|
587
|
+
#define SOCKET_ERROR -1
|
|
588
|
+
#define closesocket(a) close(a)
|
|
589
|
+
#define get_socket_errno() errno
|
|
590
|
+
#endif
|
|
591
|
+
|
|
592
|
+
#ifndef HAVE_MSG_NOSIGNAL
|
|
593
|
+
#define MSG_NOSIGNAL 0
|
|
594
|
+
#endif
|
|
595
|
+
|
|
596
|
+
#ifndef HAVE_MSG_DONTWAIT
|
|
597
|
+
#define MSG_DONTWAIT 0
|
|
598
|
+
#endif
|
|
599
|
+
|
|
600
|
+
#ifndef HAVE_MSG_MORE
|
|
601
|
+
#define MSG_MORE 0
|
|
602
|
+
#endif
|
|
603
|
+
|
|
604
|
+
#endif
|
|
605
|
+
|
|
606
|
+
|
|
607
|
+
|
|
608
|
+
#ifdef __cplusplus
|
|
609
|
+
#include <cstdio>
|
|
610
|
+
#define PANDORA_PRINTSTACK_STD_PREFIX std::
|
|
611
|
+
#else
|
|
612
|
+
#include <stdio.h>
|
|
613
|
+
#define PANDORA_PRINTSTACK_STD_PREFIX
|
|
614
|
+
#endif
|
|
615
|
+
|
|
616
|
+
#if defined(HAVE_UCONTEXT_H) && defined(HAVE_PRINTSTACK)
|
|
617
|
+
#include <ucontext.h>
|
|
618
|
+
#define pandora_print_callstack(a) \
|
|
619
|
+
printstack(PANDORA_PRINTSTACK_STD_PREFIX fileno(a))
|
|
620
|
+
#elif defined(HAVE_EXECINFO_H) && defined(HAVE_BACKTRACE) && defined(HAVE_BACKTRACE_SYMBOLS_FD)
|
|
621
|
+
|
|
622
|
+
#include <execinfo.h>
|
|
623
|
+
|
|
624
|
+
#define pandora_print_callstack(a) \
|
|
625
|
+
{ \
|
|
626
|
+
void *stack[100]; \
|
|
627
|
+
int depth = backtrace(stack, 100); \
|
|
628
|
+
backtrace_symbols_fd(stack, depth, PANDORA_PRINTSTACK_STD_PREFIX fileno(a)); \
|
|
629
|
+
}
|
|
630
|
+
#elif defined(HAVE_EXECINFO_H) && defined(HAVE_BACKTRACE) && defined(HAVE_BACKTRACE_SYMBOLS) && !defined(HAVE_BACKTRACE_SYMBOLS_FD)
|
|
631
|
+
|
|
632
|
+
#include <execinfo.h>
|
|
633
|
+
|
|
634
|
+
#define pandora_print_callstack(a) \
|
|
635
|
+
{ \
|
|
636
|
+
void *stack[100]; \
|
|
637
|
+
int depth= backtrace(stack, 100); \
|
|
638
|
+
char **symbol= backtrace_symbols(stack, depth); \
|
|
639
|
+
for (int x= 0; x < size; ++x) \
|
|
640
|
+
PANDORA_PRINTSTACK_STD_PREFIX fprintf(a, "%s\n", symbol[x]); \
|
|
641
|
+
}
|
|
642
|
+
#else
|
|
643
|
+
#define pandora_print_callstack(a) \
|
|
644
|
+
PANDORA_PRINTSTACK_STD_PREFIX fprintf(a, \
|
|
645
|
+
"Stackdump not supported for this platform\n");
|
|
646
|
+
#endif
|
|
647
|
+
|