mt-libcouchbase 1.4.0
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.
- checksums.yaml +7 -0
- data/.gitignore +22 -0
- data/.gitmodules +3 -0
- data/.rspec +1 -0
- data/.travis.yml +38 -0
- data/Gemfile +4 -0
- data/LICENSE +24 -0
- data/README.md +445 -0
- data/Rakefile +76 -0
- data/ext/README.md +6 -0
- data/ext/Rakefile +19 -0
- data/ext/libcouchbase/.gitignore +132 -0
- data/ext/libcouchbase/CMakeLists.txt +455 -0
- data/ext/libcouchbase/CONTRIBUTING.md +105 -0
- data/ext/libcouchbase/LICENSE +202 -0
- data/ext/libcouchbase/README.markdown +195 -0
- data/ext/libcouchbase/RELEASE_NOTES.markdown +3523 -0
- data/ext/libcouchbase/cmake/Modules/ConfigureDtrace.cmake +52 -0
- data/ext/libcouchbase/cmake/Modules/CopyPDB.cmake +42 -0
- data/ext/libcouchbase/cmake/Modules/DistScript.cmake +17 -0
- data/ext/libcouchbase/cmake/Modules/DownloadLcbDep.cmake +18 -0
- data/ext/libcouchbase/cmake/Modules/FindCouchbaseHdrHistogram.cmake +15 -0
- data/ext/libcouchbase/cmake/Modules/FindCouchbaseLibev.cmake +73 -0
- data/ext/libcouchbase/cmake/Modules/FindCouchbaseLibevent.cmake +54 -0
- data/ext/libcouchbase/cmake/Modules/FindCouchbaseLibuv.cmake +57 -0
- data/ext/libcouchbase/cmake/Modules/FindProfiler.cmake +16 -0
- data/ext/libcouchbase/cmake/Modules/GenerateConfigDotH.cmake +49 -0
- data/ext/libcouchbase/cmake/Modules/GetLibcouchbaseFlags.cmake +142 -0
- data/ext/libcouchbase/cmake/Modules/GetPlatformCCInfo.cmake +45 -0
- data/ext/libcouchbase/cmake/Modules/GetVersionInfo.cmake +70 -0
- data/ext/libcouchbase/cmake/config-cmake.h.in +80 -0
- data/ext/libcouchbase/cmake/configure +355 -0
- data/ext/libcouchbase/cmake/defs.mk.in +6 -0
- data/ext/libcouchbase/cmake/dtrace-instr-link.pl +51 -0
- data/ext/libcouchbase/cmake/libcouchbase.stp.in +829 -0
- data/ext/libcouchbase/cmake/source_files.cmake +104 -0
- data/ext/libcouchbase/contrib/cJSON/cJSON.c +1022 -0
- data/ext/libcouchbase/contrib/cJSON/cJSON.h +158 -0
- data/ext/libcouchbase/contrib/cbsasl/CMakeLists.txt +25 -0
- data/ext/libcouchbase/contrib/cbsasl/COPYING +202 -0
- data/ext/libcouchbase/contrib/cbsasl/include/cbsasl/cbsasl.h +259 -0
- data/ext/libcouchbase/contrib/cbsasl/src/client.c +419 -0
- data/ext/libcouchbase/contrib/cbsasl/src/common.c +50 -0
- data/ext/libcouchbase/contrib/cbsasl/src/cram-md5/hmac.c +67 -0
- data/ext/libcouchbase/contrib/cbsasl/src/cram-md5/hmac.h +33 -0
- data/ext/libcouchbase/contrib/cbsasl/src/cram-md5/md5.c +296 -0
- data/ext/libcouchbase/contrib/cbsasl/src/cram-md5/md5.h +45 -0
- data/ext/libcouchbase/contrib/cbsasl/src/hash.c +573 -0
- data/ext/libcouchbase/contrib/cbsasl/src/hash.h +15 -0
- data/ext/libcouchbase/contrib/cbsasl/src/scram-sha/scram_utils.c +500 -0
- data/ext/libcouchbase/contrib/cbsasl/src/scram-sha/scram_utils.h +99 -0
- data/ext/libcouchbase/contrib/cbsasl/src/util.h +31 -0
- data/ext/libcouchbase/contrib/cliopts/CMakeLists.txt +2 -0
- data/ext/libcouchbase/contrib/cliopts/cliopts.c +938 -0
- data/ext/libcouchbase/contrib/cliopts/cliopts.h +610 -0
- data/ext/libcouchbase/contrib/genhash/genhash.c +371 -0
- data/ext/libcouchbase/contrib/genhash/genhash.h +241 -0
- data/ext/libcouchbase/contrib/gtest-1.7.0/CHANGES +157 -0
- data/ext/libcouchbase/contrib/gtest-1.7.0/CMakeLists.txt +252 -0
- data/ext/libcouchbase/contrib/gtest-1.7.0/CONTRIBUTORS +37 -0
- data/ext/libcouchbase/contrib/gtest-1.7.0/LICENSE +28 -0
- data/ext/libcouchbase/contrib/gtest-1.7.0/MINIFY.sh +15 -0
- data/ext/libcouchbase/contrib/gtest-1.7.0/README +435 -0
- data/ext/libcouchbase/contrib/gtest-1.7.0/cmake/internal_utils.cmake +227 -0
- data/ext/libcouchbase/contrib/gtest-1.7.0/include/gtest/gtest-death-test.h +294 -0
- data/ext/libcouchbase/contrib/gtest-1.7.0/include/gtest/gtest-message.h +250 -0
- data/ext/libcouchbase/contrib/gtest-1.7.0/include/gtest/gtest-param-test.h +1421 -0
- data/ext/libcouchbase/contrib/gtest-1.7.0/include/gtest/gtest-param-test.h.pump +487 -0
- data/ext/libcouchbase/contrib/gtest-1.7.0/include/gtest/gtest-printers.h +855 -0
- data/ext/libcouchbase/contrib/gtest-1.7.0/include/gtest/gtest-spi.h +232 -0
- data/ext/libcouchbase/contrib/gtest-1.7.0/include/gtest/gtest-test-part.h +179 -0
- data/ext/libcouchbase/contrib/gtest-1.7.0/include/gtest/gtest-typed-test.h +259 -0
- data/ext/libcouchbase/contrib/gtest-1.7.0/include/gtest/gtest.h +2291 -0
- data/ext/libcouchbase/contrib/gtest-1.7.0/include/gtest/gtest_pred_impl.h +358 -0
- data/ext/libcouchbase/contrib/gtest-1.7.0/include/gtest/gtest_prod.h +58 -0
- data/ext/libcouchbase/contrib/gtest-1.7.0/include/gtest/internal/gtest-death-test-internal.h +319 -0
- data/ext/libcouchbase/contrib/gtest-1.7.0/include/gtest/internal/gtest-filepath.h +206 -0
- data/ext/libcouchbase/contrib/gtest-1.7.0/include/gtest/internal/gtest-internal.h +1158 -0
- data/ext/libcouchbase/contrib/gtest-1.7.0/include/gtest/internal/gtest-linked_ptr.h +233 -0
- data/ext/libcouchbase/contrib/gtest-1.7.0/include/gtest/internal/gtest-param-util-generated.h +5143 -0
- data/ext/libcouchbase/contrib/gtest-1.7.0/include/gtest/internal/gtest-param-util-generated.h.pump +301 -0
- data/ext/libcouchbase/contrib/gtest-1.7.0/include/gtest/internal/gtest-param-util.h +619 -0
- data/ext/libcouchbase/contrib/gtest-1.7.0/include/gtest/internal/gtest-port.h +1947 -0
- data/ext/libcouchbase/contrib/gtest-1.7.0/include/gtest/internal/gtest-string.h +167 -0
- data/ext/libcouchbase/contrib/gtest-1.7.0/include/gtest/internal/gtest-tuple.h +1012 -0
- data/ext/libcouchbase/contrib/gtest-1.7.0/include/gtest/internal/gtest-tuple.h.pump +339 -0
- data/ext/libcouchbase/contrib/gtest-1.7.0/include/gtest/internal/gtest-type-util.h +3331 -0
- data/ext/libcouchbase/contrib/gtest-1.7.0/include/gtest/internal/gtest-type-util.h.pump +297 -0
- data/ext/libcouchbase/contrib/gtest-1.7.0/src/gtest-all.cc +48 -0
- data/ext/libcouchbase/contrib/gtest-1.7.0/src/gtest-death-test.cc +1344 -0
- data/ext/libcouchbase/contrib/gtest-1.7.0/src/gtest-filepath.cc +382 -0
- data/ext/libcouchbase/contrib/gtest-1.7.0/src/gtest-internal-inl.h +1218 -0
- data/ext/libcouchbase/contrib/gtest-1.7.0/src/gtest-port.cc +805 -0
- data/ext/libcouchbase/contrib/gtest-1.7.0/src/gtest-printers.cc +363 -0
- data/ext/libcouchbase/contrib/gtest-1.7.0/src/gtest-test-part.cc +110 -0
- data/ext/libcouchbase/contrib/gtest-1.7.0/src/gtest-typed-test.cc +110 -0
- data/ext/libcouchbase/contrib/gtest-1.7.0/src/gtest.cc +5015 -0
- data/ext/libcouchbase/contrib/gtest-1.7.0/src/gtest_main.cc +38 -0
- data/ext/libcouchbase/contrib/http_parser/LICENSE-MIT +23 -0
- data/ext/libcouchbase/contrib/http_parser/README.md +178 -0
- data/ext/libcouchbase/contrib/http_parser/http_parser.c +2060 -0
- data/ext/libcouchbase/contrib/http_parser/http_parser.h +321 -0
- data/ext/libcouchbase/contrib/jsonsl/LICENSE +20 -0
- data/ext/libcouchbase/contrib/jsonsl/jsonsl.c +1452 -0
- data/ext/libcouchbase/contrib/jsonsl/jsonsl.h +971 -0
- data/ext/libcouchbase/contrib/lcb-jsoncpp/CMakeLists.txt +6 -0
- data/ext/libcouchbase/contrib/lcb-jsoncpp/LICENSE +55 -0
- data/ext/libcouchbase/contrib/lcb-jsoncpp/lcb-jsoncpp-forwards.h +255 -0
- data/ext/libcouchbase/contrib/lcb-jsoncpp/lcb-jsoncpp.cpp +4893 -0
- data/ext/libcouchbase/contrib/lcb-jsoncpp/lcb-jsoncpp.h +1961 -0
- data/ext/libcouchbase/contrib/snappy/CMakeLists.txt +7 -0
- data/ext/libcouchbase/contrib/snappy/COPYING +28 -0
- data/ext/libcouchbase/contrib/snappy/snappy-c.cc +90 -0
- data/ext/libcouchbase/contrib/snappy/snappy-c.h +138 -0
- data/ext/libcouchbase/contrib/snappy/snappy-internal.h +150 -0
- data/ext/libcouchbase/contrib/snappy/snappy-lcb-msvc.h +5 -0
- data/ext/libcouchbase/contrib/snappy/snappy-sinksource.cc +75 -0
- data/ext/libcouchbase/contrib/snappy/snappy-sinksource.h +137 -0
- data/ext/libcouchbase/contrib/snappy/snappy-stubs-internal.cc +42 -0
- data/ext/libcouchbase/contrib/snappy/snappy-stubs-internal.h +491 -0
- data/ext/libcouchbase/contrib/snappy/snappy-stubs-public.h +100 -0
- data/ext/libcouchbase/contrib/snappy/snappy.cc +1312 -0
- data/ext/libcouchbase/contrib/snappy/snappy.h +184 -0
- data/ext/libcouchbase/contrib/win32-defs/iocpdefs.h +133 -0
- data/ext/libcouchbase/contrib/win32-defs/mingwdefs.h +4396 -0
- data/ext/libcouchbase/contrib/win32-defs/win_stdint.h +258 -0
- data/ext/libcouchbase/doc/Doxyfile +2495 -0
- data/ext/libcouchbase/doc/DoxygenLayout.xml +109 -0
- data/ext/libcouchbase/doc/Makefile +44 -0
- data/ext/libcouchbase/doc/apiattr.h +117 -0
- data/ext/libcouchbase/doc/cbc-n1qlback.markdown +88 -0
- data/ext/libcouchbase/doc/cbc-pillowfight.markdown +296 -0
- data/ext/libcouchbase/doc/cbc-subdoc.markdown +299 -0
- data/ext/libcouchbase/doc/cbc.markdown +763 -0
- data/ext/libcouchbase/doc/cbcrc.markdown +52 -0
- data/ext/libcouchbase/doc/common-additional-options.markdown +82 -0
- data/ext/libcouchbase/doc/common-options.markdown +71 -0
- data/ext/libcouchbase/doc/environment.h +93 -0
- data/ext/libcouchbase/doc/example/threads.c +77 -0
- data/ext/libcouchbase/doc/footer.html +22 -0
- data/ext/libcouchbase/doc/genman.sh +25 -0
- data/ext/libcouchbase/doc/header.html +52 -0
- data/ext/libcouchbase/doc/intro.h +130 -0
- data/ext/libcouchbase/doc/mainpage.h +136 -0
- data/ext/libcouchbase/doc/man/cbc-admin.1 +1 -0
- data/ext/libcouchbase/doc/man/cbc-bucket-create.1 +1 -0
- data/ext/libcouchbase/doc/man/cbc-bucket-delete.1 +1 -0
- data/ext/libcouchbase/doc/man/cbc-cat.1 +1 -0
- data/ext/libcouchbase/doc/man/cbc-connstr.1 +1 -0
- data/ext/libcouchbase/doc/man/cbc-cp.1 +1 -0
- data/ext/libcouchbase/doc/man/cbc-create.1 +1 -0
- data/ext/libcouchbase/doc/man/cbc-decr.1 +1 -0
- data/ext/libcouchbase/doc/man/cbc-flush.1 +1 -0
- data/ext/libcouchbase/doc/man/cbc-hash.1 +1 -0
- data/ext/libcouchbase/doc/man/cbc-incr.1 +1 -0
- data/ext/libcouchbase/doc/man/cbc-lock.1 +1 -0
- data/ext/libcouchbase/doc/man/cbc-mcflush.1 +1 -0
- data/ext/libcouchbase/doc/man/cbc-mcversion.1 +1 -0
- data/ext/libcouchbase/doc/man/cbc-n1ql.1 +1 -0
- data/ext/libcouchbase/doc/man/cbc-n1qlback.1 +198 -0
- data/ext/libcouchbase/doc/man/cbc-observe.1 +1 -0
- data/ext/libcouchbase/doc/man/cbc-pillowfight.1 +499 -0
- data/ext/libcouchbase/doc/man/cbc-ping.1 +1 -0
- data/ext/libcouchbase/doc/man/cbc-rm.1 +1 -0
- data/ext/libcouchbase/doc/man/cbc-role-list.1 +1 -0
- data/ext/libcouchbase/doc/man/cbc-stats.1 +1 -0
- data/ext/libcouchbase/doc/man/cbc-subdoc.1 +494 -0
- data/ext/libcouchbase/doc/man/cbc-unlock.1 +1 -0
- data/ext/libcouchbase/doc/man/cbc-user-delete.1 +1 -0
- data/ext/libcouchbase/doc/man/cbc-user-list.1 +1 -0
- data/ext/libcouchbase/doc/man/cbc-user-upsert.1 +1 -0
- data/ext/libcouchbase/doc/man/cbc-verbosity.1 +1 -0
- data/ext/libcouchbase/doc/man/cbc-version.1 +1 -0
- data/ext/libcouchbase/doc/man/cbc-view.1 +1 -0
- data/ext/libcouchbase/doc/man/cbc-watch.1 +1 -0
- data/ext/libcouchbase/doc/man/cbc.1 +1035 -0
- data/ext/libcouchbase/doc/man/cbcrc.4 +71 -0
- data/ext/libcouchbase/doc/style.css +1162 -0
- data/ext/libcouchbase/example/CMakeLists.txt +52 -0
- data/ext/libcouchbase/example/README.markdown +47 -0
- data/ext/libcouchbase/example/analytics/.gitignore +1 -0
- data/ext/libcouchbase/example/analytics/analytics.c +158 -0
- data/ext/libcouchbase/example/analytics/build-queries.rb +34 -0
- data/ext/libcouchbase/example/analytics/cJSON.c +1 -0
- data/ext/libcouchbase/example/analytics/cJSON.h +1 -0
- data/ext/libcouchbase/example/analytics/queries/00-show-dataverse.json +5 -0
- data/ext/libcouchbase/example/analytics/queries/01-setup-dataset-breweries.json +6 -0
- data/ext/libcouchbase/example/analytics/queries/02-setup-dataset-beers.json +6 -0
- data/ext/libcouchbase/example/analytics/queries/03-initiate-shadow.json +6 -0
- data/ext/libcouchbase/example/analytics/queries/04-list-datasets.json +7 -0
- data/ext/libcouchbase/example/analytics/queries/05-count-breweries.json +5 -0
- data/ext/libcouchbase/example/analytics/queries/06-first-brewery.json +6 -0
- data/ext/libcouchbase/example/analytics/queries/07-key-based-lookup.json +6 -0
- data/ext/libcouchbase/example/analytics/queries/08-exact-match-lookup.json +7 -0
- data/ext/libcouchbase/example/analytics/queries/09-exact-match-lookup-different-shape.json +6 -0
- data/ext/libcouchbase/example/analytics/queries/10-other-query-filters.json +6 -0
- data/ext/libcouchbase/example/analytics/queries/11-equijoin.json +9 -0
- data/ext/libcouchbase/example/analytics/queries/12-equijoin-select-star.json +10 -0
- data/ext/libcouchbase/example/analytics/queries/13-ansi-join.json +8 -0
- data/ext/libcouchbase/example/analytics/queries/14-join-select-values.json +8 -0
- data/ext/libcouchbase/example/analytics/queries/15-nested-outer-join.json +7 -0
- data/ext/libcouchbase/example/analytics/queries/16-theta-join.json +8 -0
- data/ext/libcouchbase/example/analytics/queries/17-existential-quantification.json +9 -0
- data/ext/libcouchbase/example/analytics/queries/18-universal-quantification.json +7 -0
- data/ext/libcouchbase/example/analytics/queries/19-simple-aggregation.json +6 -0
- data/ext/libcouchbase/example/analytics/queries/20-simple-aggregation-unwrapped-value.json +6 -0
- data/ext/libcouchbase/example/analytics/queries/21-simple-aggregation-explicit.json +6 -0
- data/ext/libcouchbase/example/analytics/queries/22-grouping-and-aggregation.json +6 -0
- data/ext/libcouchbase/example/analytics/queries/23-grouping-and-aggregation-with-hint.json +7 -0
- data/ext/libcouchbase/example/analytics/queries/24-grouping-and-limits.json +7 -0
- data/ext/libcouchbase/example/analytics/queries/25-named-parameters.json +7 -0
- data/ext/libcouchbase/example/analytics/queries/26-positional-parameters.json +7 -0
- data/ext/libcouchbase/example/analytics/queries.h +113 -0
- data/ext/libcouchbase/example/crypto/.gitignore +2 -0
- data/ext/libcouchbase/example/crypto/Makefile +13 -0
- data/ext/libcouchbase/example/crypto/common_provider.c +26 -0
- data/ext/libcouchbase/example/crypto/common_provider.h +33 -0
- data/ext/libcouchbase/example/crypto/openssl_symmetric_decrypt.c +144 -0
- data/ext/libcouchbase/example/crypto/openssl_symmetric_encrypt.c +146 -0
- data/ext/libcouchbase/example/crypto/openssl_symmetric_provider.c +271 -0
- data/ext/libcouchbase/example/crypto/openssl_symmetric_provider.h +29 -0
- data/ext/libcouchbase/example/db/db.c +171 -0
- data/ext/libcouchbase/example/db/vb.c +227 -0
- data/ext/libcouchbase/example/fts/.gitignore +1 -0
- data/ext/libcouchbase/example/fts/build-queries.rb +33 -0
- data/ext/libcouchbase/example/fts/fts.c +142 -0
- data/ext/libcouchbase/example/fts/queries/00-simple-text-query.json +12 -0
- data/ext/libcouchbase/example/fts/queries/01-simple-text-query-on-non-default-index.json +9 -0
- data/ext/libcouchbase/example/fts/queries/02-simple-text-query-on-stored-field.json +13 -0
- data/ext/libcouchbase/example/fts/queries/03-match-query-with-facet.json +19 -0
- data/ext/libcouchbase/example/fts/queries/04-docid-query.json +11 -0
- data/ext/libcouchbase/example/fts/queries/05-unanalyzed-term-query-with-fuzziness-level-of-0.json +13 -0
- data/ext/libcouchbase/example/fts/queries/06-unanalyzed-term-query-with-fuzziness-level-of-2.json +14 -0
- data/ext/libcouchbase/example/fts/queries/07-match-phrase-query.json +13 -0
- data/ext/libcouchbase/example/fts/queries/08-phrase-query.json +16 -0
- data/ext/libcouchbase/example/fts/queries/09-query-string-query.json +9 -0
- data/ext/libcouchbase/example/fts/queries/10-conjunction-query.json +21 -0
- data/ext/libcouchbase/example/fts/queries/11-wild-card-query.json +13 -0
- data/ext/libcouchbase/example/fts/queries/12-numeric-range-query.json +11 -0
- data/ext/libcouchbase/example/fts/queries/13-regexp-query.json +13 -0
- data/ext/libcouchbase/example/fts/queries.h +61 -0
- data/ext/libcouchbase/example/instancepool/main.cc +112 -0
- data/ext/libcouchbase/example/instancepool/pool.cc +102 -0
- data/ext/libcouchbase/example/instancepool/pool.h +69 -0
- data/ext/libcouchbase/example/libeventdirect/main.c +222 -0
- data/ext/libcouchbase/example/mcc/mcc.cc +246 -0
- data/ext/libcouchbase/example/minimal/.gitignore +1 -0
- data/ext/libcouchbase/example/minimal/minimal.c +132 -0
- data/ext/libcouchbase/example/minimal/query.c +185 -0
- data/ext/libcouchbase/example/observe/durability.c +102 -0
- data/ext/libcouchbase/example/observe/observe.c +159 -0
- data/ext/libcouchbase/example/subdoc/subdoc-multi.cc +143 -0
- data/ext/libcouchbase/example/subdoc/subdoc-simple.cc +201 -0
- data/ext/libcouchbase/example/subdoc/subdoc-xattrs.c +286 -0
- data/ext/libcouchbase/example/tick/tick.c +119 -0
- data/ext/libcouchbase/example/tracing/.gitignore +2 -0
- data/ext/libcouchbase/example/tracing/Makefile +8 -0
- data/ext/libcouchbase/example/tracing/cJSON.c +1 -0
- data/ext/libcouchbase/example/tracing/cJSON.h +1 -0
- data/ext/libcouchbase/example/tracing/tracing.c +439 -0
- data/ext/libcouchbase/example/tracing/views.c +444 -0
- data/ext/libcouchbase/example/users/README +48 -0
- data/ext/libcouchbase/example/users/users.c +147 -0
- data/ext/libcouchbase/example/views/views-example.cc +83 -0
- data/ext/libcouchbase/include/libcouchbase/_cxxwrap.h +150 -0
- data/ext/libcouchbase/include/libcouchbase/api-legacy.h +1689 -0
- data/ext/libcouchbase/include/libcouchbase/api3.h +2 -0
- data/ext/libcouchbase/include/libcouchbase/assert.h +44 -0
- data/ext/libcouchbase/include/libcouchbase/auth.h +297 -0
- data/ext/libcouchbase/include/libcouchbase/cbft.h +151 -0
- data/ext/libcouchbase/include/libcouchbase/cntl-private.h +319 -0
- data/ext/libcouchbase/include/libcouchbase/cntl.h +1418 -0
- data/ext/libcouchbase/include/libcouchbase/configuration.h.in +29 -0
- data/ext/libcouchbase/include/libcouchbase/couchbase.h +4089 -0
- data/ext/libcouchbase/include/libcouchbase/crypto.h +306 -0
- data/ext/libcouchbase/include/libcouchbase/deprecated.h +312 -0
- data/ext/libcouchbase/include/libcouchbase/error.h +680 -0
- data/ext/libcouchbase/include/libcouchbase/http.h +1 -0
- data/ext/libcouchbase/include/libcouchbase/iops.h +1053 -0
- data/ext/libcouchbase/include/libcouchbase/ixmgmt.h +263 -0
- data/ext/libcouchbase/include/libcouchbase/kvbuf.h +137 -0
- data/ext/libcouchbase/include/libcouchbase/metrics.h +79 -0
- data/ext/libcouchbase/include/libcouchbase/n1ql.h +539 -0
- data/ext/libcouchbase/include/libcouchbase/pktfwd.h +270 -0
- data/ext/libcouchbase/include/libcouchbase/plugins/io/bsdio-inl.c +370 -0
- data/ext/libcouchbase/include/libcouchbase/plugins/io/wsaerr-inl.c +76 -0
- data/ext/libcouchbase/include/libcouchbase/plugins/io/wsaerr.h +199 -0
- data/ext/libcouchbase/include/libcouchbase/subdoc.h +347 -0
- data/ext/libcouchbase/include/libcouchbase/sysdefs.h +98 -0
- data/ext/libcouchbase/include/libcouchbase/tracing.h +437 -0
- data/ext/libcouchbase/include/libcouchbase/vbucket.h +680 -0
- data/ext/libcouchbase/include/libcouchbase/views.h +357 -0
- data/ext/libcouchbase/include/libcouchbase/visibility.h +66 -0
- data/ext/libcouchbase/include/memcached/COPYING +30 -0
- data/ext/libcouchbase/include/memcached/README +10 -0
- data/ext/libcouchbase/include/memcached/protocol_binary.h +885 -0
- data/ext/libcouchbase/packaging/README +7 -0
- data/ext/libcouchbase/packaging/abicheck/.gitignore +4 -0
- data/ext/libcouchbase/packaging/abicheck/Makefile +17 -0
- data/ext/libcouchbase/packaging/abicheck/README.md +27 -0
- data/ext/libcouchbase/packaging/abicheck/template.xml +3 -0
- data/ext/libcouchbase/packaging/deb/compat +1 -0
- data/ext/libcouchbase/packaging/deb/control +72 -0
- data/ext/libcouchbase/packaging/deb/copyright +10 -0
- data/ext/libcouchbase/packaging/deb/libcouchbase-dev.docs +3 -0
- data/ext/libcouchbase/packaging/deb/package.mk +31 -0
- data/ext/libcouchbase/packaging/deb/rules +46 -0
- data/ext/libcouchbase/packaging/deb/source/format +1 -0
- data/ext/libcouchbase/packaging/distinfo/README +1 -0
- data/ext/libcouchbase/packaging/distinfo/distinfo.cmake.in +4 -0
- data/ext/libcouchbase/packaging/dllversion.rc.in +39 -0
- data/ext/libcouchbase/packaging/libcouchbase.pc.in +10 -0
- data/ext/libcouchbase/packaging/nuget/libcouchbase.autopkg +76 -0
- data/ext/libcouchbase/packaging/parse-git-describe.pl +166 -0
- data/ext/libcouchbase/packaging/rpm/libcouchbase.spec.in +101 -0
- data/ext/libcouchbase/packaging/rpm/package.mk +40 -0
- data/ext/libcouchbase/plugins/io/iocp/CMakeLists.txt +9 -0
- data/ext/libcouchbase/plugins/io/iocp/iocp_iops.c +467 -0
- data/ext/libcouchbase/plugins/io/iocp/iocp_iops.h +217 -0
- data/ext/libcouchbase/plugins/io/iocp/iocp_loop.c +295 -0
- data/ext/libcouchbase/plugins/io/iocp/iocp_timer.c +79 -0
- data/ext/libcouchbase/plugins/io/iocp/iocp_util.c +229 -0
- data/ext/libcouchbase/plugins/io/libev/CMakeLists.txt +31 -0
- data/ext/libcouchbase/plugins/io/libev/libev_io_opts.h +66 -0
- data/ext/libcouchbase/plugins/io/libev/plugin-libev.c +289 -0
- data/ext/libcouchbase/plugins/io/libevent/CMakeLists.txt +31 -0
- data/ext/libcouchbase/plugins/io/libevent/libevent_io_opts.h +67 -0
- data/ext/libcouchbase/plugins/io/libevent/plugin-libevent.c +292 -0
- data/ext/libcouchbase/plugins/io/libuv/CMakeLists.txt +44 -0
- data/ext/libcouchbase/plugins/io/libuv/libuv_compat.h +218 -0
- data/ext/libcouchbase/plugins/io/libuv/libuv_io_opts.h +118 -0
- data/ext/libcouchbase/plugins/io/libuv/plugin-internal.h +155 -0
- data/ext/libcouchbase/plugins/io/libuv/plugin-libuv.c +709 -0
- data/ext/libcouchbase/plugins/io/select/CMakeLists.txt +13 -0
- data/ext/libcouchbase/plugins/io/select/plugin-select.c +451 -0
- data/ext/libcouchbase/plugins/io/select/select_io_opts.h +39 -0
- data/ext/libcouchbase/src/README.md +101 -0
- data/ext/libcouchbase/src/aspend.h +105 -0
- data/ext/libcouchbase/src/auth-priv.h +85 -0
- data/ext/libcouchbase/src/auth.cc +146 -0
- data/ext/libcouchbase/src/bootstrap.cc +263 -0
- data/ext/libcouchbase/src/bootstrap.h +149 -0
- data/ext/libcouchbase/src/bucketconfig/bc_cccp.cc +450 -0
- data/ext/libcouchbase/src/bucketconfig/bc_file.cc +281 -0
- data/ext/libcouchbase/src/bucketconfig/bc_http.cc +527 -0
- data/ext/libcouchbase/src/bucketconfig/bc_http.h +107 -0
- data/ext/libcouchbase/src/bucketconfig/bc_static.cc +150 -0
- data/ext/libcouchbase/src/bucketconfig/clconfig.h +700 -0
- data/ext/libcouchbase/src/bucketconfig/confmon.cc +403 -0
- data/ext/libcouchbase/src/callbacks.c +380 -0
- data/ext/libcouchbase/src/cbft.cc +253 -0
- data/ext/libcouchbase/src/cntl.cc +1057 -0
- data/ext/libcouchbase/src/config_static.h +176 -0
- data/ext/libcouchbase/src/connspec.cc +555 -0
- data/ext/libcouchbase/src/connspec.h +155 -0
- data/ext/libcouchbase/src/crypto.cc +399 -0
- data/ext/libcouchbase/src/ctx-log-inl.h +44 -0
- data/ext/libcouchbase/src/dns-srv.cc +146 -0
- data/ext/libcouchbase/src/dump.cc +103 -0
- data/ext/libcouchbase/src/errmap.cc +173 -0
- data/ext/libcouchbase/src/errmap.h +271 -0
- data/ext/libcouchbase/src/getconfig.cc +72 -0
- data/ext/libcouchbase/src/gethrtime.c +109 -0
- data/ext/libcouchbase/src/handler.cc +1101 -0
- data/ext/libcouchbase/src/hashtable.c +75 -0
- data/ext/libcouchbase/src/hdr_timings.c +92 -0
- data/ext/libcouchbase/src/hostlist.cc +293 -0
- data/ext/libcouchbase/src/hostlist.h +160 -0
- data/ext/libcouchbase/src/http/http-priv.h +326 -0
- data/ext/libcouchbase/src/http/http.cc +672 -0
- data/ext/libcouchbase/src/http/http.h +1 -0
- data/ext/libcouchbase/src/http/http_io.cc +316 -0
- data/ext/libcouchbase/src/instance.cc +917 -0
- data/ext/libcouchbase/src/internal.h +285 -0
- data/ext/libcouchbase/src/iofactory.c +575 -0
- data/ext/libcouchbase/src/jsparse/parser.cc +445 -0
- data/ext/libcouchbase/src/jsparse/parser.h +159 -0
- data/ext/libcouchbase/src/lcbht/lcbht.cc +177 -0
- data/ext/libcouchbase/src/lcbht/lcbht.h +210 -0
- data/ext/libcouchbase/src/lcbio/connect.cc +603 -0
- data/ext/libcouchbase/src/lcbio/connect.h +400 -0
- data/ext/libcouchbase/src/lcbio/ctx.c +658 -0
- data/ext/libcouchbase/src/lcbio/ctx.h +405 -0
- data/ext/libcouchbase/src/lcbio/iotable.c +290 -0
- data/ext/libcouchbase/src/lcbio/iotable.h +169 -0
- data/ext/libcouchbase/src/lcbio/ioutils.cc +356 -0
- data/ext/libcouchbase/src/lcbio/ioutils.h +144 -0
- data/ext/libcouchbase/src/lcbio/lcbio.h +51 -0
- data/ext/libcouchbase/src/lcbio/manager.cc +579 -0
- data/ext/libcouchbase/src/lcbio/manager.h +195 -0
- data/ext/libcouchbase/src/lcbio/protoctx.c +84 -0
- data/ext/libcouchbase/src/lcbio/rw-inl.h +137 -0
- data/ext/libcouchbase/src/lcbio/ssl.h +159 -0
- data/ext/libcouchbase/src/lcbio/timer-cxx.h +87 -0
- data/ext/libcouchbase/src/lcbio/timer-ng.h +179 -0
- data/ext/libcouchbase/src/lcbio/timer.c +132 -0
- data/ext/libcouchbase/src/legacy.c +431 -0
- data/ext/libcouchbase/src/list.c +144 -0
- data/ext/libcouchbase/src/list.h +127 -0
- data/ext/libcouchbase/src/logging.c +244 -0
- data/ext/libcouchbase/src/logging.h +88 -0
- data/ext/libcouchbase/src/mc/compress.cc +171 -0
- data/ext/libcouchbase/src/mc/compress.h +56 -0
- data/ext/libcouchbase/src/mc/forward.c +186 -0
- data/ext/libcouchbase/src/mc/forward.h +90 -0
- data/ext/libcouchbase/src/mc/iovcursor-inl.h +279 -0
- data/ext/libcouchbase/src/mc/iovcursor.h +66 -0
- data/ext/libcouchbase/src/mc/mcreq-flush-inl.h +115 -0
- data/ext/libcouchbase/src/mc/mcreq.c +983 -0
- data/ext/libcouchbase/src/mc/mcreq.h +1015 -0
- data/ext/libcouchbase/src/mcserver/mcserver.cc +1055 -0
- data/ext/libcouchbase/src/mcserver/mcserver.h +221 -0
- data/ext/libcouchbase/src/mcserver/negotiate.cc +757 -0
- data/ext/libcouchbase/src/mcserver/negotiate.h +128 -0
- data/ext/libcouchbase/src/mctx-helper.h +62 -0
- data/ext/libcouchbase/src/metrics.cc +132 -0
- data/ext/libcouchbase/src/n1ql/ixmgmt.cc +857 -0
- data/ext/libcouchbase/src/n1ql/n1ql-internal.h +22 -0
- data/ext/libcouchbase/src/n1ql/n1ql.cc +830 -0
- data/ext/libcouchbase/src/n1ql/params.cc +260 -0
- data/ext/libcouchbase/src/netbuf/netbuf-defs.h +89 -0
- data/ext/libcouchbase/src/netbuf/netbuf-mblock.h +235 -0
- data/ext/libcouchbase/src/netbuf/netbuf.c +929 -0
- data/ext/libcouchbase/src/netbuf/netbuf.h +452 -0
- data/ext/libcouchbase/src/newconfig.cc +365 -0
- data/ext/libcouchbase/src/nodeinfo.cc +184 -0
- data/ext/libcouchbase/src/operations/cbflush.cc +63 -0
- data/ext/libcouchbase/src/operations/counter.cc +117 -0
- data/ext/libcouchbase/src/operations/durability-cas.cc +251 -0
- data/ext/libcouchbase/src/operations/durability-seqno.cc +170 -0
- data/ext/libcouchbase/src/operations/durability.cc +668 -0
- data/ext/libcouchbase/src/operations/durability_internal.h +306 -0
- data/ext/libcouchbase/src/operations/get.cc +409 -0
- data/ext/libcouchbase/src/operations/observe-seqno.cc +94 -0
- data/ext/libcouchbase/src/operations/observe.cc +367 -0
- data/ext/libcouchbase/src/operations/ping.cc +496 -0
- data/ext/libcouchbase/src/operations/pktfwd.cc +86 -0
- data/ext/libcouchbase/src/operations/remove.cc +84 -0
- data/ext/libcouchbase/src/operations/stats.cc +459 -0
- data/ext/libcouchbase/src/operations/store.cc +358 -0
- data/ext/libcouchbase/src/operations/subdoc.cc +614 -0
- data/ext/libcouchbase/src/operations/touch.cc +84 -0
- data/ext/libcouchbase/src/packetutils.h +388 -0
- data/ext/libcouchbase/src/probes.d +182 -0
- data/ext/libcouchbase/src/rdb/bigalloc.c +225 -0
- data/ext/libcouchbase/src/rdb/bigalloc.h +73 -0
- data/ext/libcouchbase/src/rdb/chunkalloc.c +174 -0
- data/ext/libcouchbase/src/rdb/libcalloc.c +94 -0
- data/ext/libcouchbase/src/rdb/rope.c +419 -0
- data/ext/libcouchbase/src/rdb/rope.h +488 -0
- data/ext/libcouchbase/src/retrychk.cc +113 -0
- data/ext/libcouchbase/src/retryq.cc +458 -0
- data/ext/libcouchbase/src/retryq.h +170 -0
- data/ext/libcouchbase/src/ringbuffer.c +442 -0
- data/ext/libcouchbase/src/ringbuffer.h +100 -0
- data/ext/libcouchbase/src/rnd.cc +61 -0
- data/ext/libcouchbase/src/rnd.h +39 -0
- data/ext/libcouchbase/src/settings.c +125 -0
- data/ext/libcouchbase/src/settings.h +273 -0
- data/ext/libcouchbase/src/sllist-inl.h +197 -0
- data/ext/libcouchbase/src/sllist.h +76 -0
- data/ext/libcouchbase/src/ssl/CMakeLists.txt +11 -0
- data/ext/libcouchbase/src/ssl/ssl_c.c +442 -0
- data/ext/libcouchbase/src/ssl/ssl_common.c +478 -0
- data/ext/libcouchbase/src/ssl/ssl_e.c +421 -0
- data/ext/libcouchbase/src/ssl/ssl_iot_common.h +182 -0
- data/ext/libcouchbase/src/strcodecs/base64.c +307 -0
- data/ext/libcouchbase/src/strcodecs/strcodecs.h +302 -0
- data/ext/libcouchbase/src/timings.c +207 -0
- data/ext/libcouchbase/src/trace.h +117 -0
- data/ext/libcouchbase/src/tracing/span.cc +421 -0
- data/ext/libcouchbase/src/tracing/threshold_logging_tracer.cc +213 -0
- data/ext/libcouchbase/src/tracing/tracer.cc +53 -0
- data/ext/libcouchbase/src/tracing/tracing-internal.h +198 -0
- data/ext/libcouchbase/src/utilities.c +176 -0
- data/ext/libcouchbase/src/vbucket/CMakeLists.txt +2 -0
- data/ext/libcouchbase/src/vbucket/aliases.h +35 -0
- data/ext/libcouchbase/src/vbucket/crc32.h +83 -0
- data/ext/libcouchbase/src/vbucket/hash.h +30 -0
- data/ext/libcouchbase/src/vbucket/json-inl.h +112 -0
- data/ext/libcouchbase/src/vbucket/ketama.c +66 -0
- data/ext/libcouchbase/src/vbucket/rfc1321/global.h +32 -0
- data/ext/libcouchbase/src/vbucket/rfc1321/md5.h +35 -0
- data/ext/libcouchbase/src/vbucket/rfc1321/md5c-inl.h +335 -0
- data/ext/libcouchbase/src/vbucket/vbucket.c +1735 -0
- data/ext/libcouchbase/src/views/docreq.cc +213 -0
- data/ext/libcouchbase/src/views/docreq.h +94 -0
- data/ext/libcouchbase/src/views/viewreq.cc +381 -0
- data/ext/libcouchbase/src/views/viewreq.h +87 -0
- data/ext/libcouchbase/src/wait.cc +156 -0
- data/ext/libcouchbase/tests/CMakeLists.txt +149 -0
- data/ext/libcouchbase/tests/basic/t_base64.cc +109 -0
- data/ext/libcouchbase/tests/basic/t_ccbc103.cc +95 -0
- data/ext/libcouchbase/tests/basic/t_connstr.cc +456 -0
- data/ext/libcouchbase/tests/basic/t_creds.cc +96 -0
- data/ext/libcouchbase/tests/basic/t_ctlcodes.cc +92 -0
- data/ext/libcouchbase/tests/basic/t_host.cc +210 -0
- data/ext/libcouchbase/tests/basic/t_jsparse.cc +82 -0
- data/ext/libcouchbase/tests/basic/t_jsparse.h +589 -0
- data/ext/libcouchbase/tests/basic/t_list.cc +155 -0
- data/ext/libcouchbase/tests/basic/t_logger.cc +65 -0
- data/ext/libcouchbase/tests/basic/t_misc.cc +24 -0
- data/ext/libcouchbase/tests/basic/t_n1qlstrings.cc +17 -0
- data/ext/libcouchbase/tests/basic/t_netbuf.cc +446 -0
- data/ext/libcouchbase/tests/basic/t_packet.cc +215 -0
- data/ext/libcouchbase/tests/basic/t_ringbuffer.cc +278 -0
- data/ext/libcouchbase/tests/basic/t_scram.cc +514 -0
- data/ext/libcouchbase/tests/basic/t_slist.cc +429 -0
- data/ext/libcouchbase/tests/basic/t_strerror.cc +64 -0
- data/ext/libcouchbase/tests/basic/t_urlencode.cc +132 -0
- data/ext/libcouchbase/tests/check-all.cc +612 -0
- data/ext/libcouchbase/tests/htparse/t_basic.cc +173 -0
- data/ext/libcouchbase/tests/ioserver/connection.cc +166 -0
- data/ext/libcouchbase/tests/ioserver/future.cc +50 -0
- data/ext/libcouchbase/tests/ioserver/ioserver.cc +117 -0
- data/ext/libcouchbase/tests/ioserver/ioserver.h +478 -0
- data/ext/libcouchbase/tests/ioserver/socket.cc +88 -0
- data/ext/libcouchbase/tests/ioserver/ssl_connection.cc +145 -0
- data/ext/libcouchbase/tests/ioserver/threads-pthreads.cc +119 -0
- data/ext/libcouchbase/tests/ioserver/threads-win32.cc +117 -0
- data/ext/libcouchbase/tests/ioserver/threads.h +66 -0
- data/ext/libcouchbase/tests/iotests/iotests.h +15 -0
- data/ext/libcouchbase/tests/iotests/mock-environment.cc +632 -0
- data/ext/libcouchbase/tests/iotests/mock-environment.h +480 -0
- data/ext/libcouchbase/tests/iotests/mock-unit-test.cc +67 -0
- data/ext/libcouchbase/tests/iotests/mock-unit-test.h +61 -0
- data/ext/libcouchbase/tests/iotests/serverparams.h +76 -0
- data/ext/libcouchbase/tests/iotests/t_arithmetic.cc +143 -0
- data/ext/libcouchbase/tests/iotests/t_behavior.cc +220 -0
- data/ext/libcouchbase/tests/iotests/t_configcache.cc +117 -0
- data/ext/libcouchbase/tests/iotests/t_confmon.cc +223 -0
- data/ext/libcouchbase/tests/iotests/t_durability.cc +1108 -0
- data/ext/libcouchbase/tests/iotests/t_eerrs.cc +121 -0
- data/ext/libcouchbase/tests/iotests/t_errmap.cc +181 -0
- data/ext/libcouchbase/tests/iotests/t_forward.cc +118 -0
- data/ext/libcouchbase/tests/iotests/t_get.cc +512 -0
- data/ext/libcouchbase/tests/iotests/t_http.cc +438 -0
- data/ext/libcouchbase/tests/iotests/t_iops.cc +175 -0
- data/ext/libcouchbase/tests/iotests/t_lock.cc +274 -0
- data/ext/libcouchbase/tests/iotests/t_misc.cc +777 -0
- data/ext/libcouchbase/tests/iotests/t_mutate.cc +609 -0
- data/ext/libcouchbase/tests/iotests/t_n1ql.cc +270 -0
- data/ext/libcouchbase/tests/iotests/t_netfail.cc +778 -0
- data/ext/libcouchbase/tests/iotests/t_obseqno.cc +156 -0
- data/ext/libcouchbase/tests/iotests/t_regression.cc +321 -0
- data/ext/libcouchbase/tests/iotests/t_sched.cc +87 -0
- data/ext/libcouchbase/tests/iotests/t_serverops.cc +231 -0
- data/ext/libcouchbase/tests/iotests/t_smoke.cc +528 -0
- data/ext/libcouchbase/tests/iotests/t_snappy.cc +316 -0
- data/ext/libcouchbase/tests/iotests/t_subdoc.cc +857 -0
- data/ext/libcouchbase/tests/iotests/t_syncmode.cc +64 -0
- data/ext/libcouchbase/tests/iotests/t_views.cc +417 -0
- data/ext/libcouchbase/tests/iotests/testutil.cc +251 -0
- data/ext/libcouchbase/tests/iotests/testutil.h +163 -0
- data/ext/libcouchbase/tests/mc/mctest.h +119 -0
- data/ext/libcouchbase/tests/mc/pktmaker.h +101 -0
- data/ext/libcouchbase/tests/mc/t_alloc.cc +269 -0
- data/ext/libcouchbase/tests/mc/t_context.cc +100 -0
- data/ext/libcouchbase/tests/mc/t_flush.cc +185 -0
- data/ext/libcouchbase/tests/mc/t_forward.cc +239 -0
- data/ext/libcouchbase/tests/mc/t_ioflush.cc +102 -0
- data/ext/libcouchbase/tests/mc/t_iovcursor.cc +173 -0
- data/ext/libcouchbase/tests/mocksupport/procutil.c +305 -0
- data/ext/libcouchbase/tests/mocksupport/procutil.h +89 -0
- data/ext/libcouchbase/tests/mocksupport/server.c +391 -0
- data/ext/libcouchbase/tests/mocksupport/server.h +72 -0
- data/ext/libcouchbase/tests/mocksupport/timeout.c +69 -0
- data/ext/libcouchbase/tests/nonio_tests.cc +23 -0
- data/ext/libcouchbase/tests/rdb/rdbtest.h +133 -0
- data/ext/libcouchbase/tests/rdb/t_basic.cc +128 -0
- data/ext/libcouchbase/tests/rdb/t_bigalloc.cc +93 -0
- data/ext/libcouchbase/tests/rdb/t_refs.cc +112 -0
- data/ext/libcouchbase/tests/socktests/socktest.cc +344 -0
- data/ext/libcouchbase/tests/socktests/socktest.h +447 -0
- data/ext/libcouchbase/tests/socktests/t_basic.cc +143 -0
- data/ext/libcouchbase/tests/socktests/t_ctx.cc +73 -0
- data/ext/libcouchbase/tests/socktests/t_manager.cc +159 -0
- data/ext/libcouchbase/tests/socktests/t_putex.cc +256 -0
- data/ext/libcouchbase/tests/socktests/t_read.cc +187 -0
- data/ext/libcouchbase/tests/socktests/t_reentrant.cc +143 -0
- data/ext/libcouchbase/tests/socktests/t_ssl.cc +80 -0
- data/ext/libcouchbase/tests/socktests/t_write.cc +95 -0
- data/ext/libcouchbase/tests/start_mock.bat +15 -0
- data/ext/libcouchbase/tests/start_mock.sh +42 -0
- data/ext/libcouchbase/tests/unit_tests.cc +43 -0
- data/ext/libcouchbase/tests/vbucket/confdata/bad.json +101 -0
- data/ext/libcouchbase/tests/vbucket/confdata/full_25.json +363 -0
- data/ext/libcouchbase/tests/vbucket/confdata/ketama_expected.json +2562 -0
- data/ext/libcouchbase/tests/vbucket/confdata/map_node_present_nodesext_missing_nodes.json +94 -0
- data/ext/libcouchbase/tests/vbucket/confdata/memd_25.json +90 -0
- data/ext/libcouchbase/tests/vbucket/confdata/memd_30.json +1 -0
- data/ext/libcouchbase/tests/vbucket/confdata/memd_45.json +1 -0
- data/ext/libcouchbase/tests/vbucket/confdata/memd_ketama_config.json +31 -0
- data/ext/libcouchbase/tests/vbucket/confdata/terse_25.json +291 -0
- data/ext/libcouchbase/tests/vbucket/confdata/terse_30.json +1 -0
- data/ext/libcouchbase/tests/vbucket/t_config.cc +386 -0
- data/ext/libcouchbase/tools/CMakeLists.txt +80 -0
- data/ext/libcouchbase/tools/cbc-handlers.h +636 -0
- data/ext/libcouchbase/tools/cbc-n1qlback.cc +496 -0
- data/ext/libcouchbase/tools/cbc-pillowfight.cc +1230 -0
- data/ext/libcouchbase/tools/cbc-proxy.cc +534 -0
- data/ext/libcouchbase/tools/cbc-subdoc.cc +825 -0
- data/ext/libcouchbase/tools/cbc.cc +1928 -0
- data/ext/libcouchbase/tools/common/histogram.cc +44 -0
- data/ext/libcouchbase/tools/common/histogram.h +23 -0
- data/ext/libcouchbase/tools/common/options.cc +451 -0
- data/ext/libcouchbase/tools/common/options.h +90 -0
- data/ext/libcouchbase/tools/docgen/docgen.h +495 -0
- data/ext/libcouchbase/tools/docgen/loc.h +211 -0
- data/ext/libcouchbase/tools/docgen/placeholders.h +211 -0
- data/ext/libcouchbase/tools/docgen/seqgen.h +122 -0
- data/ext/libcouchbase/tools/extract-packets.rb +110 -0
- data/ext/libcouchbase/tools/linenoise/linenoise.c +1199 -0
- data/ext/libcouchbase/tools/linenoise/linenoise.h +73 -0
- data/lib/mt-libcouchbase/bucket.rb +825 -0
- data/lib/mt-libcouchbase/callbacks.rb +69 -0
- data/lib/mt-libcouchbase/connection.rb +896 -0
- data/lib/mt-libcouchbase/design_docs.rb +92 -0
- data/lib/mt-libcouchbase/error.rb +68 -0
- data/lib/mt-libcouchbase/ext/mt-libcouchbase/cmdbase.rb +23 -0
- data/lib/mt-libcouchbase/ext/mt-libcouchbase/cmdcounter.rb +36 -0
- data/lib/mt-libcouchbase/ext/mt-libcouchbase/cmdendure.rb +26 -0
- data/lib/mt-libcouchbase/ext/mt-libcouchbase/cmdfts.rb +24 -0
- data/lib/mt-libcouchbase/ext/mt-libcouchbase/cmdget.rb +30 -0
- data/lib/mt-libcouchbase/ext/mt-libcouchbase/cmdgetreplica.rb +49 -0
- data/lib/mt-libcouchbase/ext/mt-libcouchbase/cmdhttp.rb +58 -0
- data/lib/mt-libcouchbase/ext/mt-libcouchbase/cmdn1ql.rb +40 -0
- data/lib/mt-libcouchbase/ext/mt-libcouchbase/cmdobseqno.rb +33 -0
- data/lib/mt-libcouchbase/ext/mt-libcouchbase/cmdobserve.rb +30 -0
- data/lib/mt-libcouchbase/ext/mt-libcouchbase/cmdstore.rb +40 -0
- data/lib/mt-libcouchbase/ext/mt-libcouchbase/cmdstoredur.rb +45 -0
- data/lib/mt-libcouchbase/ext/mt-libcouchbase/cmdsubdoc.rb +61 -0
- data/lib/mt-libcouchbase/ext/mt-libcouchbase/cmdverbosity.rb +29 -0
- data/lib/mt-libcouchbase/ext/mt-libcouchbase/cmdviewquery.rb +61 -0
- data/lib/mt-libcouchbase/ext/mt-libcouchbase/contigbuf.rb +14 -0
- data/lib/mt-libcouchbase/ext/mt-libcouchbase/create_st.rb +15 -0
- data/lib/mt-libcouchbase/ext/mt-libcouchbase/create_st0.rb +23 -0
- data/lib/mt-libcouchbase/ext/mt-libcouchbase/create_st1.rb +26 -0
- data/lib/mt-libcouchbase/ext/mt-libcouchbase/create_st2.rb +32 -0
- data/lib/mt-libcouchbase/ext/mt-libcouchbase/create_st3.rb +26 -0
- data/lib/mt-libcouchbase/ext/mt-libcouchbase/crst_u.rb +20 -0
- data/lib/mt-libcouchbase/ext/mt-libcouchbase/durability_opts_st_v.rb +11 -0
- data/lib/mt-libcouchbase/ext/mt-libcouchbase/durability_opts_t.rb +14 -0
- data/lib/mt-libcouchbase/ext/mt-libcouchbase/durabilityopt_sv0.rb +63 -0
- data/lib/mt-libcouchbase/ext/mt-libcouchbase/enums.rb +1007 -0
- data/lib/mt-libcouchbase/ext/mt-libcouchbase/fragbuf.rb +18 -0
- data/lib/mt-libcouchbase/ext/mt-libcouchbase/ftshandle.rb +7 -0
- data/lib/mt-libcouchbase/ext/mt-libcouchbase/histogram.rb +34 -0
- data/lib/mt-libcouchbase/ext/mt-libcouchbase/http_request_t.rb +7 -0
- data/lib/mt-libcouchbase/ext/mt-libcouchbase/keybuf.rb +20 -0
- data/lib/mt-libcouchbase/ext/mt-libcouchbase/multicmd_ctx.rb +30 -0
- data/lib/mt-libcouchbase/ext/mt-libcouchbase/mutation_token.rb +17 -0
- data/lib/mt-libcouchbase/ext/mt-libcouchbase/n1qlhandle.rb +7 -0
- data/lib/mt-libcouchbase/ext/mt-libcouchbase/n1qlparams.rb +7 -0
- data/lib/mt-libcouchbase/ext/mt-libcouchbase/respbase.rb +29 -0
- data/lib/mt-libcouchbase/ext/mt-libcouchbase/respcounter.rb +32 -0
- data/lib/mt-libcouchbase/ext/mt-libcouchbase/respendure.rb +49 -0
- data/lib/mt-libcouchbase/ext/mt-libcouchbase/respfts.rb +40 -0
- data/lib/mt-libcouchbase/ext/mt-libcouchbase/respget.rb +44 -0
- data/lib/mt-libcouchbase/ext/mt-libcouchbase/resphttp.rb +48 -0
- data/lib/mt-libcouchbase/ext/mt-libcouchbase/respmcversion.rb +38 -0
- data/lib/mt-libcouchbase/ext/mt-libcouchbase/respn1ql.rb +41 -0
- data/lib/mt-libcouchbase/ext/mt-libcouchbase/respobseqno.rb +52 -0
- data/lib/mt-libcouchbase/ext/mt-libcouchbase/respobserve.rb +41 -0
- data/lib/mt-libcouchbase/ext/mt-libcouchbase/respserverbase.rb +32 -0
- data/lib/mt-libcouchbase/ext/mt-libcouchbase/respstats.rb +38 -0
- data/lib/mt-libcouchbase/ext/mt-libcouchbase/respstore.rb +32 -0
- data/lib/mt-libcouchbase/ext/mt-libcouchbase/respstoredur.rb +38 -0
- data/lib/mt-libcouchbase/ext/mt-libcouchbase/respsubdoc.rb +35 -0
- data/lib/mt-libcouchbase/ext/mt-libcouchbase/respviewquery.rb +67 -0
- data/lib/mt-libcouchbase/ext/mt-libcouchbase/sdentry.rb +22 -0
- data/lib/mt-libcouchbase/ext/mt-libcouchbase/sdspec.rb +31 -0
- data/lib/mt-libcouchbase/ext/mt-libcouchbase/t.rb +7 -0
- data/lib/mt-libcouchbase/ext/mt-libcouchbase/valbuf.rb +22 -0
- data/lib/mt-libcouchbase/ext/mt-libcouchbase/valbuf_u_buf.rb +14 -0
- data/lib/mt-libcouchbase/ext/mt-libcouchbase/viewhandle.rb +7 -0
- data/lib/mt-libcouchbase/ext/mt-libcouchbase.rb +1175 -0
- data/lib/mt-libcouchbase/ext/mt-libcouchbase_libuv.rb +22 -0
- data/lib/mt-libcouchbase/ext/tasks.rb +39 -0
- data/lib/mt-libcouchbase/n1ql.rb +80 -0
- data/lib/mt-libcouchbase/query_full_text.rb +147 -0
- data/lib/mt-libcouchbase/query_n1ql.rb +123 -0
- data/lib/mt-libcouchbase/query_view.rb +135 -0
- data/lib/mt-libcouchbase/results_fiber.rb +281 -0
- data/lib/mt-libcouchbase/results_native.rb +220 -0
- data/lib/mt-libcouchbase/subdoc_request.rb +139 -0
- data/lib/mt-libcouchbase/version.rb +5 -0
- data/lib/mt-libcouchbase.rb +40 -0
- data/mt-libcouchbase.gemspec +68 -0
- data/spec/bucket_spec.rb +290 -0
- data/spec/connection_spec.rb +257 -0
- data/spec/design_docs_spec.rb +31 -0
- data/spec/error_spec.rb +26 -0
- data/spec/fts_spec.rb +135 -0
- data/spec/n1ql_spec.rb +260 -0
- data/spec/results_libuv_spec.rb +244 -0
- data/spec/results_native_spec.rb +259 -0
- data/spec/seed/2016-10-25T043505Z/2016-10-25T043505Z-full/bucket-default/design.json +1 -0
- data/spec/seed/2016-10-25T043505Z/2016-10-25T043505Z-full/bucket-default/node-127.0.0.1%3A8091/data-0000.cbb +0 -0
- data/spec/seed/2016-10-25T043505Z/2016-10-25T043505Z-full/bucket-default/node-127.0.0.1%3A8091/failover.json +1 -0
- data/spec/seed/2016-10-25T043505Z/2016-10-25T043505Z-full/bucket-default/node-127.0.0.1%3A8091/meta.json +1 -0
- data/spec/seed/2016-10-25T043505Z/2016-10-25T043505Z-full/bucket-default/node-127.0.0.1%3A8091/seqno.json +1 -0
- data/spec/seed/2016-10-25T043505Z/2016-10-25T043505Z-full/bucket-default/node-127.0.0.1%3A8091/snapshot_markers.json +1 -0
- data/spec/subdoc_spec.rb +192 -0
- data/spec/view_spec.rb +201 -0
- data/windows_build.md +36 -0
- metadata +873 -0
|
@@ -0,0 +1,306 @@
|
|
|
1
|
+
/* -*- Mode: C; tab-width: 4; c-basic-offset: 4; indent-tabs-mode: nil -*- */
|
|
2
|
+
/*
|
|
3
|
+
* Copyright 2018 Couchbase, Inc.
|
|
4
|
+
*
|
|
5
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
6
|
+
* you may not use this file except in compliance with the License.
|
|
7
|
+
* You may obtain a copy of the License at
|
|
8
|
+
*
|
|
9
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
10
|
+
*
|
|
11
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
12
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
13
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
14
|
+
* See the License for the specific language governing permissions and
|
|
15
|
+
* limitations under the License.
|
|
16
|
+
*/
|
|
17
|
+
|
|
18
|
+
#ifndef LCB_CRYPTO_H
|
|
19
|
+
#define LCB_CRYPTO_H
|
|
20
|
+
|
|
21
|
+
/**
|
|
22
|
+
* @file
|
|
23
|
+
* Field encryption
|
|
24
|
+
*
|
|
25
|
+
* @uncommitted
|
|
26
|
+
*/
|
|
27
|
+
|
|
28
|
+
#ifdef __cplusplus
|
|
29
|
+
extern "C" {
|
|
30
|
+
#endif
|
|
31
|
+
|
|
32
|
+
/**
|
|
33
|
+
* @ingroup lcb-public-api
|
|
34
|
+
* @defgroup lcb-crypto-api Encryption
|
|
35
|
+
* @brief Register crypto-providers and working with encrypted fields of the documents.
|
|
36
|
+
* @details
|
|
37
|
+
* These routines contain functionality to define and hook crypto providers, as well as
|
|
38
|
+
* functions which should be used for portable (cross SDK) encoding of encrypted fields.
|
|
39
|
+
*/
|
|
40
|
+
|
|
41
|
+
/**
|
|
42
|
+
* @addtogroup lcb-crypto-api
|
|
43
|
+
* @{
|
|
44
|
+
*/
|
|
45
|
+
|
|
46
|
+
/**
|
|
47
|
+
* IOV-style structure for signing functions of crypto-provider.
|
|
48
|
+
*
|
|
49
|
+
* @committed
|
|
50
|
+
*/
|
|
51
|
+
typedef struct lcbcrypto_SIGV {
|
|
52
|
+
const uint8_t *data; /**< pointer to data */
|
|
53
|
+
size_t len; /**< length of the data in bytes */
|
|
54
|
+
} lcbcrypto_SIGV;
|
|
55
|
+
|
|
56
|
+
struct lcbcrypto_PROVIDER;
|
|
57
|
+
/**
|
|
58
|
+
* Crypto-provider interface.
|
|
59
|
+
*
|
|
60
|
+
* See full example in @ref example/crypto/openssl_symmetric_provider.c
|
|
61
|
+
*
|
|
62
|
+
* @see lcbcrypto_register
|
|
63
|
+
* @see lcbcrypto_unregister
|
|
64
|
+
*
|
|
65
|
+
* @committed
|
|
66
|
+
*/
|
|
67
|
+
typedef struct lcbcrypto_PROVIDER {
|
|
68
|
+
uint16_t version; /**< version of the structure, current value is 1 */
|
|
69
|
+
int16_t _refcnt; /**< reference counter */
|
|
70
|
+
uint64_t flags; /**< provider-specific flags */
|
|
71
|
+
void *cookie; /**< opaque pointer (e.g. pointer to wrapper instance) */
|
|
72
|
+
void (*destructor)(struct lcbcrypto_PROVIDER *provider); /**< destructor function, or NULL */
|
|
73
|
+
union {
|
|
74
|
+
LCB_DEPRECATED2(
|
|
75
|
+
struct {
|
|
76
|
+
void (*release_bytes)(struct lcbcrypto_PROVIDER * provider, void *bytes);
|
|
77
|
+
lcb_error_t (*load_key)(struct lcbcrypto_PROVIDER * provider, lcbcrypto_KEYTYPE type, const char *keyid,
|
|
78
|
+
uint8_t **key, size_t *key_len);
|
|
79
|
+
lcb_error_t (*generate_iv)(struct lcbcrypto_PROVIDER * provider, uint8_t * *iv, size_t * iv_len);
|
|
80
|
+
lcb_error_t (*sign)(struct lcbcrypto_PROVIDER * provider, const lcbcrypto_SIGV *inputs,
|
|
81
|
+
size_t input_num, uint8_t **sig, size_t *sig_len);
|
|
82
|
+
lcb_error_t (*verify_signature)(struct lcbcrypto_PROVIDER * provider, const lcbcrypto_SIGV *inputs,
|
|
83
|
+
size_t input_num, uint8_t *sig, size_t sig_len);
|
|
84
|
+
lcb_error_t (*encrypt)(struct lcbcrypto_PROVIDER * provider, const uint8_t *input, size_t input_len,
|
|
85
|
+
const uint8_t *key, size_t key_len, const uint8_t *iv, size_t iv_len,
|
|
86
|
+
uint8_t **output, size_t *output_len);
|
|
87
|
+
lcb_error_t (*decrypt)(struct lcbcrypto_PROVIDER * provider, const uint8_t *input, size_t input_len,
|
|
88
|
+
const uint8_t *key, size_t key_len, const uint8_t *iv, size_t iv_len,
|
|
89
|
+
uint8_t **output, size_t *output_len);
|
|
90
|
+
} v0,
|
|
91
|
+
"v0 crypto API has been deprecated, use v1");
|
|
92
|
+
struct {
|
|
93
|
+
/** function to use when the library wants to deallocate memory, returned by provider */
|
|
94
|
+
void (*release_bytes)(struct lcbcrypto_PROVIDER *provider, void *bytes);
|
|
95
|
+
/** initialization vector (IV) generator */
|
|
96
|
+
lcb_error_t (*generate_iv)(struct lcbcrypto_PROVIDER *provider, uint8_t **iv, size_t *iv_len);
|
|
97
|
+
/** generate cryptographic signature for the data */
|
|
98
|
+
lcb_error_t (*sign)(struct lcbcrypto_PROVIDER *provider, const lcbcrypto_SIGV *inputs, size_t input_num,
|
|
99
|
+
uint8_t **sig, size_t *sig_len);
|
|
100
|
+
/** verify signature of the data */
|
|
101
|
+
lcb_error_t (*verify_signature)(struct lcbcrypto_PROVIDER *provider, const lcbcrypto_SIGV *inputs,
|
|
102
|
+
size_t input_num, uint8_t *sig, size_t sig_len);
|
|
103
|
+
/** encrypt data */
|
|
104
|
+
lcb_error_t (*encrypt)(struct lcbcrypto_PROVIDER *provider, const uint8_t *input, size_t input_len,
|
|
105
|
+
const uint8_t *iv, size_t iv_len, uint8_t **output, size_t *output_len);
|
|
106
|
+
/** decrypt data */
|
|
107
|
+
lcb_error_t (*decrypt)(struct lcbcrypto_PROVIDER *provider, const uint8_t *input, size_t input_len,
|
|
108
|
+
const uint8_t *iv, size_t iv_len, uint8_t **output, size_t *output_len);
|
|
109
|
+
/** returns key identifier, associated with the crypto-provider */
|
|
110
|
+
const char *(*get_key_id)(struct lcbcrypto_PROVIDER *provider);
|
|
111
|
+
} v1;
|
|
112
|
+
} v;
|
|
113
|
+
} lcbcrypto_PROVIDER;
|
|
114
|
+
|
|
115
|
+
/**
|
|
116
|
+
* Structure for JSON field specification for encrypt/decrypt API.
|
|
117
|
+
*
|
|
118
|
+
* @see lcbcrypto_encrypt_fields
|
|
119
|
+
* @see lcbcrypto_decrypt_fields
|
|
120
|
+
*
|
|
121
|
+
* @committed
|
|
122
|
+
*/
|
|
123
|
+
typedef struct lcbcrypto_FIELDSPEC {
|
|
124
|
+
const char *name; /**< field name (NUL-terminated) */
|
|
125
|
+
const char *alg; /**< crypto provider alias (NUL-terminated) */
|
|
126
|
+
LCB_DEPRECATED2(const char *kid,
|
|
127
|
+
"Do not use kid field. Encryption keys have to be part of the provider implementation");
|
|
128
|
+
} lcbcrypto_FIELDSPEC;
|
|
129
|
+
|
|
130
|
+
/**
|
|
131
|
+
* Command to encrypt JSON fields.
|
|
132
|
+
*
|
|
133
|
+
* @see lcbcrypto_encrypt_fields
|
|
134
|
+
* @committed
|
|
135
|
+
*/
|
|
136
|
+
typedef struct lcbcrypto_CMDENCRYPT {
|
|
137
|
+
uint16_t version; /**< version of the structure, currently valid value is 0 */
|
|
138
|
+
const char *prefix; /**< prefix to encrypted field. When NULL, it will use @ref LCBCRYPTO_DEFAULT_FIELD_PREFIX */
|
|
139
|
+
const char *doc; /**< pointer to the input JSON document */
|
|
140
|
+
size_t ndoc; /**< size of the input JSON document */
|
|
141
|
+
char *out; /**< pointer to output JSON document. When no changes were applied, this field will be set to NULL */
|
|
142
|
+
size_t nout; /**< size of the output JSON document */
|
|
143
|
+
lcbcrypto_FIELDSPEC *fields; /**< list of field specs */
|
|
144
|
+
size_t nfields; /**< number of field specs */
|
|
145
|
+
} lcbcrypto_CMDENCRYPT;
|
|
146
|
+
|
|
147
|
+
/**
|
|
148
|
+
* Command to decrypt JSON fields.
|
|
149
|
+
*
|
|
150
|
+
* @see lcbcrypto_decrypt_fields
|
|
151
|
+
* @committed
|
|
152
|
+
*/
|
|
153
|
+
typedef struct lcbcrypto_CMDDECRYPT {
|
|
154
|
+
uint16_t version; /**< version of the structure, currently valid value is 0 */
|
|
155
|
+
const char *prefix; /**< prefix to encrypted field. When NULL, it will use @ref LCBCRYPTO_DEFAULT_FIELD_PREFIX */
|
|
156
|
+
const char *doc; /**< pointer to the input JSON document */
|
|
157
|
+
size_t ndoc; /**< size of the input JSON document */
|
|
158
|
+
char *out; /**< pointer to output JSON document. When no changes were applied, this field will be set to NULL */
|
|
159
|
+
size_t nout; /**< size of the output JSON document */
|
|
160
|
+
lcbcrypto_FIELDSPEC *fields; /**< list of field specs */
|
|
161
|
+
size_t nfields; /**< number of field specs */
|
|
162
|
+
} lcbcrypto_CMDDECRYPT;
|
|
163
|
+
|
|
164
|
+
/**
|
|
165
|
+
* Register crypto-provider for specified alias.
|
|
166
|
+
*
|
|
167
|
+
* See full example in @ref example/crypto/openssl_symmetric_provider.c
|
|
168
|
+
*
|
|
169
|
+
* @param instance the handle
|
|
170
|
+
* @param name provider alias, this will be recorded in JSON.
|
|
171
|
+
* @param provider implementation of the crypto-provider
|
|
172
|
+
*
|
|
173
|
+
* @par Register provider as "AES-256-HMAC-SHA256".
|
|
174
|
+
* @code{.c}
|
|
175
|
+
* lcbcrypto_PROVIDER *provider = calloc(1, sizeof(lcbcrypto_PROVIDER));
|
|
176
|
+
* provider->version = 1;
|
|
177
|
+
* provider->destructor = osp_free;
|
|
178
|
+
* provider->v.v1.release_bytes = osp_release_bytes;
|
|
179
|
+
* provider->v.v1.generate_iv = osp_generate_iv;
|
|
180
|
+
* provider->v.v1.sign = osp_sign;
|
|
181
|
+
* provider->v.v1.verify_signature = osp_verify_signature;
|
|
182
|
+
* provider->v.v1.encrypt = osp_encrypt;
|
|
183
|
+
* provider->v.v1.decrypt = osp_decrypt;
|
|
184
|
+
* provider->v.v1.get_key_id = osp_get_key_id;
|
|
185
|
+
* lcbcrypto_register(instance, "AES-256-HMAC-SHA256", provider);
|
|
186
|
+
* @endcode
|
|
187
|
+
*/
|
|
188
|
+
LIBCOUCHBASE_API void lcbcrypto_register(lcb_t instance, const char *name, lcbcrypto_PROVIDER *provider);
|
|
189
|
+
|
|
190
|
+
/**
|
|
191
|
+
* Unregister crypto-provider for specified alias.
|
|
192
|
+
*
|
|
193
|
+
* See full example in @ref example/crypto/openssl_symmetric_provider.c
|
|
194
|
+
*
|
|
195
|
+
* @param instance the handle
|
|
196
|
+
* @param name provider alias.
|
|
197
|
+
*/
|
|
198
|
+
LIBCOUCHBASE_API void lcbcrypto_unregister(lcb_t instance, const char *name);
|
|
199
|
+
|
|
200
|
+
/**
|
|
201
|
+
* Increment reference counter for crypto-provider.
|
|
202
|
+
*
|
|
203
|
+
* @param provider provider instance
|
|
204
|
+
*/
|
|
205
|
+
LIBCOUCHBASE_API void lcbcrypto_ref(lcbcrypto_PROVIDER *provider);
|
|
206
|
+
|
|
207
|
+
/**
|
|
208
|
+
* Decrement reference counter for crypto-provider.
|
|
209
|
+
*
|
|
210
|
+
* It calls destructor once counter reaches zero. The provider instance should not be used after calling this function.
|
|
211
|
+
*
|
|
212
|
+
* @param provider provider instance
|
|
213
|
+
*/
|
|
214
|
+
LIBCOUCHBASE_API void lcbcrypto_unref(lcbcrypto_PROVIDER *provider);
|
|
215
|
+
|
|
216
|
+
/**
|
|
217
|
+
* Default prefix for encrypted JSON fields.
|
|
218
|
+
*/
|
|
219
|
+
#define LCBCRYPTO_DEFAULT_FIELD_PREFIX "__crypt_"
|
|
220
|
+
|
|
221
|
+
/**
|
|
222
|
+
* Encrypt all specified fields in the JSON encoded object.
|
|
223
|
+
*
|
|
224
|
+
* The function will remove original content of the field, and rename it using @ref LCBCRYPTO_DEFAULT_FIELD_PREFIX, or
|
|
225
|
+
* custom prefix, specified in the command.
|
|
226
|
+
*
|
|
227
|
+
* See full example in @ref example/crypto/openssl_symmetric_encrypt.c
|
|
228
|
+
*
|
|
229
|
+
* @param instance the handle
|
|
230
|
+
* @param cmd the command structure
|
|
231
|
+
* @return LCB_SUCCESS if successful, an error code otherwise
|
|
232
|
+
*
|
|
233
|
+
* @par Encrypt field "message" in the document using provider registered as "AES-256-HMAC-SHA256"
|
|
234
|
+
* @code{.c}
|
|
235
|
+
* lcbcrypto_CMDENCRYPT cmd = {};
|
|
236
|
+
* lcbcrypto_FIELDSPEC field = {};
|
|
237
|
+
* lcb_error_t err;
|
|
238
|
+
*
|
|
239
|
+
* cmd.version = 0;
|
|
240
|
+
* cmd.prefix = NULL;
|
|
241
|
+
* cmd.doc = "{\"message\":\"hello world\"}";
|
|
242
|
+
* cmd.ndoc = strlen(cmd.doc);
|
|
243
|
+
* cmd.nfields = 1;
|
|
244
|
+
* cmd.fields = &field;
|
|
245
|
+
* field.name = "message";
|
|
246
|
+
* field.alg = "AES-256-HMAC-SHA256";
|
|
247
|
+
*
|
|
248
|
+
* err = lcbcrypto_encrypt_fields(instance, &cmd);
|
|
249
|
+
* @endcode
|
|
250
|
+
*
|
|
251
|
+
* @committed
|
|
252
|
+
*/
|
|
253
|
+
LIBCOUCHBASE_API lcb_error_t lcbcrypto_encrypt_fields(lcb_t instance, lcbcrypto_CMDENCRYPT *cmd);
|
|
254
|
+
|
|
255
|
+
/**
|
|
256
|
+
* Decrypt all specified fields in the JSON encoded object.
|
|
257
|
+
*
|
|
258
|
+
* The function will remove original content of the field, and rename it using @ref LCBCRYPTO_DEFAULT_FIELD_PREFIX, or
|
|
259
|
+
* custom prefix, specified in the command.
|
|
260
|
+
*
|
|
261
|
+
* See full example in @ref example/crypto/openssl_symmetric_decrypt.c
|
|
262
|
+
*
|
|
263
|
+
* @param instance the handle
|
|
264
|
+
* @param cmd the command structure
|
|
265
|
+
* @return LCB_SUCCESS if successful, an error code otherwise
|
|
266
|
+
*
|
|
267
|
+
* @par Decrypt field "message" in the document using provider registered as "AES-256-HMAC-SHA256"
|
|
268
|
+
* @code{.c}
|
|
269
|
+
* lcbcrypto_CMDDECRYPT cmd = {};
|
|
270
|
+
* lcbcrypto_FIELDSPEC field = {};
|
|
271
|
+
* lcb_error_t err;
|
|
272
|
+
*
|
|
273
|
+
* cmd.version = 0;
|
|
274
|
+
* cmd.prefix = NULL;
|
|
275
|
+
* cmd.doc = "{\"__crypt_message\":{" \
|
|
276
|
+
* "\"alg\":\"AES-256-HMAC-SHA256\"," \
|
|
277
|
+
* "\"ciphertext\":\"gYuyEhf6S0AiMGZJZZV35Q==\"," \
|
|
278
|
+
* "\"iv\":\"ZedmvjWy0lIrLn6OmQmNqQ==\"," \
|
|
279
|
+
* "\"kid\":\"mykeyid\"," \
|
|
280
|
+
* "\"sig\":\"FgleInW3Iia04XqLbm5Hd3qVoa77Ocs7g2x4pOutEtY=\"}" \
|
|
281
|
+
* "}";
|
|
282
|
+
* cmd.ndoc = strlen(cmd.doc);
|
|
283
|
+
* cmd.nfields = 1;
|
|
284
|
+
* cmd.fields = &field;
|
|
285
|
+
* field.name = "message";
|
|
286
|
+
* field.alg = "AES-256-HMAC-SHA256";
|
|
287
|
+
*
|
|
288
|
+
* err = lcbcrypto_decrypt_fields(instance, &cmd);
|
|
289
|
+
* @endcode
|
|
290
|
+
*
|
|
291
|
+
* @committed
|
|
292
|
+
*/
|
|
293
|
+
LIBCOUCHBASE_API lcb_error_t lcbcrypto_decrypt_fields(lcb_t instance, lcbcrypto_CMDDECRYPT *cmd);
|
|
294
|
+
/**@}*/
|
|
295
|
+
|
|
296
|
+
/** @deprecated Use @ref lcbcrypto_encrypt_fields() */
|
|
297
|
+
LCB_DEPR_API2(lcb_error_t lcbcrypto_encrypt_document(lcb_t instance, lcbcrypto_CMDENCRYPT *cmd),
|
|
298
|
+
"Use lcbcrypto_encrypt_fields");
|
|
299
|
+
/** @deprecated Use @ref lcbcrypto_decrypt_fields() */
|
|
300
|
+
LCB_DEPR_API2(lcb_error_t lcbcrypto_decrypt_document(lcb_t instance, lcbcrypto_CMDDECRYPT *cmd),
|
|
301
|
+
"Use lcbcrypto_decrypt_fields");
|
|
302
|
+
|
|
303
|
+
#ifdef __cplusplus
|
|
304
|
+
}
|
|
305
|
+
#endif
|
|
306
|
+
#endif /* LCB_CRYPTO_H */
|
|
@@ -0,0 +1,312 @@
|
|
|
1
|
+
/* -*- Mode: C; tab-width: 4; c-basic-offset: 4; indent-tabs-mode: nil -*- */
|
|
2
|
+
/*
|
|
3
|
+
* Copyright 2014 Couchbase, Inc.
|
|
4
|
+
*
|
|
5
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
6
|
+
* you may not use this file except in compliance with the License.
|
|
7
|
+
* You may obtain a copy of the License at
|
|
8
|
+
*
|
|
9
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
10
|
+
*
|
|
11
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
12
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
13
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
14
|
+
* See the License for the specific language governing permissions and
|
|
15
|
+
* limitations under the License.
|
|
16
|
+
*/
|
|
17
|
+
|
|
18
|
+
#ifndef LCB_DEPRECATED_H
|
|
19
|
+
#define LCB_DEPRECATED_H
|
|
20
|
+
#ifndef LIBCOUCHBASE_COUCHBASE_H
|
|
21
|
+
#error "include <libcouchbase/couchbase.h> first"
|
|
22
|
+
#endif
|
|
23
|
+
|
|
24
|
+
#ifdef __cplusplus
|
|
25
|
+
extern "C" {
|
|
26
|
+
#endif
|
|
27
|
+
|
|
28
|
+
/**@file
|
|
29
|
+
* Deprecated APIs
|
|
30
|
+
*/
|
|
31
|
+
|
|
32
|
+
#define LCB_DEPR_API(X) LIBCOUCHBASE_API LCB_DEPRECATED(X)
|
|
33
|
+
#define LCB_DEPR_API2(X, reason) LIBCOUCHBASE_API LCB_DEPRECATED2(X, reason)
|
|
34
|
+
|
|
35
|
+
/** @deprecated Use @ref LCB_CNTL_IP6POLICY via lcb_cntl() */
|
|
36
|
+
LCB_DEPR_API2(void lcb_behavior_set_ipv6(lcb_t instance, lcb_ipv6_t mode), "Use LCB_CNTL_IP6POLICY");
|
|
37
|
+
/** @deprecated Use @ref LCB_CNTL_IP6POLICY via lcb_cntl() */
|
|
38
|
+
LCB_DEPR_API2(lcb_ipv6_t lcb_behavior_get_ipv6(lcb_t instance), "Use LCB_CNTL_IP6POLICY");
|
|
39
|
+
/** @deprecated Use @ref LCB_CNTL_CONFERRTHRESH via lcb_cntl() */
|
|
40
|
+
LCB_DEPR_API2(void lcb_behavior_set_config_errors_threshold(lcb_t instance, lcb_size_t num_events),
|
|
41
|
+
"Use LCB_CNTL_CONFERRTHRESH");
|
|
42
|
+
/** @deprecated Use @ref LCB_CNTL_CONFERRTHRESH via lcb_cntl() */
|
|
43
|
+
LCB_DEPR_API2(lcb_size_t lcb_behavior_get_config_errors_threshold(lcb_t instance),
|
|
44
|
+
"Use LCB_CNTL_CONFERRTHRESH");
|
|
45
|
+
/** @deprecated Use @ref LCB_CNTL_OP_TIMEOUT via lcb_cntl() */
|
|
46
|
+
LCB_DEPR_API2(void lcb_set_timeout(lcb_t instance, lcb_uint32_t usec),
|
|
47
|
+
"Use LCB_CNTL_OP_TIMEOUT");
|
|
48
|
+
/** @deprecated Use @ref LCB_CNTL_OP_TIMEOUT via lcb_cntl() */
|
|
49
|
+
LCB_DEPR_API2(lcb_uint32_t lcb_get_timeout(lcb_t instance),
|
|
50
|
+
"Use LCB_CNTL_OP_TIMEOUT");
|
|
51
|
+
/** @deprecated Use @ref LCB_CNTL_VIEW_TIMEOUT via lcb_cntl() */
|
|
52
|
+
LCB_DEPR_API2(void lcb_set_view_timeout(lcb_t instance, lcb_uint32_t usec),
|
|
53
|
+
"Use LCB_CNTL_VIEW_TIMEOUT");
|
|
54
|
+
/** @deprecated Use @ref LCB_CNTL_VIEW_TIMEOUT via lcb_cntl() */
|
|
55
|
+
LCB_DEPR_API2(lcb_uint32_t lcb_get_view_timeout(lcb_t instance),
|
|
56
|
+
"Use LCB_CNTL_VIEW_TIMEOUT");
|
|
57
|
+
|
|
58
|
+
/**
|
|
59
|
+
* @deprecated Do not use this function. Check the error code of the specific operation
|
|
60
|
+
* to determine if something succeeded or not. Because the library has many
|
|
61
|
+
* asynchronous "flows" of control, determining the "last error" is not very
|
|
62
|
+
* fruitful. Since most API calls are themselves only schedule-related, they cannot
|
|
63
|
+
* possibly derive a "Real" error either
|
|
64
|
+
*/
|
|
65
|
+
LCB_DEPR_API2(lcb_error_t lcb_get_last_error(lcb_t instance),
|
|
66
|
+
"This function does not returning meaningful information. Use the operation callbacks "
|
|
67
|
+
"and/or bootstrap callbacks");
|
|
68
|
+
|
|
69
|
+
/** @deprecated This function does nothing */
|
|
70
|
+
LCB_DEPR_API2(void lcb_flush_buffers(lcb_t instance, const void *cookie),
|
|
71
|
+
"This function does nothing");
|
|
72
|
+
|
|
73
|
+
/** I'm not sure what uses this anymore */
|
|
74
|
+
typedef enum {
|
|
75
|
+
LCB_VBUCKET_STATE_ACTIVE = 1, /* Actively servicing a vbucket. */
|
|
76
|
+
LCB_VBUCKET_STATE_REPLICA = 2, /* Servicing a vbucket as a replica only. */
|
|
77
|
+
LCB_VBUCKET_STATE_PENDING = 3, /* Pending active. */
|
|
78
|
+
LCB_VBUCKET_STATE_DEAD = 4 /* Not in use, pending deletion. */
|
|
79
|
+
} lcb_vbucket_state_t;
|
|
80
|
+
|
|
81
|
+
typedef void (*lcb_error_callback)(lcb_t instance, lcb_error_t error, const char *errinfo);
|
|
82
|
+
|
|
83
|
+
/**
|
|
84
|
+
* @deprecated Use the logging API (@ref LCB_CNTL_LOGGER) instead to receive error
|
|
85
|
+
* information. For programmatic errors, use the operations interface. For bootstrap
|
|
86
|
+
* status, use lcb_get_bootstrap_status() and lcb_set_bootstrap_callback()
|
|
87
|
+
*/
|
|
88
|
+
LCB_DEPR_API2(lcb_error_callback lcb_set_error_callback(lcb_t, lcb_error_callback),
|
|
89
|
+
"This function only reports bootstrap errors. Use lcb_set_bootstrap_callback instead");
|
|
90
|
+
|
|
91
|
+
|
|
92
|
+
|
|
93
|
+
/**
|
|
94
|
+
* Timer stuff is deprecated. It should not be used externally, and internal
|
|
95
|
+
* code should use the new lcbio_timer_ functions
|
|
96
|
+
*/
|
|
97
|
+
struct lcb_timer_st;
|
|
98
|
+
typedef struct lcb_timer_st *lcb_timer_t;
|
|
99
|
+
typedef void (*lcb_timer_callback)(lcb_timer_t timer, lcb_t instance, const void *cookie);
|
|
100
|
+
LCB_DEPR_API(lcb_timer_t lcb_timer_create(lcb_t instance, const void *command_cookie, lcb_uint32_t usec, int periodic, lcb_timer_callback callback, lcb_error_t *error));
|
|
101
|
+
LCB_DEPR_API(lcb_error_t lcb_timer_destroy(lcb_t instance, lcb_timer_t timer));
|
|
102
|
+
|
|
103
|
+
typedef enum lcb_compat_t { LCB_MEMCACHED_CLUSTER = 0x00, LCB_CACHED_CONFIG = 0x01 } lcb_compat_t;
|
|
104
|
+
typedef lcb_compat_t lcb_cluster_t;
|
|
105
|
+
struct lcb_memcached_st { const char *serverlist; const char *username; const char *password; };
|
|
106
|
+
struct lcb_cached_config_st {
|
|
107
|
+
const char *cachefile;
|
|
108
|
+
struct lcb_create_st createopt;
|
|
109
|
+
};
|
|
110
|
+
|
|
111
|
+
/**
|
|
112
|
+
* @deprecated
|
|
113
|
+
* Use @ref LCB_CNTL_CONFIGCACHE for configuration cache options
|
|
114
|
+
*/
|
|
115
|
+
#define lcb_create_compat lcb__create_compat_230
|
|
116
|
+
LCB_DEPR_API2(lcb_error_t lcb_create_compat(lcb_compat_t type, const void *specific, lcb_t *instance, struct lcb_io_opt_st *io),
|
|
117
|
+
"Use memcached:// for legacy memcached. For config cache, use LCB_CNTL_CONFIGCACHE");
|
|
118
|
+
|
|
119
|
+
typedef enum {
|
|
120
|
+
LCB_ASYNCHRONOUS = 0x00,
|
|
121
|
+
LCB_SYNCHRONOUS = 0xff
|
|
122
|
+
} lcb_syncmode_t;
|
|
123
|
+
LCB_DEPR_API2(void lcb_behavior_set_syncmode(lcb_t, lcb_syncmode_t),
|
|
124
|
+
"Syncmode will be removed in future versions. Use lcb_wait() instead");
|
|
125
|
+
LCB_DEPR_API2(lcb_syncmode_t lcb_behavior_get_syncmode(lcb_t),
|
|
126
|
+
"Syncmode will be removed in future versions. Use lcb_wait() instead");
|
|
127
|
+
|
|
128
|
+
LCB_DEPR_API2(const char *lcb_get_host(lcb_t),
|
|
129
|
+
"Use lcb_get_node(instance, LCB_NODE_HTCONFIG, 0)");
|
|
130
|
+
LCB_DEPR_API2(const char *lcb_get_port(lcb_t),
|
|
131
|
+
"Use lcb_get_node(instance, LCB_NODE_HTCONFIG, 0)");
|
|
132
|
+
|
|
133
|
+
/* STRUCTURE ABBREV ID MAXVER */
|
|
134
|
+
#define LCB_XSSIZES(X) \
|
|
135
|
+
X(struct lcb_create_st, C_ST, 0, 3) \
|
|
136
|
+
X(struct lcb_create_io_ops_st, C_I_O_ST, 1, 1) \
|
|
137
|
+
\
|
|
138
|
+
X(struct lcb_get_cmd_st, G_C_ST, 2, 0) \
|
|
139
|
+
X(struct lcb_get_replica_cmd_st, G_R_C_ST, 3, 1) \
|
|
140
|
+
X(struct lcb_unlock_cmd_st, U_C_ST, 4, 0) \
|
|
141
|
+
X(lcb_touch_cmd_t, T_C_ST, 5, 0) \
|
|
142
|
+
X(struct lcb_store_cmd_st, S_C_ST, 6, 0) \
|
|
143
|
+
X(struct lcb_arithmetic_cmd_st, A_C_ST, 7, 0) \
|
|
144
|
+
X(struct lcb_observe_cmd_st, O_C_ST, 8, 0) \
|
|
145
|
+
X(struct lcb_remove_cmd_st, R_C_ST, 9, 0) \
|
|
146
|
+
X(struct lcb_http_cmd_st, H_C_ST, 10, 1) \
|
|
147
|
+
X(struct lcb_server_stats_cmd_st, S_S_C_ST, 11, 0) \
|
|
148
|
+
X(struct lcb_server_version_cmd_st, S_V_C_ST, 12, 0) \
|
|
149
|
+
X(struct lcb_verbosity_cmd_st, V_C_ST, 13, 0) \
|
|
150
|
+
X(struct lcb_flush_cmd_st, F_C_ST, 14, 0) \
|
|
151
|
+
\
|
|
152
|
+
X(lcb_get_resp_t, G_R_ST, 15, 0) \
|
|
153
|
+
X(lcb_store_resp_t, S_R_ST, 16, 0) \
|
|
154
|
+
X(lcb_remove_resp_t, R_R_ST, 17, 0) \
|
|
155
|
+
X(lcb_touch_resp_t, T_R_ST, 18, 0) \
|
|
156
|
+
X(lcb_unlock_resp_t, U_R_ST, 19, 0) \
|
|
157
|
+
X(lcb_arithmetic_resp_t, A_R_ST, 20, 0) \
|
|
158
|
+
X(lcb_observe_resp_t, O_R_ST, 21, 0) \
|
|
159
|
+
X(lcb_http_resp_t, H_R_ST, 22, 0) \
|
|
160
|
+
X(lcb_server_stat_resp_t, S_S_R_ST, 23, 0) \
|
|
161
|
+
X(lcb_server_version_resp_t, S_V_R_ST, 24, 0) \
|
|
162
|
+
X(lcb_verbosity_resp_t, V_R_ST, 25, 0) \
|
|
163
|
+
X(lcb_flush_resp_t, F_R_ST, 26, 0)
|
|
164
|
+
|
|
165
|
+
typedef enum {
|
|
166
|
+
#define X(sname, sabbrev, idval, vernum) \
|
|
167
|
+
LCB_##sabbrev##_ID = idval, LCB_##sabbrev##_V = vernum,
|
|
168
|
+
LCB_XSSIZES(X)
|
|
169
|
+
LCB_ST_M = 26
|
|
170
|
+
#undef X
|
|
171
|
+
} lcb__STRUCTSIZES;
|
|
172
|
+
|
|
173
|
+
#define lcb_verify_compiler_setup() ( \
|
|
174
|
+
lcb_verify_struct_size(LCB_C_ST_ID, LCB_C_ST_V, sizeof(struct lcb_create_st)) == LCB_SUCCESS && \
|
|
175
|
+
lcb_verify_struct_size(LCB_C_I_O_ST_ID, LCB_C_I_O_ST_V, sizeof(struct lcb_create_io_ops_st)) == LCB_SUCCESS && \
|
|
176
|
+
lcb_verify_struct_size(LCB_G_C_ST_ID, LCB_G_C_ST_V, sizeof(struct lcb_get_cmd_st)) == LCB_SUCCESS && \
|
|
177
|
+
lcb_verify_struct_size(LCB_G_R_C_ST_ID, LCB_G_R_C_ST_V, sizeof(struct lcb_get_replica_cmd_st)) == LCB_SUCCESS && \
|
|
178
|
+
lcb_verify_struct_size(LCB_U_C_ST_ID, LCB_U_C_ST_V, sizeof(struct lcb_unlock_cmd_st)) == LCB_SUCCESS && \
|
|
179
|
+
lcb_verify_struct_size(LCB_T_C_ST_ID, LCB_T_C_ST_V, sizeof(lcb_touch_cmd_t)) == LCB_SUCCESS && \
|
|
180
|
+
lcb_verify_struct_size(LCB_S_C_ST_ID, LCB_S_C_ST_V, sizeof(struct lcb_store_cmd_st)) == LCB_SUCCESS && \
|
|
181
|
+
lcb_verify_struct_size(LCB_A_C_ST_ID, LCB_A_C_ST_V, sizeof(struct lcb_arithmetic_cmd_st)) == LCB_SUCCESS && \
|
|
182
|
+
lcb_verify_struct_size(LCB_O_C_ST_ID, LCB_O_C_ST_V, sizeof(struct lcb_observe_cmd_st)) == LCB_SUCCESS && \
|
|
183
|
+
lcb_verify_struct_size(LCB_R_C_ST_ID, LCB_R_C_ST_V, sizeof(struct lcb_remove_cmd_st)) == LCB_SUCCESS && \
|
|
184
|
+
lcb_verify_struct_size(LCB_H_C_ST_ID, LCB_H_C_ST_V, sizeof(struct lcb_http_cmd_st)) == LCB_SUCCESS && \
|
|
185
|
+
lcb_verify_struct_size(LCB_S_S_C_ST_ID, LCB_S_S_C_ST_V, sizeof(struct lcb_server_stats_cmd_st)) == LCB_SUCCESS && \
|
|
186
|
+
lcb_verify_struct_size(LCB_S_V_C_ST_ID, LCB_S_V_C_ST_V, sizeof(struct lcb_server_version_cmd_st)) == LCB_SUCCESS && \
|
|
187
|
+
lcb_verify_struct_size(LCB_V_C_ST_ID, LCB_V_C_ST_V, sizeof(struct lcb_verbosity_cmd_st)) == LCB_SUCCESS && \
|
|
188
|
+
lcb_verify_struct_size(LCB_F_C_ST_ID, LCB_F_C_ST_V, sizeof(struct lcb_flush_cmd_st)) == LCB_SUCCESS && \
|
|
189
|
+
lcb_verify_struct_size(LCB_G_R_ST_ID, LCB_G_R_ST_V, sizeof(lcb_get_resp_t)) == LCB_SUCCESS &&\
|
|
190
|
+
lcb_verify_struct_size(LCB_S_R_ST_ID, LCB_S_R_ST_V, sizeof(lcb_store_resp_t)) == LCB_SUCCESS && \
|
|
191
|
+
lcb_verify_struct_size(LCB_R_R_ST_ID, LCB_R_R_ST_V, sizeof(lcb_remove_resp_t)) == LCB_SUCCESS && \
|
|
192
|
+
lcb_verify_struct_size(LCB_T_R_ST_ID, LCB_T_R_ST_V, sizeof(lcb_touch_resp_t)) == LCB_SUCCESS && \
|
|
193
|
+
lcb_verify_struct_size(LCB_U_R_ST_ID, LCB_U_R_ST_V, sizeof(lcb_unlock_resp_t)) == LCB_SUCCESS && \
|
|
194
|
+
lcb_verify_struct_size(LCB_A_R_ST_ID, LCB_A_R_ST_V, sizeof(lcb_arithmetic_resp_t)) == LCB_SUCCESS && \
|
|
195
|
+
lcb_verify_struct_size(LCB_O_R_ST_ID, LCB_O_R_ST_V, sizeof(lcb_observe_resp_t)) == LCB_SUCCESS && \
|
|
196
|
+
lcb_verify_struct_size(LCB_H_R_ST_ID, LCB_H_R_ST_V, sizeof(lcb_http_resp_t)) == LCB_SUCCESS && \
|
|
197
|
+
lcb_verify_struct_size(LCB_S_S_R_ST_ID, LCB_S_S_R_ST_V, sizeof(lcb_server_stat_resp_t)) == LCB_SUCCESS && \
|
|
198
|
+
lcb_verify_struct_size(LCB_S_V_R_ST_ID, LCB_S_V_R_ST_V, sizeof(lcb_server_version_resp_t)) == LCB_SUCCESS && \
|
|
199
|
+
lcb_verify_struct_size(LCB_V_R_ST_ID, LCB_V_R_ST_V, sizeof(lcb_verbosity_resp_t)) == LCB_SUCCESS && \
|
|
200
|
+
lcb_verify_struct_size(LCB_F_R_ST_ID, LCB_F_R_ST_V, sizeof(lcb_flush_resp_t)) == LCB_SUCCESS \
|
|
201
|
+
)
|
|
202
|
+
|
|
203
|
+
/**
|
|
204
|
+
* Verify that libcouchbase and yourself have the same size for a
|
|
205
|
+
* certain version of a struct. Using different alignment / struct
|
|
206
|
+
* packing will give you strange results..
|
|
207
|
+
*
|
|
208
|
+
* @param id the id of the structure to check
|
|
209
|
+
* @param version the version of the structure to check
|
|
210
|
+
* @param size the expected size of the structure
|
|
211
|
+
* @return LCB_SUCCESS on success
|
|
212
|
+
*/
|
|
213
|
+
LIBCOUCHBASE_API
|
|
214
|
+
lcb_error_t lcb_verify_struct_size(lcb_uint32_t id, lcb_uint32_t version,
|
|
215
|
+
lcb_size_t size);
|
|
216
|
+
|
|
217
|
+
/** Deprecated cntls */
|
|
218
|
+
|
|
219
|
+
/**@deprecated It is currently not possible to adjust buffer sizes */
|
|
220
|
+
#define LCB_CNTL_RBUFSIZE 0x02
|
|
221
|
+
/**@deprecated It is currently not possible to adjust buffer sizes */
|
|
222
|
+
#define LCB_CNTL_WBUFSIZE 0x03
|
|
223
|
+
/** @deprecated */
|
|
224
|
+
#define LCB_CNTL_SYNCMODE 0x0a
|
|
225
|
+
/**@deprecated Initial connections are always attempted */
|
|
226
|
+
#define LCB_CNTL_SKIP_CONFIGURATION_ERRORS_ON_CONNECT 0x13
|
|
227
|
+
|
|
228
|
+
/**@deprecated Use error classifiers */
|
|
229
|
+
#define lcb_is_error_enomem(a) ((a == LCB_CLIENT_ENOMEM) || (a == LCB_ENOMEM))
|
|
230
|
+
/**@deprecated Use error classifiers */
|
|
231
|
+
#define lcb_is_error_etmpfail(a) ((a == LCB_CLIENT_ETMPFAIL) || (a == LCB_ETMPFAIL))
|
|
232
|
+
|
|
233
|
+
typedef enum {
|
|
234
|
+
LCB_CONFIGURATION_NEW = 0x00,
|
|
235
|
+
LCB_CONFIGURATION_CHANGED = 0x01,
|
|
236
|
+
LCB_CONFIGURATION_UNCHANGED = 0x02
|
|
237
|
+
} lcb_configuration_t;
|
|
238
|
+
|
|
239
|
+
typedef void (*lcb_configuration_callback)(lcb_t instance, lcb_configuration_t config);
|
|
240
|
+
|
|
241
|
+
/**@deprecated - Use lcb_set_bootstrap_callback() */
|
|
242
|
+
LCB_DEPR_API2(
|
|
243
|
+
lcb_configuration_callback lcb_set_configuration_callback(lcb_t, lcb_configuration_callback),
|
|
244
|
+
"use lcb_set_bootstrap_callback() to determine when client is ready");
|
|
245
|
+
|
|
246
|
+
/* Deprecated HTTP "Status Aliases" */
|
|
247
|
+
typedef enum {
|
|
248
|
+
LCB_HTTP_STATUS_CONTINUE = 100,
|
|
249
|
+
LCB_HTTP_STATUS_SWITCHING_PROTOCOLS = 101,
|
|
250
|
+
LCB_HTTP_STATUS_PROCESSING = 102,
|
|
251
|
+
LCB_HTTP_STATUS_OK = 200,
|
|
252
|
+
LCB_HTTP_STATUS_CREATED = 201,
|
|
253
|
+
LCB_HTTP_STATUS_ACCEPTED = 202,
|
|
254
|
+
LCB_HTTP_STATUS_NON_AUTHORITATIVE_INFORMATION = 203,
|
|
255
|
+
LCB_HTTP_STATUS_NO_CONTENT = 204,
|
|
256
|
+
LCB_HTTP_STATUS_RESET_CONTENT = 205,
|
|
257
|
+
LCB_HTTP_STATUS_PARTIAL_CONTENT = 206,
|
|
258
|
+
LCB_HTTP_STATUS_MULTI_STATUS = 207,
|
|
259
|
+
LCB_HTTP_STATUS_MULTIPLE_CHOICES = 300,
|
|
260
|
+
LCB_HTTP_STATUS_MOVED_PERMANENTLY = 301,
|
|
261
|
+
LCB_HTTP_STATUS_FOUND = 302,
|
|
262
|
+
LCB_HTTP_STATUS_SEE_OTHER = 303,
|
|
263
|
+
LCB_HTTP_STATUS_NOT_MODIFIED = 304,
|
|
264
|
+
LCB_HTTP_STATUS_USE_PROXY = 305,
|
|
265
|
+
LCB_HTTP_STATUS_UNUSED = 306,
|
|
266
|
+
LCB_HTTP_STATUS_TEMPORARY_REDIRECT = 307,
|
|
267
|
+
LCB_HTTP_STATUS_BAD_REQUEST = 400,
|
|
268
|
+
LCB_HTTP_STATUS_UNAUTHORIZED = 401,
|
|
269
|
+
LCB_HTTP_STATUS_PAYMENT_REQUIRED = 402,
|
|
270
|
+
LCB_HTTP_STATUS_FORBIDDEN = 403,
|
|
271
|
+
LCB_HTTP_STATUS_NOT_FOUND = 404,
|
|
272
|
+
LCB_HTTP_STATUS_METHOD_NOT_ALLOWED = 405,
|
|
273
|
+
LCB_HTTP_STATUS_NOT_ACCEPTABLE = 406,
|
|
274
|
+
LCB_HTTP_STATUS_PROXY_AUTHENTICATION_REQUIRED = 407,
|
|
275
|
+
LCB_HTTP_STATUS_REQUEST_TIMEOUT = 408,
|
|
276
|
+
LCB_HTTP_STATUS_CONFLICT = 409,
|
|
277
|
+
LCB_HTTP_STATUS_GONE = 410,
|
|
278
|
+
LCB_HTTP_STATUS_LENGTH_REQUIRED = 411,
|
|
279
|
+
LCB_HTTP_STATUS_PRECONDITION_FAILED = 412,
|
|
280
|
+
LCB_HTTP_STATUS_REQUEST_ENTITY_TOO_LARGE = 413,
|
|
281
|
+
LCB_HTTP_STATUS_REQUEST_URI_TOO_LONG = 414,
|
|
282
|
+
LCB_HTTP_STATUS_UNSUPPORTED_MEDIA_TYPE = 415,
|
|
283
|
+
LCB_HTTP_STATUS_REQUESTED_RANGE_NOT_SATISFIABLE = 416,
|
|
284
|
+
LCB_HTTP_STATUS_EXPECTATION_FAILED = 417,
|
|
285
|
+
LCB_HTTP_STATUS_UNPROCESSABLE_ENTITY = 422,
|
|
286
|
+
LCB_HTTP_STATUS_LOCKED = 423,
|
|
287
|
+
LCB_HTTP_STATUS_FAILED_DEPENDENCY = 424,
|
|
288
|
+
LCB_HTTP_STATUS_INTERNAL_SERVER_ERROR = 500,
|
|
289
|
+
LCB_HTTP_STATUS_NOT_IMPLEMENTED = 501,
|
|
290
|
+
LCB_HTTP_STATUS_BAD_GATEWAY = 502,
|
|
291
|
+
LCB_HTTP_STATUS_SERVICE_UNAVAILABLE = 503,
|
|
292
|
+
LCB_HTTP_STATUS_GATEWAY_TIMEOUT = 504,
|
|
293
|
+
LCB_HTTP_STATUS_HTTP_VERSION_NOT_SUPPORTED = 505,
|
|
294
|
+
LCB_HTTP_STATUS_INSUFFICIENT_STORAGE = 507
|
|
295
|
+
} lcb_http_status_t;
|
|
296
|
+
|
|
297
|
+
/**
|
|
298
|
+
* @deprecated
|
|
299
|
+
*/
|
|
300
|
+
typedef enum {
|
|
301
|
+
/* encryption (e.g. private key for assymetric ciphers) */
|
|
302
|
+
LCBCRYPTO_KEY_ENCRYPT = 0,
|
|
303
|
+
/* decryption (e.g. private key for assymetric ciphers) */
|
|
304
|
+
LCBCRYPTO_KEY_DECRYPT = 1,
|
|
305
|
+
LCBCRYPTO_KEY__MAX
|
|
306
|
+
} lcbcrypto_KEYTYPE;
|
|
307
|
+
|
|
308
|
+
|
|
309
|
+
#ifdef __cplusplus
|
|
310
|
+
}
|
|
311
|
+
#endif
|
|
312
|
+
#endif
|