@platformatic/rdkafka 4.0.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.
- package/.editorconfig +5 -0
- package/.jshintignore +1 -0
- package/.jshintrc +23 -0
- package/CONTRIBUTING.md +237 -0
- package/LICENSE.txt +21 -0
- package/Makefile +94 -0
- package/README.md +630 -0
- package/bench/consumer-raw-rdkafka.js +76 -0
- package/bench/consumer-subscribe.js +77 -0
- package/bench/kafka-consumer-stream.js +100 -0
- package/bench/producer-raw-rdkafka.js +125 -0
- package/bench/producer-rdkafka.js +117 -0
- package/bench/seed.sh +38 -0
- package/binding.gyp +155 -0
- package/ci/checks/librdkafka-correct-version.js +67 -0
- package/ci/checks/librdkafka-exists.js +13 -0
- package/ci/librdkafka-defs-generator.js +193 -0
- package/ci/prepublish.js +3 -0
- package/config.d.ts +1132 -0
- package/configure +15 -0
- package/cpplint.py +6325 -0
- package/deploy.enc +0 -0
- package/deps/librdkafka/.clang-format +136 -0
- package/deps/librdkafka/.clang-format-cpp +103 -0
- package/deps/librdkafka/.dir-locals.el +10 -0
- package/deps/librdkafka/.formatignore +33 -0
- package/deps/librdkafka/.gdbmacros +19 -0
- package/deps/librdkafka/.semaphore/project.yml +43 -0
- package/deps/librdkafka/.semaphore/project_public.yml +20 -0
- package/deps/librdkafka/.semaphore/semaphore.yml +355 -0
- package/deps/librdkafka/CHANGELOG.md +1738 -0
- package/deps/librdkafka/CMakeLists.txt +291 -0
- package/deps/librdkafka/CODE_OF_CONDUCT.md +46 -0
- package/deps/librdkafka/CONFIGURATION.md +189 -0
- package/deps/librdkafka/CONTRIBUTING.md +431 -0
- package/deps/librdkafka/Doxyfile +2375 -0
- package/deps/librdkafka/INTRODUCTION.md +2173 -0
- package/deps/librdkafka/LICENSE +26 -0
- package/deps/librdkafka/LICENSE.cjson +22 -0
- package/deps/librdkafka/LICENSE.crc32c +28 -0
- package/deps/librdkafka/LICENSE.fnv1a +18 -0
- package/deps/librdkafka/LICENSE.hdrhistogram +27 -0
- package/deps/librdkafka/LICENSE.lz4 +26 -0
- package/deps/librdkafka/LICENSE.murmur2 +25 -0
- package/deps/librdkafka/LICENSE.nanopb +22 -0
- package/deps/librdkafka/LICENSE.opentelemetry +203 -0
- package/deps/librdkafka/LICENSE.pycrc +23 -0
- package/deps/librdkafka/LICENSE.queue +31 -0
- package/deps/librdkafka/LICENSE.regexp +5 -0
- package/deps/librdkafka/LICENSE.snappy +36 -0
- package/deps/librdkafka/LICENSE.tinycthread +26 -0
- package/deps/librdkafka/LICENSE.wingetopt +49 -0
- package/deps/librdkafka/LICENSES.txt +625 -0
- package/deps/librdkafka/Makefile +124 -0
- package/deps/librdkafka/README.md +199 -0
- package/deps/librdkafka/README.win32 +26 -0
- package/deps/librdkafka/STATISTICS.md +624 -0
- package/deps/librdkafka/configure +214 -0
- package/deps/librdkafka/configure.self +331 -0
- package/deps/librdkafka/debian/changelog +111 -0
- package/deps/librdkafka/debian/compat +1 -0
- package/deps/librdkafka/debian/control +71 -0
- package/deps/librdkafka/debian/copyright +99 -0
- package/deps/librdkafka/debian/gbp.conf +9 -0
- package/deps/librdkafka/debian/librdkafka++1.install +1 -0
- package/deps/librdkafka/debian/librdkafka-dev.examples +2 -0
- package/deps/librdkafka/debian/librdkafka-dev.install +9 -0
- package/deps/librdkafka/debian/librdkafka1.docs +5 -0
- package/deps/librdkafka/debian/librdkafka1.install +1 -0
- package/deps/librdkafka/debian/librdkafka1.symbols +135 -0
- package/deps/librdkafka/debian/rules +19 -0
- package/deps/librdkafka/debian/source/format +1 -0
- package/deps/librdkafka/debian/watch +2 -0
- package/deps/librdkafka/dev-conf.sh +123 -0
- package/deps/librdkafka/examples/CMakeLists.txt +79 -0
- package/deps/librdkafka/examples/Makefile +167 -0
- package/deps/librdkafka/examples/README.md +42 -0
- package/deps/librdkafka/examples/alter_consumer_group_offsets.c +338 -0
- package/deps/librdkafka/examples/consumer.c +261 -0
- package/deps/librdkafka/examples/delete_records.c +233 -0
- package/deps/librdkafka/examples/describe_cluster.c +322 -0
- package/deps/librdkafka/examples/describe_consumer_groups.c +436 -0
- package/deps/librdkafka/examples/describe_topics.c +427 -0
- package/deps/librdkafka/examples/elect_leaders.c +317 -0
- package/deps/librdkafka/examples/globals.json +11 -0
- package/deps/librdkafka/examples/idempotent_producer.c +344 -0
- package/deps/librdkafka/examples/incremental_alter_configs.c +348 -0
- package/deps/librdkafka/examples/kafkatest_verifiable_client.cpp +961 -0
- package/deps/librdkafka/examples/list_consumer_group_offsets.c +359 -0
- package/deps/librdkafka/examples/list_consumer_groups.c +365 -0
- package/deps/librdkafka/examples/list_offsets.c +327 -0
- package/deps/librdkafka/examples/misc.c +287 -0
- package/deps/librdkafka/examples/openssl_engine_example.cpp +249 -0
- package/deps/librdkafka/examples/producer.c +251 -0
- package/deps/librdkafka/examples/producer.cpp +228 -0
- package/deps/librdkafka/examples/rdkafka_complex_consumer_example.c +617 -0
- package/deps/librdkafka/examples/rdkafka_complex_consumer_example.cpp +467 -0
- package/deps/librdkafka/examples/rdkafka_consume_batch.cpp +264 -0
- package/deps/librdkafka/examples/rdkafka_example.c +853 -0
- package/deps/librdkafka/examples/rdkafka_example.cpp +679 -0
- package/deps/librdkafka/examples/rdkafka_performance.c +1781 -0
- package/deps/librdkafka/examples/transactions-older-broker.c +668 -0
- package/deps/librdkafka/examples/transactions.c +665 -0
- package/deps/librdkafka/examples/user_scram.c +492 -0
- package/deps/librdkafka/examples/win_ssl_cert_store.cpp +395 -0
- package/deps/librdkafka/lds-gen.py +73 -0
- package/deps/librdkafka/mainpage.doxy +40 -0
- package/deps/librdkafka/mklove/Makefile.base +329 -0
- package/deps/librdkafka/mklove/modules/configure.atomics +144 -0
- package/deps/librdkafka/mklove/modules/configure.base +2484 -0
- package/deps/librdkafka/mklove/modules/configure.builtin +70 -0
- package/deps/librdkafka/mklove/modules/configure.cc +186 -0
- package/deps/librdkafka/mklove/modules/configure.cxx +8 -0
- package/deps/librdkafka/mklove/modules/configure.fileversion +65 -0
- package/deps/librdkafka/mklove/modules/configure.gitversion +29 -0
- package/deps/librdkafka/mklove/modules/configure.good_cflags +18 -0
- package/deps/librdkafka/mklove/modules/configure.host +132 -0
- package/deps/librdkafka/mklove/modules/configure.lib +49 -0
- package/deps/librdkafka/mklove/modules/configure.libcurl +99 -0
- package/deps/librdkafka/mklove/modules/configure.libsasl2 +36 -0
- package/deps/librdkafka/mklove/modules/configure.libssl +147 -0
- package/deps/librdkafka/mklove/modules/configure.libzstd +58 -0
- package/deps/librdkafka/mklove/modules/configure.parseversion +95 -0
- package/deps/librdkafka/mklove/modules/configure.pic +16 -0
- package/deps/librdkafka/mklove/modules/configure.socket +20 -0
- package/deps/librdkafka/mklove/modules/configure.zlib +61 -0
- package/deps/librdkafka/mklove/modules/patches/README.md +8 -0
- package/deps/librdkafka/mklove/modules/patches/libcurl.0000-no-runtime-linking-check.patch +11 -0
- package/deps/librdkafka/mklove/modules/patches/libssl.0000-osx-rand-include-fix-OpenSSL-PR16409.patch +56 -0
- package/deps/librdkafka/packaging/RELEASE.md +311 -0
- package/deps/librdkafka/packaging/alpine/build-alpine.sh +38 -0
- package/deps/librdkafka/packaging/archlinux/PKGBUILD +30 -0
- package/deps/librdkafka/packaging/cmake/Config.cmake.in +37 -0
- package/deps/librdkafka/packaging/cmake/Modules/FindLZ4.cmake +38 -0
- package/deps/librdkafka/packaging/cmake/Modules/FindZSTD.cmake +27 -0
- package/deps/librdkafka/packaging/cmake/Modules/LICENSE.FindZstd +178 -0
- package/deps/librdkafka/packaging/cmake/README.md +38 -0
- package/deps/librdkafka/packaging/cmake/config.h.in +52 -0
- package/deps/librdkafka/packaging/cmake/parseversion.cmake +60 -0
- package/deps/librdkafka/packaging/cmake/rdkafka.pc.in +12 -0
- package/deps/librdkafka/packaging/cmake/try_compile/atomic_32_test.c +8 -0
- package/deps/librdkafka/packaging/cmake/try_compile/atomic_64_test.c +8 -0
- package/deps/librdkafka/packaging/cmake/try_compile/c11threads_test.c +14 -0
- package/deps/librdkafka/packaging/cmake/try_compile/crc32c_hw_test.c +27 -0
- package/deps/librdkafka/packaging/cmake/try_compile/dlopen_test.c +11 -0
- package/deps/librdkafka/packaging/cmake/try_compile/libsasl2_test.c +7 -0
- package/deps/librdkafka/packaging/cmake/try_compile/pthread_setname_darwin_test.c +6 -0
- package/deps/librdkafka/packaging/cmake/try_compile/pthread_setname_freebsd_test.c +7 -0
- package/deps/librdkafka/packaging/cmake/try_compile/pthread_setname_gnu_test.c +5 -0
- package/deps/librdkafka/packaging/cmake/try_compile/rand_r_test.c +7 -0
- package/deps/librdkafka/packaging/cmake/try_compile/rdkafka_setup.cmake +122 -0
- package/deps/librdkafka/packaging/cmake/try_compile/regex_test.c +10 -0
- package/deps/librdkafka/packaging/cmake/try_compile/strndup_test.c +5 -0
- package/deps/librdkafka/packaging/cmake/try_compile/sync_32_test.c +8 -0
- package/deps/librdkafka/packaging/cmake/try_compile/sync_64_test.c +8 -0
- package/deps/librdkafka/packaging/cp/README.md +13 -0
- package/deps/librdkafka/packaging/cp/check_features.c +64 -0
- package/deps/librdkafka/packaging/cp/verify-deb.sh +33 -0
- package/deps/librdkafka/packaging/cp/verify-packages.sh +48 -0
- package/deps/librdkafka/packaging/cp/verify-rpm.sh +39 -0
- package/deps/librdkafka/packaging/debian/changelog +66 -0
- package/deps/librdkafka/packaging/debian/compat +1 -0
- package/deps/librdkafka/packaging/debian/control +49 -0
- package/deps/librdkafka/packaging/debian/copyright +84 -0
- package/deps/librdkafka/packaging/debian/gbp.conf +9 -0
- package/deps/librdkafka/packaging/debian/librdkafka-dev.dirs +2 -0
- package/deps/librdkafka/packaging/debian/librdkafka-dev.examples +2 -0
- package/deps/librdkafka/packaging/debian/librdkafka-dev.install +6 -0
- package/deps/librdkafka/packaging/debian/librdkafka-dev.substvars +1 -0
- package/deps/librdkafka/packaging/debian/librdkafka.dsc +16 -0
- package/deps/librdkafka/packaging/debian/librdkafka1-dbg.substvars +1 -0
- package/deps/librdkafka/packaging/debian/librdkafka1.dirs +1 -0
- package/deps/librdkafka/packaging/debian/librdkafka1.install +2 -0
- package/deps/librdkafka/packaging/debian/librdkafka1.postinst.debhelper +5 -0
- package/deps/librdkafka/packaging/debian/librdkafka1.postrm.debhelper +5 -0
- package/deps/librdkafka/packaging/debian/librdkafka1.symbols +64 -0
- package/deps/librdkafka/packaging/debian/rules +19 -0
- package/deps/librdkafka/packaging/debian/source/format +1 -0
- package/deps/librdkafka/packaging/debian/watch +2 -0
- package/deps/librdkafka/packaging/get_version.py +21 -0
- package/deps/librdkafka/packaging/homebrew/README.md +15 -0
- package/deps/librdkafka/packaging/homebrew/brew-update-pr.sh +31 -0
- package/deps/librdkafka/packaging/mingw-w64/configure-build-msys2-mingw-static.sh +52 -0
- package/deps/librdkafka/packaging/mingw-w64/configure-build-msys2-mingw.sh +21 -0
- package/deps/librdkafka/packaging/mingw-w64/run-tests.sh +6 -0
- package/deps/librdkafka/packaging/mingw-w64/semaphoreci-build.sh +38 -0
- package/deps/librdkafka/packaging/mingw-w64/travis-before-install.sh +20 -0
- package/deps/librdkafka/packaging/nuget/README.md +84 -0
- package/deps/librdkafka/packaging/nuget/artifact.py +177 -0
- package/deps/librdkafka/packaging/nuget/cleanup-s3.py +143 -0
- package/deps/librdkafka/packaging/nuget/common/p-common__plat-windows__arch-win32__bldtype-Release/msvcr120.zip +0 -0
- package/deps/librdkafka/packaging/nuget/common/p-common__plat-windows__arch-win32__bldtype-Release/msvcr140.zip +0 -0
- package/deps/librdkafka/packaging/nuget/common/p-common__plat-windows__arch-x64__bldtype-Release/msvcr120.zip +0 -0
- package/deps/librdkafka/packaging/nuget/common/p-common__plat-windows__arch-x64__bldtype-Release/msvcr140.zip +0 -0
- package/deps/librdkafka/packaging/nuget/nuget.sh +21 -0
- package/deps/librdkafka/packaging/nuget/nugetpackage.py +278 -0
- package/deps/librdkafka/packaging/nuget/packaging.py +448 -0
- package/deps/librdkafka/packaging/nuget/push-to-nuget.sh +21 -0
- package/deps/librdkafka/packaging/nuget/release.py +167 -0
- package/deps/librdkafka/packaging/nuget/requirements.txt +3 -0
- package/deps/librdkafka/packaging/nuget/staticpackage.py +178 -0
- package/deps/librdkafka/packaging/nuget/templates/librdkafka.redist.nuspec +21 -0
- package/deps/librdkafka/packaging/nuget/templates/librdkafka.redist.props +18 -0
- package/deps/librdkafka/packaging/nuget/templates/librdkafka.redist.targets +19 -0
- package/deps/librdkafka/packaging/nuget/zfile/__init__.py +0 -0
- package/deps/librdkafka/packaging/nuget/zfile/zfile.py +98 -0
- package/deps/librdkafka/packaging/rpm/Makefile +92 -0
- package/deps/librdkafka/packaging/rpm/README.md +23 -0
- package/deps/librdkafka/packaging/rpm/el7-x86_64.cfg +40 -0
- package/deps/librdkafka/packaging/rpm/librdkafka.spec +118 -0
- package/deps/librdkafka/packaging/rpm/mock-on-docker.sh +96 -0
- package/deps/librdkafka/packaging/rpm/tests/Makefile +25 -0
- package/deps/librdkafka/packaging/rpm/tests/README.md +8 -0
- package/deps/librdkafka/packaging/rpm/tests/run-test.sh +42 -0
- package/deps/librdkafka/packaging/rpm/tests/test-on-docker.sh +56 -0
- package/deps/librdkafka/packaging/rpm/tests/test.c +77 -0
- package/deps/librdkafka/packaging/rpm/tests/test.cpp +34 -0
- package/deps/librdkafka/packaging/tools/build-configurations-checks.sh +10 -0
- package/deps/librdkafka/packaging/tools/build-deb-package.sh +64 -0
- package/deps/librdkafka/packaging/tools/build-debian.sh +65 -0
- package/deps/librdkafka/packaging/tools/build-manylinux.sh +68 -0
- package/deps/librdkafka/packaging/tools/build-release-artifacts.sh +139 -0
- package/deps/librdkafka/packaging/tools/distro-build.sh +38 -0
- package/deps/librdkafka/packaging/tools/gh-release-checksums.py +39 -0
- package/deps/librdkafka/packaging/tools/rdutcoverage.sh +25 -0
- package/deps/librdkafka/packaging/tools/requirements.txt +2 -0
- package/deps/librdkafka/packaging/tools/style-format.sh +148 -0
- package/deps/librdkafka/service.yml +18 -0
- package/deps/librdkafka/src/CMakeLists.txt +374 -0
- package/deps/librdkafka/src/Makefile +103 -0
- package/deps/librdkafka/src/README.lz4.md +30 -0
- package/deps/librdkafka/src/cJSON.c +2834 -0
- package/deps/librdkafka/src/cJSON.h +398 -0
- package/deps/librdkafka/src/crc32c.c +430 -0
- package/deps/librdkafka/src/crc32c.h +38 -0
- package/deps/librdkafka/src/generate_proto.sh +66 -0
- package/deps/librdkafka/src/librdkafka_cgrp_synch.png +0 -0
- package/deps/librdkafka/src/lz4.c +2727 -0
- package/deps/librdkafka/src/lz4.h +842 -0
- package/deps/librdkafka/src/lz4frame.c +2078 -0
- package/deps/librdkafka/src/lz4frame.h +692 -0
- package/deps/librdkafka/src/lz4frame_static.h +47 -0
- package/deps/librdkafka/src/lz4hc.c +1631 -0
- package/deps/librdkafka/src/lz4hc.h +413 -0
- package/deps/librdkafka/src/nanopb/pb.h +917 -0
- package/deps/librdkafka/src/nanopb/pb_common.c +388 -0
- package/deps/librdkafka/src/nanopb/pb_common.h +49 -0
- package/deps/librdkafka/src/nanopb/pb_decode.c +1727 -0
- package/deps/librdkafka/src/nanopb/pb_decode.h +193 -0
- package/deps/librdkafka/src/nanopb/pb_encode.c +1000 -0
- package/deps/librdkafka/src/nanopb/pb_encode.h +185 -0
- package/deps/librdkafka/src/opentelemetry/common.pb.c +32 -0
- package/deps/librdkafka/src/opentelemetry/common.pb.h +170 -0
- package/deps/librdkafka/src/opentelemetry/metrics.options +2 -0
- package/deps/librdkafka/src/opentelemetry/metrics.pb.c +67 -0
- package/deps/librdkafka/src/opentelemetry/metrics.pb.h +966 -0
- package/deps/librdkafka/src/opentelemetry/resource.pb.c +12 -0
- package/deps/librdkafka/src/opentelemetry/resource.pb.h +58 -0
- package/deps/librdkafka/src/queue.h +850 -0
- package/deps/librdkafka/src/rd.h +441 -0
- package/deps/librdkafka/src/rdaddr.c +255 -0
- package/deps/librdkafka/src/rdaddr.h +203 -0
- package/deps/librdkafka/src/rdatomic.h +226 -0
- package/deps/librdkafka/src/rdavg.h +259 -0
- package/deps/librdkafka/src/rdavl.c +210 -0
- package/deps/librdkafka/src/rdavl.h +250 -0
- package/deps/librdkafka/src/rdbase64.c +169 -0
- package/deps/librdkafka/src/rdbase64.h +41 -0
- package/deps/librdkafka/src/rdbuf.c +1884 -0
- package/deps/librdkafka/src/rdbuf.h +375 -0
- package/deps/librdkafka/src/rdcrc32.c +114 -0
- package/deps/librdkafka/src/rdcrc32.h +170 -0
- package/deps/librdkafka/src/rddl.c +179 -0
- package/deps/librdkafka/src/rddl.h +43 -0
- package/deps/librdkafka/src/rdendian.h +174 -0
- package/deps/librdkafka/src/rdfloat.h +67 -0
- package/deps/librdkafka/src/rdfnv1a.c +113 -0
- package/deps/librdkafka/src/rdfnv1a.h +35 -0
- package/deps/librdkafka/src/rdgz.c +120 -0
- package/deps/librdkafka/src/rdgz.h +46 -0
- package/deps/librdkafka/src/rdhdrhistogram.c +721 -0
- package/deps/librdkafka/src/rdhdrhistogram.h +87 -0
- package/deps/librdkafka/src/rdhttp.c +512 -0
- package/deps/librdkafka/src/rdhttp.h +83 -0
- package/deps/librdkafka/src/rdinterval.h +177 -0
- package/deps/librdkafka/src/rdkafka.c +5351 -0
- package/deps/librdkafka/src/rdkafka.h +10603 -0
- package/deps/librdkafka/src/rdkafka_admin.c +9417 -0
- package/deps/librdkafka/src/rdkafka_admin.h +619 -0
- package/deps/librdkafka/src/rdkafka_assignment.c +1010 -0
- package/deps/librdkafka/src/rdkafka_assignment.h +73 -0
- package/deps/librdkafka/src/rdkafka_assignor.c +1786 -0
- package/deps/librdkafka/src/rdkafka_assignor.h +402 -0
- package/deps/librdkafka/src/rdkafka_aux.c +409 -0
- package/deps/librdkafka/src/rdkafka_aux.h +174 -0
- package/deps/librdkafka/src/rdkafka_background.c +221 -0
- package/deps/librdkafka/src/rdkafka_broker.c +6186 -0
- package/deps/librdkafka/src/rdkafka_broker.h +686 -0
- package/deps/librdkafka/src/rdkafka_buf.c +540 -0
- package/deps/librdkafka/src/rdkafka_buf.h +1524 -0
- package/deps/librdkafka/src/rdkafka_cert.c +552 -0
- package/deps/librdkafka/src/rdkafka_cert.h +61 -0
- package/deps/librdkafka/src/rdkafka_cgrp.c +7262 -0
- package/deps/librdkafka/src/rdkafka_cgrp.h +443 -0
- package/deps/librdkafka/src/rdkafka_conf.c +4456 -0
- package/deps/librdkafka/src/rdkafka_conf.h +668 -0
- package/deps/librdkafka/src/rdkafka_confval.h +97 -0
- package/deps/librdkafka/src/rdkafka_coord.c +623 -0
- package/deps/librdkafka/src/rdkafka_coord.h +132 -0
- package/deps/librdkafka/src/rdkafka_error.c +228 -0
- package/deps/librdkafka/src/rdkafka_error.h +80 -0
- package/deps/librdkafka/src/rdkafka_event.c +502 -0
- package/deps/librdkafka/src/rdkafka_event.h +126 -0
- package/deps/librdkafka/src/rdkafka_feature.c +461 -0
- package/deps/librdkafka/src/rdkafka_feature.h +102 -0
- package/deps/librdkafka/src/rdkafka_fetcher.c +1402 -0
- package/deps/librdkafka/src/rdkafka_fetcher.h +44 -0
- package/deps/librdkafka/src/rdkafka_header.c +220 -0
- package/deps/librdkafka/src/rdkafka_header.h +76 -0
- package/deps/librdkafka/src/rdkafka_idempotence.c +807 -0
- package/deps/librdkafka/src/rdkafka_idempotence.h +144 -0
- package/deps/librdkafka/src/rdkafka_int.h +1222 -0
- package/deps/librdkafka/src/rdkafka_interceptor.c +819 -0
- package/deps/librdkafka/src/rdkafka_interceptor.h +104 -0
- package/deps/librdkafka/src/rdkafka_lz4.c +450 -0
- package/deps/librdkafka/src/rdkafka_lz4.h +49 -0
- package/deps/librdkafka/src/rdkafka_metadata.c +2124 -0
- package/deps/librdkafka/src/rdkafka_metadata.h +341 -0
- package/deps/librdkafka/src/rdkafka_metadata_cache.c +977 -0
- package/deps/librdkafka/src/rdkafka_mock.c +2885 -0
- package/deps/librdkafka/src/rdkafka_mock.h +491 -0
- package/deps/librdkafka/src/rdkafka_mock_cgrp.c +710 -0
- package/deps/librdkafka/src/rdkafka_mock_handlers.c +2817 -0
- package/deps/librdkafka/src/rdkafka_mock_int.h +591 -0
- package/deps/librdkafka/src/rdkafka_msg.c +2573 -0
- package/deps/librdkafka/src/rdkafka_msg.h +614 -0
- package/deps/librdkafka/src/rdkafka_msgbatch.h +62 -0
- package/deps/librdkafka/src/rdkafka_msgset.h +98 -0
- package/deps/librdkafka/src/rdkafka_msgset_reader.c +1806 -0
- package/deps/librdkafka/src/rdkafka_msgset_writer.c +1470 -0
- package/deps/librdkafka/src/rdkafka_offset.c +1537 -0
- package/deps/librdkafka/src/rdkafka_offset.h +150 -0
- package/deps/librdkafka/src/rdkafka_op.c +997 -0
- package/deps/librdkafka/src/rdkafka_op.h +834 -0
- package/deps/librdkafka/src/rdkafka_partition.c +4801 -0
- package/deps/librdkafka/src/rdkafka_partition.h +1173 -0
- package/deps/librdkafka/src/rdkafka_pattern.c +228 -0
- package/deps/librdkafka/src/rdkafka_pattern.h +70 -0
- package/deps/librdkafka/src/rdkafka_plugin.c +213 -0
- package/deps/librdkafka/src/rdkafka_plugin.h +41 -0
- package/deps/librdkafka/src/rdkafka_proto.h +733 -0
- package/deps/librdkafka/src/rdkafka_protocol.h +127 -0
- package/deps/librdkafka/src/rdkafka_queue.c +1153 -0
- package/deps/librdkafka/src/rdkafka_queue.h +1201 -0
- package/deps/librdkafka/src/rdkafka_range_assignor.c +1748 -0
- package/deps/librdkafka/src/rdkafka_request.c +6817 -0
- package/deps/librdkafka/src/rdkafka_request.h +709 -0
- package/deps/librdkafka/src/rdkafka_roundrobin_assignor.c +123 -0
- package/deps/librdkafka/src/rdkafka_sasl.c +528 -0
- package/deps/librdkafka/src/rdkafka_sasl.h +63 -0
- package/deps/librdkafka/src/rdkafka_sasl_cyrus.c +722 -0
- package/deps/librdkafka/src/rdkafka_sasl_int.h +89 -0
- package/deps/librdkafka/src/rdkafka_sasl_oauthbearer.c +1829 -0
- package/deps/librdkafka/src/rdkafka_sasl_oauthbearer.h +52 -0
- package/deps/librdkafka/src/rdkafka_sasl_oauthbearer_oidc.c +589 -0
- package/deps/librdkafka/src/rdkafka_sasl_oauthbearer_oidc.h +37 -0
- package/deps/librdkafka/src/rdkafka_sasl_plain.c +142 -0
- package/deps/librdkafka/src/rdkafka_sasl_scram.c +857 -0
- package/deps/librdkafka/src/rdkafka_sasl_win32.c +550 -0
- package/deps/librdkafka/src/rdkafka_ssl.c +1904 -0
- package/deps/librdkafka/src/rdkafka_ssl.h +64 -0
- package/deps/librdkafka/src/rdkafka_sticky_assignor.c +4781 -0
- package/deps/librdkafka/src/rdkafka_subscription.c +278 -0
- package/deps/librdkafka/src/rdkafka_telemetry.c +703 -0
- package/deps/librdkafka/src/rdkafka_telemetry.h +52 -0
- package/deps/librdkafka/src/rdkafka_telemetry_decode.c +1053 -0
- package/deps/librdkafka/src/rdkafka_telemetry_decode.h +59 -0
- package/deps/librdkafka/src/rdkafka_telemetry_encode.c +993 -0
- package/deps/librdkafka/src/rdkafka_telemetry_encode.h +301 -0
- package/deps/librdkafka/src/rdkafka_timer.c +402 -0
- package/deps/librdkafka/src/rdkafka_timer.h +117 -0
- package/deps/librdkafka/src/rdkafka_topic.c +2078 -0
- package/deps/librdkafka/src/rdkafka_topic.h +328 -0
- package/deps/librdkafka/src/rdkafka_transport.c +1297 -0
- package/deps/librdkafka/src/rdkafka_transport.h +94 -0
- package/deps/librdkafka/src/rdkafka_transport_int.h +100 -0
- package/deps/librdkafka/src/rdkafka_txnmgr.c +3251 -0
- package/deps/librdkafka/src/rdkafka_txnmgr.h +171 -0
- package/deps/librdkafka/src/rdkafka_zstd.c +226 -0
- package/deps/librdkafka/src/rdkafka_zstd.h +57 -0
- package/deps/librdkafka/src/rdlist.c +576 -0
- package/deps/librdkafka/src/rdlist.h +434 -0
- package/deps/librdkafka/src/rdlog.c +89 -0
- package/deps/librdkafka/src/rdlog.h +41 -0
- package/deps/librdkafka/src/rdmap.c +503 -0
- package/deps/librdkafka/src/rdmap.h +492 -0
- package/deps/librdkafka/src/rdmurmur2.c +167 -0
- package/deps/librdkafka/src/rdmurmur2.h +35 -0
- package/deps/librdkafka/src/rdports.c +61 -0
- package/deps/librdkafka/src/rdports.h +38 -0
- package/deps/librdkafka/src/rdposix.h +250 -0
- package/deps/librdkafka/src/rdrand.c +70 -0
- package/deps/librdkafka/src/rdrand.h +43 -0
- package/deps/librdkafka/src/rdregex.c +156 -0
- package/deps/librdkafka/src/rdregex.h +43 -0
- package/deps/librdkafka/src/rdsignal.h +57 -0
- package/deps/librdkafka/src/rdstring.c +645 -0
- package/deps/librdkafka/src/rdstring.h +98 -0
- package/deps/librdkafka/src/rdsysqueue.h +404 -0
- package/deps/librdkafka/src/rdtime.h +325 -0
- package/deps/librdkafka/src/rdtypes.h +86 -0
- package/deps/librdkafka/src/rdunittest.c +532 -0
- package/deps/librdkafka/src/rdunittest.h +230 -0
- package/deps/librdkafka/src/rdvarint.c +134 -0
- package/deps/librdkafka/src/rdvarint.h +165 -0
- package/deps/librdkafka/src/rdwin32.h +382 -0
- package/deps/librdkafka/src/rdxxhash.c +1030 -0
- package/deps/librdkafka/src/rdxxhash.h +328 -0
- package/deps/librdkafka/src/regexp.c +1347 -0
- package/deps/librdkafka/src/regexp.h +41 -0
- package/deps/librdkafka/src/snappy.c +1866 -0
- package/deps/librdkafka/src/snappy.h +62 -0
- package/deps/librdkafka/src/snappy_compat.h +138 -0
- package/deps/librdkafka/src/statistics_schema.json +444 -0
- package/deps/librdkafka/src/tinycthread.c +932 -0
- package/deps/librdkafka/src/tinycthread.h +503 -0
- package/deps/librdkafka/src/tinycthread_extra.c +175 -0
- package/deps/librdkafka/src/tinycthread_extra.h +208 -0
- package/deps/librdkafka/src/win32_config.h +58 -0
- package/deps/librdkafka/src-cpp/CMakeLists.txt +90 -0
- package/deps/librdkafka/src-cpp/ConfImpl.cpp +84 -0
- package/deps/librdkafka/src-cpp/ConsumerImpl.cpp +244 -0
- package/deps/librdkafka/src-cpp/HandleImpl.cpp +436 -0
- package/deps/librdkafka/src-cpp/HeadersImpl.cpp +48 -0
- package/deps/librdkafka/src-cpp/KafkaConsumerImpl.cpp +296 -0
- package/deps/librdkafka/src-cpp/Makefile +55 -0
- package/deps/librdkafka/src-cpp/MessageImpl.cpp +38 -0
- package/deps/librdkafka/src-cpp/MetadataImpl.cpp +170 -0
- package/deps/librdkafka/src-cpp/ProducerImpl.cpp +197 -0
- package/deps/librdkafka/src-cpp/QueueImpl.cpp +70 -0
- package/deps/librdkafka/src-cpp/README.md +16 -0
- package/deps/librdkafka/src-cpp/RdKafka.cpp +59 -0
- package/deps/librdkafka/src-cpp/TopicImpl.cpp +124 -0
- package/deps/librdkafka/src-cpp/TopicPartitionImpl.cpp +57 -0
- package/deps/librdkafka/src-cpp/rdkafkacpp.h +3771 -0
- package/deps/librdkafka/src-cpp/rdkafkacpp_int.h +1641 -0
- package/deps/librdkafka/tests/0000-unittests.c +72 -0
- package/deps/librdkafka/tests/0001-multiobj.c +98 -0
- package/deps/librdkafka/tests/0002-unkpart.c +244 -0
- package/deps/librdkafka/tests/0003-msgmaxsize.c +173 -0
- package/deps/librdkafka/tests/0004-conf.c +867 -0
- package/deps/librdkafka/tests/0005-order.c +133 -0
- package/deps/librdkafka/tests/0006-symbols.c +163 -0
- package/deps/librdkafka/tests/0007-autotopic.c +136 -0
- package/deps/librdkafka/tests/0008-reqacks.c +179 -0
- package/deps/librdkafka/tests/0009-mock_cluster.c +96 -0
- package/deps/librdkafka/tests/0011-produce_batch.c +752 -0
- package/deps/librdkafka/tests/0012-produce_consume.c +537 -0
- package/deps/librdkafka/tests/0013-null-msgs.c +473 -0
- package/deps/librdkafka/tests/0014-reconsume-191.c +512 -0
- package/deps/librdkafka/tests/0015-offset_seeks.c +172 -0
- package/deps/librdkafka/tests/0016-client_swname.c +166 -0
- package/deps/librdkafka/tests/0017-compression.c +142 -0
- package/deps/librdkafka/tests/0018-cgrp_term.c +333 -0
- package/deps/librdkafka/tests/0019-list_groups.c +289 -0
- package/deps/librdkafka/tests/0020-destroy_hang.c +162 -0
- package/deps/librdkafka/tests/0021-rkt_destroy.c +71 -0
- package/deps/librdkafka/tests/0022-consume_batch.c +276 -0
- package/deps/librdkafka/tests/0025-timers.c +147 -0
- package/deps/librdkafka/tests/0026-consume_pause.c +549 -0
- package/deps/librdkafka/tests/0028-long_topicnames.c +79 -0
- package/deps/librdkafka/tests/0029-assign_offset.c +204 -0
- package/deps/librdkafka/tests/0030-offset_commit.c +589 -0
- package/deps/librdkafka/tests/0031-get_offsets.c +235 -0
- package/deps/librdkafka/tests/0033-regex_subscribe.c +520 -0
- package/deps/librdkafka/tests/0034-offset_reset.c +377 -0
- package/deps/librdkafka/tests/0035-api_version.c +73 -0
- package/deps/librdkafka/tests/0036-partial_fetch.c +86 -0
- package/deps/librdkafka/tests/0037-destroy_hang_local.c +85 -0
- package/deps/librdkafka/tests/0038-performance.c +120 -0
- package/deps/librdkafka/tests/0039-event.c +284 -0
- package/deps/librdkafka/tests/0040-io_event.c +251 -0
- package/deps/librdkafka/tests/0041-fetch_max_bytes.c +96 -0
- package/deps/librdkafka/tests/0042-many_topics.c +252 -0
- package/deps/librdkafka/tests/0043-no_connection.c +77 -0
- package/deps/librdkafka/tests/0044-partition_cnt.c +93 -0
- package/deps/librdkafka/tests/0045-subscribe_update.c +746 -0
- package/deps/librdkafka/tests/0046-rkt_cache.c +65 -0
- package/deps/librdkafka/tests/0047-partial_buf_tmout.c +97 -0
- package/deps/librdkafka/tests/0048-partitioner.c +283 -0
- package/deps/librdkafka/tests/0049-consume_conn_close.c +162 -0
- package/deps/librdkafka/tests/0050-subscribe_adds.c +144 -0
- package/deps/librdkafka/tests/0051-assign_adds.c +125 -0
- package/deps/librdkafka/tests/0052-msg_timestamps.c +220 -0
- package/deps/librdkafka/tests/0053-stats_cb.cpp +535 -0
- package/deps/librdkafka/tests/0054-offset_time.cpp +236 -0
- package/deps/librdkafka/tests/0055-producer_latency.c +366 -0
- package/deps/librdkafka/tests/0056-balanced_group_mt.c +311 -0
- package/deps/librdkafka/tests/0057-invalid_topic.cpp +112 -0
- package/deps/librdkafka/tests/0058-log.cpp +123 -0
- package/deps/librdkafka/tests/0059-bsearch.cpp +237 -0
- package/deps/librdkafka/tests/0060-op_prio.cpp +163 -0
- package/deps/librdkafka/tests/0061-consumer_lag.cpp +275 -0
- package/deps/librdkafka/tests/0062-stats_event.c +126 -0
- package/deps/librdkafka/tests/0063-clusterid.cpp +180 -0
- package/deps/librdkafka/tests/0064-interceptors.c +481 -0
- package/deps/librdkafka/tests/0065-yield.cpp +140 -0
- package/deps/librdkafka/tests/0066-plugins.cpp +129 -0
- package/deps/librdkafka/tests/0067-empty_topic.cpp +148 -0
- package/deps/librdkafka/tests/0068-produce_timeout.c +138 -0
- package/deps/librdkafka/tests/0069-consumer_add_parts.c +123 -0
- package/deps/librdkafka/tests/0070-null_empty.cpp +197 -0
- package/deps/librdkafka/tests/0072-headers_ut.c +448 -0
- package/deps/librdkafka/tests/0073-headers.c +381 -0
- package/deps/librdkafka/tests/0074-producev.c +87 -0
- package/deps/librdkafka/tests/0075-retry.c +253 -0
- package/deps/librdkafka/tests/0076-produce_retry.c +450 -0
- package/deps/librdkafka/tests/0077-compaction.c +357 -0
- package/deps/librdkafka/tests/0078-c_from_cpp.cpp +96 -0
- package/deps/librdkafka/tests/0079-fork.c +93 -0
- package/deps/librdkafka/tests/0080-admin_ut.c +3065 -0
- package/deps/librdkafka/tests/0081-admin.c +5333 -0
- package/deps/librdkafka/tests/0082-fetch_max_bytes.cpp +133 -0
- package/deps/librdkafka/tests/0083-cb_event.c +228 -0
- package/deps/librdkafka/tests/0084-destroy_flags.c +212 -0
- package/deps/librdkafka/tests/0085-headers.cpp +388 -0
- package/deps/librdkafka/tests/0086-purge.c +335 -0
- package/deps/librdkafka/tests/0088-produce_metadata_timeout.c +162 -0
- package/deps/librdkafka/tests/0089-max_poll_interval.c +506 -0
- package/deps/librdkafka/tests/0090-idempotence.c +172 -0
- package/deps/librdkafka/tests/0091-max_poll_interval_timeout.c +297 -0
- package/deps/librdkafka/tests/0092-mixed_msgver.c +97 -0
- package/deps/librdkafka/tests/0093-holb.c +197 -0
- package/deps/librdkafka/tests/0094-idempotence_msg_timeout.c +230 -0
- package/deps/librdkafka/tests/0095-all_brokers_down.cpp +122 -0
- package/deps/librdkafka/tests/0097-ssl_verify.cpp +466 -0
- package/deps/librdkafka/tests/0098-consumer-txn.cpp +1218 -0
- package/deps/librdkafka/tests/0099-commit_metadata.c +194 -0
- package/deps/librdkafka/tests/0100-thread_interceptors.cpp +195 -0
- package/deps/librdkafka/tests/0101-fetch-from-follower.cpp +446 -0
- package/deps/librdkafka/tests/0102-static_group_rebalance.c +535 -0
- package/deps/librdkafka/tests/0103-transactions.c +1383 -0
- package/deps/librdkafka/tests/0104-fetch_from_follower_mock.c +624 -0
- package/deps/librdkafka/tests/0105-transactions_mock.c +3923 -0
- package/deps/librdkafka/tests/0106-cgrp_sess_timeout.c +297 -0
- package/deps/librdkafka/tests/0107-topic_recreate.c +259 -0
- package/deps/librdkafka/tests/0109-auto_create_topics.cpp +218 -0
- package/deps/librdkafka/tests/0110-batch_size.cpp +183 -0
- package/deps/librdkafka/tests/0111-delay_create_topics.cpp +127 -0
- package/deps/librdkafka/tests/0112-assign_unknown_part.c +98 -0
- package/deps/librdkafka/tests/0113-cooperative_rebalance.cpp +3329 -0
- package/deps/librdkafka/tests/0114-sticky_partitioning.cpp +176 -0
- package/deps/librdkafka/tests/0115-producer_auth.cpp +179 -0
- package/deps/librdkafka/tests/0116-kafkaconsumer_close.cpp +214 -0
- package/deps/librdkafka/tests/0117-mock_errors.c +321 -0
- package/deps/librdkafka/tests/0118-commit_rebalance.c +121 -0
- package/deps/librdkafka/tests/0119-consumer_auth.cpp +148 -0
- package/deps/librdkafka/tests/0120-asymmetric_subscription.c +180 -0
- package/deps/librdkafka/tests/0121-clusterid.c +115 -0
- package/deps/librdkafka/tests/0122-buffer_cleaning_after_rebalance.c +227 -0
- package/deps/librdkafka/tests/0123-connections_max_idle.c +98 -0
- package/deps/librdkafka/tests/0124-openssl_invalid_engine.c +69 -0
- package/deps/librdkafka/tests/0125-immediate_flush.c +144 -0
- package/deps/librdkafka/tests/0126-oauthbearer_oidc.c +213 -0
- package/deps/librdkafka/tests/0127-fetch_queue_backoff.cpp +165 -0
- package/deps/librdkafka/tests/0128-sasl_callback_queue.cpp +125 -0
- package/deps/librdkafka/tests/0129-fetch_aborted_msgs.c +78 -0
- package/deps/librdkafka/tests/0130-store_offsets.c +178 -0
- package/deps/librdkafka/tests/0131-connect_timeout.c +81 -0
- package/deps/librdkafka/tests/0132-strategy_ordering.c +171 -0
- package/deps/librdkafka/tests/0133-ssl_keys.c +128 -0
- package/deps/librdkafka/tests/0134-ssl_provider.c +92 -0
- package/deps/librdkafka/tests/0135-sasl_credentials.cpp +143 -0
- package/deps/librdkafka/tests/0136-resolve_cb.c +181 -0
- package/deps/librdkafka/tests/0137-barrier_batch_consume.c +609 -0
- package/deps/librdkafka/tests/0138-admin_mock.c +281 -0
- package/deps/librdkafka/tests/0139-offset_validation_mock.c +442 -0
- package/deps/librdkafka/tests/0140-commit_metadata.cpp +108 -0
- package/deps/librdkafka/tests/0142-reauthentication.c +495 -0
- package/deps/librdkafka/tests/0143-exponential_backoff_mock.c +553 -0
- package/deps/librdkafka/tests/0144-idempotence_mock.c +373 -0
- package/deps/librdkafka/tests/0145-pause_resume_mock.c +119 -0
- package/deps/librdkafka/tests/0146-metadata_mock.c +444 -0
- package/deps/librdkafka/tests/0150-telemetry_mock.c +648 -0
- package/deps/librdkafka/tests/1000-unktopic.c +164 -0
- package/deps/librdkafka/tests/8000-idle.cpp +60 -0
- package/deps/librdkafka/tests/8001-fetch_from_follower_mock_manual.c +113 -0
- package/deps/librdkafka/tests/CMakeLists.txt +164 -0
- package/deps/librdkafka/tests/LibrdkafkaTestApp.py +266 -0
- package/deps/librdkafka/tests/Makefile +182 -0
- package/deps/librdkafka/tests/README.md +509 -0
- package/deps/librdkafka/tests/autotest.sh +33 -0
- package/deps/librdkafka/tests/backtrace.gdb +30 -0
- package/deps/librdkafka/tests/broker_version_tests.py +315 -0
- package/deps/librdkafka/tests/buildbox.sh +17 -0
- package/deps/librdkafka/tests/cleanup-checker-tests.sh +20 -0
- package/deps/librdkafka/tests/cluster_testing.py +191 -0
- package/deps/librdkafka/tests/delete-test-topics.sh +56 -0
- package/deps/librdkafka/tests/fixtures/ssl/Makefile +8 -0
- package/deps/librdkafka/tests/fixtures/ssl/README.md +13 -0
- package/deps/librdkafka/tests/fixtures/ssl/client.keystore.p12 +0 -0
- package/deps/librdkafka/tests/fixtures/ssl/client2.certificate.pem +109 -0
- package/deps/librdkafka/tests/fixtures/ssl/client2.key +34 -0
- package/deps/librdkafka/tests/fixtures/ssl/create_keys.sh +93 -0
- package/deps/librdkafka/tests/fuzzers/Makefile +12 -0
- package/deps/librdkafka/tests/fuzzers/README.md +31 -0
- package/deps/librdkafka/tests/fuzzers/fuzz_regex.c +74 -0
- package/deps/librdkafka/tests/fuzzers/helpers.h +90 -0
- package/deps/librdkafka/tests/gen-ssl-certs.sh +165 -0
- package/deps/librdkafka/tests/interactive_broker_version.py +170 -0
- package/deps/librdkafka/tests/interceptor_test/CMakeLists.txt +16 -0
- package/deps/librdkafka/tests/interceptor_test/Makefile +22 -0
- package/deps/librdkafka/tests/interceptor_test/interceptor_test.c +314 -0
- package/deps/librdkafka/tests/interceptor_test/interceptor_test.h +54 -0
- package/deps/librdkafka/tests/java/IncrementalRebalanceCli.java +97 -0
- package/deps/librdkafka/tests/java/Makefile +12 -0
- package/deps/librdkafka/tests/java/Murmur2Cli.java +46 -0
- package/deps/librdkafka/tests/java/README.md +14 -0
- package/deps/librdkafka/tests/java/TransactionProducerCli.java +162 -0
- package/deps/librdkafka/tests/java/run-class.sh +11 -0
- package/deps/librdkafka/tests/librdkafka.suppressions +483 -0
- package/deps/librdkafka/tests/lz4_manual_test.sh +59 -0
- package/deps/librdkafka/tests/multi-broker-version-test.sh +50 -0
- package/deps/librdkafka/tests/parse-refcnt.sh +43 -0
- package/deps/librdkafka/tests/performance_plot.py +115 -0
- package/deps/librdkafka/tests/plugin_test/Makefile +19 -0
- package/deps/librdkafka/tests/plugin_test/plugin_test.c +58 -0
- package/deps/librdkafka/tests/requirements.txt +2 -0
- package/deps/librdkafka/tests/run-consumer-tests.sh +16 -0
- package/deps/librdkafka/tests/run-producer-tests.sh +16 -0
- package/deps/librdkafka/tests/run-test.sh +140 -0
- package/deps/librdkafka/tests/rusage.c +249 -0
- package/deps/librdkafka/tests/sasl_test.py +289 -0
- package/deps/librdkafka/tests/scenarios/README.md +6 -0
- package/deps/librdkafka/tests/scenarios/ak23.json +6 -0
- package/deps/librdkafka/tests/scenarios/default.json +5 -0
- package/deps/librdkafka/tests/scenarios/noautocreate.json +5 -0
- package/deps/librdkafka/tests/sockem.c +801 -0
- package/deps/librdkafka/tests/sockem.h +85 -0
- package/deps/librdkafka/tests/sockem_ctrl.c +145 -0
- package/deps/librdkafka/tests/sockem_ctrl.h +61 -0
- package/deps/librdkafka/tests/test.c +7318 -0
- package/deps/librdkafka/tests/test.conf.example +27 -0
- package/deps/librdkafka/tests/test.h +979 -0
- package/deps/librdkafka/tests/testcpp.cpp +126 -0
- package/deps/librdkafka/tests/testcpp.h +360 -0
- package/deps/librdkafka/tests/testshared.h +402 -0
- package/deps/librdkafka/tests/tools/README.md +4 -0
- package/deps/librdkafka/tests/tools/stats/README.md +21 -0
- package/deps/librdkafka/tests/tools/stats/filter.jq +42 -0
- package/deps/librdkafka/tests/tools/stats/graph.py +150 -0
- package/deps/librdkafka/tests/tools/stats/requirements.txt +3 -0
- package/deps/librdkafka/tests/tools/stats/to_csv.py +124 -0
- package/deps/librdkafka/tests/until-fail.sh +87 -0
- package/deps/librdkafka/tests/xxxx-assign_partition.c +122 -0
- package/deps/librdkafka/tests/xxxx-metadata.cpp +159 -0
- package/deps/librdkafka/vcpkg.json +23 -0
- package/deps/librdkafka/win32/README.md +5 -0
- package/deps/librdkafka/win32/build-package.bat +3 -0
- package/deps/librdkafka/win32/build.bat +19 -0
- package/deps/librdkafka/win32/common.vcxproj +84 -0
- package/deps/librdkafka/win32/install-openssl.ps1 +33 -0
- package/deps/librdkafka/win32/interceptor_test/interceptor_test.vcxproj +87 -0
- package/deps/librdkafka/win32/librdkafka.autopkg.template +54 -0
- package/deps/librdkafka/win32/librdkafka.master.testing.targets +13 -0
- package/deps/librdkafka/win32/librdkafka.sln +226 -0
- package/deps/librdkafka/win32/librdkafka.vcxproj +276 -0
- package/deps/librdkafka/win32/librdkafkacpp/librdkafkacpp.vcxproj +104 -0
- package/deps/librdkafka/win32/msbuild.ps1 +15 -0
- package/deps/librdkafka/win32/openssl_engine_example/openssl_engine_example.vcxproj +132 -0
- package/deps/librdkafka/win32/package-zip.ps1 +46 -0
- package/deps/librdkafka/win32/packages/repositories.config +4 -0
- package/deps/librdkafka/win32/push-package.bat +4 -0
- package/deps/librdkafka/win32/rdkafka_complex_consumer_example_cpp/rdkafka_complex_consumer_example_cpp.vcxproj +67 -0
- package/deps/librdkafka/win32/rdkafka_example/rdkafka_example.vcxproj +97 -0
- package/deps/librdkafka/win32/rdkafka_performance/rdkafka_performance.vcxproj +97 -0
- package/deps/librdkafka/win32/setup-msys2.ps1 +31 -0
- package/deps/librdkafka/win32/setup-vcpkg.ps1 +12 -0
- package/deps/librdkafka/win32/tests/test.conf.example +25 -0
- package/deps/librdkafka/win32/tests/tests.vcxproj +247 -0
- package/deps/librdkafka/win32/win_ssl_cert_store/win_ssl_cert_store.vcxproj +132 -0
- package/deps/librdkafka/win32/wingetopt.c +564 -0
- package/deps/librdkafka/win32/wingetopt.h +100 -0
- package/deps/librdkafka/win32/wintime.h +33 -0
- package/deps/librdkafka.gyp +62 -0
- package/deps/windows-install.py +73 -0
- package/docker-compose.yml +23 -0
- package/e2e/admin.spec.js +187 -0
- package/e2e/both.spec.js +726 -0
- package/e2e/consumer.spec.js +386 -0
- package/e2e/groups.spec.js +132 -0
- package/e2e/listener.js +51 -0
- package/e2e/producer-transaction.spec.js +333 -0
- package/e2e/producer.spec.js +283 -0
- package/errors.d.ts +347 -0
- package/examples/consumer-flow.md +76 -0
- package/examples/consumer.md +45 -0
- package/examples/docker-alpine.md +30 -0
- package/examples/high-level-producer.md +32 -0
- package/examples/metadata.md +27 -0
- package/examples/oauthbearer-default-flow.md +80 -0
- package/examples/producer-cluster.md +103 -0
- package/examples/producer.md +73 -0
- package/index.d.ts +357 -0
- package/lib/admin.js +233 -0
- package/lib/client.js +578 -0
- package/lib/error.js +472 -0
- package/lib/index.js +34 -0
- package/lib/kafka-consumer-stream.js +397 -0
- package/lib/kafka-consumer.js +698 -0
- package/lib/producer/high-level-producer.js +323 -0
- package/lib/producer-stream.js +307 -0
- package/lib/producer.js +375 -0
- package/lib/tools/ref-counter.js +52 -0
- package/lib/topic-partition.js +88 -0
- package/lib/topic.js +42 -0
- package/lib/util.js +29 -0
- package/librdkafka.js +12 -0
- package/make_docs.sh +59 -0
- package/package.json +53 -0
- package/renovate.json +30 -0
- package/run_docker.sh +42 -0
- package/src/admin.cc +624 -0
- package/src/admin.h +78 -0
- package/src/binding.cc +73 -0
- package/src/binding.h +25 -0
- package/src/callbacks.cc +614 -0
- package/src/callbacks.h +265 -0
- package/src/common.cc +582 -0
- package/src/common.h +134 -0
- package/src/config.cc +167 -0
- package/src/config.h +45 -0
- package/src/connection.cc +482 -0
- package/src/connection.h +108 -0
- package/src/errors.cc +96 -0
- package/src/errors.h +53 -0
- package/src/kafka-consumer.cc +1457 -0
- package/src/kafka-consumer.h +136 -0
- package/src/per-isolate-data.cc +57 -0
- package/src/per-isolate-data.h +39 -0
- package/src/producer.cc +873 -0
- package/src/producer.h +125 -0
- package/src/topic.cc +180 -0
- package/src/topic.h +56 -0
- package/src/workers.cc +1245 -0
- package/src/workers.h +511 -0
- package/test/binding.spec.js +66 -0
- package/test/consumer.spec.js +91 -0
- package/test/error.spec.js +8 -0
- package/test/index.spec.js +8 -0
- package/test/kafka-consumer-stream.spec.js +298 -0
- package/test/kafka-consumer-worker.js +51 -0
- package/test/kafka-consumer.spec.js +86 -0
- package/test/mocha.opts +1 -0
- package/test/mock.js +55 -0
- package/test/producer/high-level-producer.spec.js +496 -0
- package/test/producer-stream.spec.js +723 -0
- package/test/producer-worker.js +53 -0
- package/test/producer.spec.js +120 -0
- package/test/tools/ref-counter.spec.js +53 -0
- package/test/topic-partition.spec.js +104 -0
- package/test/util.spec.js +46 -0
- package/util/configure.js +30 -0
- package/util/get-env.js +6 -0
- package/util/test-compile.js +11 -0
- package/util/test-producer-delivery.js +100 -0
- package/win_install.ps1 +2 -0
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* librdkafka - Apache Kafka C library
|
|
3
|
+
*
|
|
4
|
+
* Copyright (c) 2012-2022, Magnus Edenhill
|
|
5
|
+
* All rights reserved.
|
|
6
|
+
*
|
|
7
|
+
* Redistribution and use in source and binary forms, with or without
|
|
8
|
+
* modification, are permitted provided that the following conditions are met:
|
|
9
|
+
*
|
|
10
|
+
* 1. Redistributions of source code must retain the above copyright notice,
|
|
11
|
+
* this list of conditions and the following disclaimer.
|
|
12
|
+
* 2. Redistributions in binary form must reproduce the above copyright notice,
|
|
13
|
+
* this list of conditions and the following disclaimer in the documentation
|
|
14
|
+
* and/or other materials provided with the distribution.
|
|
15
|
+
*
|
|
16
|
+
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
|
17
|
+
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
|
18
|
+
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
|
19
|
+
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
|
|
20
|
+
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
|
21
|
+
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
|
22
|
+
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
|
23
|
+
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
|
24
|
+
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
|
25
|
+
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
|
26
|
+
* POSSIBILITY OF SUCH DAMAGE.
|
|
27
|
+
*/
|
|
28
|
+
|
|
29
|
+
#include "test.h"
|
|
30
|
+
|
|
31
|
+
|
|
32
|
+
/**
|
|
33
|
+
* @brief Verify that a FetchResponse containing only aborted messages does not
|
|
34
|
+
* raise a ERR_MSG_SIZE_TOO_LARGE error. #2993.
|
|
35
|
+
*
|
|
36
|
+
* 1. Create topic with a small message.max.bytes to make sure that
|
|
37
|
+
* there's at least one full fetch response without any control messages,
|
|
38
|
+
* just aborted messages.
|
|
39
|
+
* 2. Transactionally produce 10x the message.max.bytes.
|
|
40
|
+
* 3. Abort the transaction.
|
|
41
|
+
* 4. Consume from start, verify that no error is received, wait for EOF.
|
|
42
|
+
*
|
|
43
|
+
*/
|
|
44
|
+
int main_0129_fetch_aborted_msgs(int argc, char **argv) {
|
|
45
|
+
rd_kafka_t *rk;
|
|
46
|
+
rd_kafka_conf_t *conf;
|
|
47
|
+
const char *topic = test_mk_topic_name("0129_fetch_aborted_msgs", 1);
|
|
48
|
+
const int msgcnt = 1000;
|
|
49
|
+
const size_t msgsize = 1000;
|
|
50
|
+
|
|
51
|
+
test_conf_init(&conf, NULL, 30);
|
|
52
|
+
|
|
53
|
+
test_conf_set(conf, "linger.ms", "10000");
|
|
54
|
+
test_conf_set(conf, "transactional.id", topic);
|
|
55
|
+
test_conf_set(conf, "message.max.bytes", "10000");
|
|
56
|
+
rd_kafka_conf_set_dr_msg_cb(conf, test_dr_msg_cb);
|
|
57
|
+
rk = test_create_handle(RD_KAFKA_PRODUCER, conf);
|
|
58
|
+
|
|
59
|
+
test_admin_create_topic(rk, topic, 1, 1,
|
|
60
|
+
(const char *[]) {"max.message.bytes", "10000",
|
|
61
|
+
"segment.bytes", "20000",
|
|
62
|
+
NULL});
|
|
63
|
+
|
|
64
|
+
TEST_CALL_ERROR__(rd_kafka_init_transactions(rk, -1));
|
|
65
|
+
TEST_CALL_ERROR__(rd_kafka_begin_transaction(rk));
|
|
66
|
+
|
|
67
|
+
/* Produce half set of messages without waiting for delivery. */
|
|
68
|
+
test_produce_msgs2(rk, topic, 0, 0, 0, msgcnt, NULL, msgsize);
|
|
69
|
+
|
|
70
|
+
TEST_CALL_ERROR__(rd_kafka_abort_transaction(rk, -1));
|
|
71
|
+
|
|
72
|
+
rd_kafka_destroy(rk);
|
|
73
|
+
|
|
74
|
+
/* Verify messages were actually produced by consuming them back. */
|
|
75
|
+
test_consume_msgs_easy(topic, topic, 0, 1, 0, NULL);
|
|
76
|
+
|
|
77
|
+
return 0;
|
|
78
|
+
}
|
|
@@ -0,0 +1,178 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* librdkafka - Apache Kafka C library
|
|
3
|
+
*
|
|
4
|
+
* Copyright (c) 2020-2022, Magnus Edenhill
|
|
5
|
+
* 2023, Confluent Inc.
|
|
6
|
+
* All rights reserved.
|
|
7
|
+
*
|
|
8
|
+
* Redistribution and use in source and binary forms, with or without
|
|
9
|
+
* modification, are permitted provided that the following conditions are met:
|
|
10
|
+
*
|
|
11
|
+
* 1. Redistributions of source code must retain the above copyright notice,
|
|
12
|
+
* this list of conditions and the following disclaimer.
|
|
13
|
+
* 2. Redistributions in binary form must reproduce the above copyright notice,
|
|
14
|
+
* this list of conditions and the following disclaimer in the documentation
|
|
15
|
+
* and/or other materials provided with the distribution.
|
|
16
|
+
*
|
|
17
|
+
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
|
18
|
+
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
|
19
|
+
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
|
20
|
+
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
|
|
21
|
+
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
|
22
|
+
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
|
23
|
+
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
|
24
|
+
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
|
25
|
+
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
|
26
|
+
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
|
27
|
+
* POSSIBILITY OF SUCH DAMAGE.
|
|
28
|
+
*/
|
|
29
|
+
|
|
30
|
+
#include "test.h"
|
|
31
|
+
|
|
32
|
+
|
|
33
|
+
/**
|
|
34
|
+
* Verify that offsets_store() commits the right offsets and metadata,
|
|
35
|
+
* and is not allowed for unassigned partitions.
|
|
36
|
+
*/
|
|
37
|
+
static void do_test_store_unassigned(void) {
|
|
38
|
+
const char *topic = test_mk_topic_name("0130_store_unassigned", 1);
|
|
39
|
+
rd_kafka_conf_t *conf;
|
|
40
|
+
rd_kafka_t *c;
|
|
41
|
+
rd_kafka_topic_partition_list_t *parts;
|
|
42
|
+
rd_kafka_resp_err_t err;
|
|
43
|
+
rd_kafka_message_t *rkmessage;
|
|
44
|
+
char metadata[] = "metadata";
|
|
45
|
+
const int64_t proper_offset = 900, bad_offset = 300;
|
|
46
|
+
|
|
47
|
+
SUB_TEST_QUICK();
|
|
48
|
+
|
|
49
|
+
test_produce_msgs_easy(topic, 0, 0, 1000);
|
|
50
|
+
|
|
51
|
+
test_conf_init(&conf, NULL, 30);
|
|
52
|
+
test_conf_set(conf, "auto.offset.reset", "earliest");
|
|
53
|
+
test_conf_set(conf, "enable.auto.offset.store", "false");
|
|
54
|
+
test_conf_set(conf, "enable.partition.eof", "true");
|
|
55
|
+
|
|
56
|
+
c = test_create_consumer(topic, NULL, conf, NULL);
|
|
57
|
+
|
|
58
|
+
parts = rd_kafka_topic_partition_list_new(1);
|
|
59
|
+
rd_kafka_topic_partition_list_add(parts, topic, 0);
|
|
60
|
+
TEST_CALL_ERR__(rd_kafka_assign(c, parts));
|
|
61
|
+
|
|
62
|
+
TEST_SAY("Consume one message\n");
|
|
63
|
+
test_consumer_poll_once(c, NULL, tmout_multip(3000));
|
|
64
|
+
|
|
65
|
+
parts->elems[0].offset = proper_offset;
|
|
66
|
+
parts->elems[0].metadata_size = sizeof metadata;
|
|
67
|
+
parts->elems[0].metadata = malloc(parts->elems[0].metadata_size);
|
|
68
|
+
memcpy(parts->elems[0].metadata, metadata,
|
|
69
|
+
parts->elems[0].metadata_size);
|
|
70
|
+
TEST_SAY("Storing offset %" PRId64
|
|
71
|
+
" with metadata while assigned: should succeed\n",
|
|
72
|
+
parts->elems[0].offset);
|
|
73
|
+
TEST_CALL_ERR__(rd_kafka_offsets_store(c, parts));
|
|
74
|
+
|
|
75
|
+
TEST_SAY("Committing\n");
|
|
76
|
+
TEST_CALL_ERR__(rd_kafka_commit(c, NULL, rd_false /*sync*/));
|
|
77
|
+
|
|
78
|
+
TEST_SAY("Unassigning partitions and trying to store again\n");
|
|
79
|
+
TEST_CALL_ERR__(rd_kafka_assign(c, NULL));
|
|
80
|
+
|
|
81
|
+
parts->elems[0].offset = bad_offset;
|
|
82
|
+
parts->elems[0].metadata_size = 0;
|
|
83
|
+
rd_free(parts->elems[0].metadata);
|
|
84
|
+
parts->elems[0].metadata = NULL;
|
|
85
|
+
TEST_SAY("Storing offset %" PRId64 " while unassigned: should fail\n",
|
|
86
|
+
parts->elems[0].offset);
|
|
87
|
+
err = rd_kafka_offsets_store(c, parts);
|
|
88
|
+
TEST_ASSERT_LATER(err != RD_KAFKA_RESP_ERR_NO_ERROR,
|
|
89
|
+
"Expected offsets_store() to fail");
|
|
90
|
+
TEST_ASSERT(parts->cnt == 1);
|
|
91
|
+
|
|
92
|
+
TEST_ASSERT(parts->elems[0].err == RD_KAFKA_RESP_ERR__STATE,
|
|
93
|
+
"Expected %s [%" PRId32
|
|
94
|
+
"] to fail with "
|
|
95
|
+
"_STATE, not %s",
|
|
96
|
+
parts->elems[0].topic, parts->elems[0].partition,
|
|
97
|
+
rd_kafka_err2name(parts->elems[0].err));
|
|
98
|
+
|
|
99
|
+
TEST_SAY("Committing: should fail\n");
|
|
100
|
+
err = rd_kafka_commit(c, NULL, rd_false /*sync*/);
|
|
101
|
+
TEST_ASSERT(err == RD_KAFKA_RESP_ERR__NO_OFFSET,
|
|
102
|
+
"Expected commit() to fail with NO_OFFSET, not %s",
|
|
103
|
+
rd_kafka_err2name(err));
|
|
104
|
+
|
|
105
|
+
TEST_SAY("Assigning partition again\n");
|
|
106
|
+
parts->elems[0].offset = RD_KAFKA_OFFSET_INVALID; /* Use committed */
|
|
107
|
+
TEST_CALL_ERR__(rd_kafka_assign(c, parts));
|
|
108
|
+
|
|
109
|
+
TEST_SAY("Consuming message to verify committed offset\n");
|
|
110
|
+
rkmessage = rd_kafka_consumer_poll(c, tmout_multip(3000));
|
|
111
|
+
TEST_ASSERT(rkmessage != NULL, "Expected message");
|
|
112
|
+
TEST_SAY("Consumed message with offset %" PRId64 "\n",
|
|
113
|
+
rkmessage->offset);
|
|
114
|
+
TEST_ASSERT(!rkmessage->err, "Expected proper message, not error %s",
|
|
115
|
+
rd_kafka_message_errstr(rkmessage));
|
|
116
|
+
TEST_ASSERT(rkmessage->offset == proper_offset,
|
|
117
|
+
"Expected first message to be properly stored "
|
|
118
|
+
"offset %" PRId64 ", not %" PRId64,
|
|
119
|
+
proper_offset, rkmessage->offset);
|
|
120
|
+
|
|
121
|
+
TEST_SAY(
|
|
122
|
+
"Retrieving committed offsets to verify committed offset "
|
|
123
|
+
"metadata\n");
|
|
124
|
+
rd_kafka_topic_partition_list_t *committed_toppar;
|
|
125
|
+
committed_toppar = rd_kafka_topic_partition_list_new(1);
|
|
126
|
+
rd_kafka_topic_partition_list_add(committed_toppar, topic, 0);
|
|
127
|
+
TEST_CALL_ERR__(
|
|
128
|
+
rd_kafka_committed(c, committed_toppar, tmout_multip(3000)));
|
|
129
|
+
TEST_ASSERT(committed_toppar->elems[0].offset == proper_offset,
|
|
130
|
+
"Expected committed offset to be %" PRId64 ", not %" PRId64,
|
|
131
|
+
proper_offset, committed_toppar->elems[0].offset);
|
|
132
|
+
TEST_ASSERT(committed_toppar->elems[0].metadata != NULL,
|
|
133
|
+
"Expected metadata to not be NULL");
|
|
134
|
+
TEST_ASSERT(strcmp(committed_toppar->elems[0].metadata, metadata) == 0,
|
|
135
|
+
"Expected metadata to be %s, not %s", metadata,
|
|
136
|
+
(char *)committed_toppar->elems[0].metadata);
|
|
137
|
+
|
|
138
|
+
TEST_SAY("Storing next offset without metadata\n");
|
|
139
|
+
parts->elems[0].offset = proper_offset + 1;
|
|
140
|
+
TEST_CALL_ERR__(rd_kafka_offsets_store(c, parts));
|
|
141
|
+
|
|
142
|
+
TEST_SAY("Committing\n");
|
|
143
|
+
TEST_CALL_ERR__(rd_kafka_commit(c, NULL, rd_false /*sync*/));
|
|
144
|
+
|
|
145
|
+
TEST_SAY(
|
|
146
|
+
"Retrieving committed offset to verify empty committed offset "
|
|
147
|
+
"metadata\n");
|
|
148
|
+
rd_kafka_topic_partition_list_t *committed_toppar_empty;
|
|
149
|
+
committed_toppar_empty = rd_kafka_topic_partition_list_new(1);
|
|
150
|
+
rd_kafka_topic_partition_list_add(committed_toppar_empty, topic, 0);
|
|
151
|
+
TEST_CALL_ERR__(
|
|
152
|
+
rd_kafka_committed(c, committed_toppar_empty, tmout_multip(3000)));
|
|
153
|
+
TEST_ASSERT(committed_toppar_empty->elems[0].offset ==
|
|
154
|
+
proper_offset + 1,
|
|
155
|
+
"Expected committed offset to be %" PRId64 ", not %" PRId64,
|
|
156
|
+
proper_offset, committed_toppar_empty->elems[0].offset);
|
|
157
|
+
TEST_ASSERT(committed_toppar_empty->elems[0].metadata == NULL,
|
|
158
|
+
"Expected metadata to be NULL");
|
|
159
|
+
|
|
160
|
+
rd_kafka_message_destroy(rkmessage);
|
|
161
|
+
|
|
162
|
+
rd_kafka_topic_partition_list_destroy(parts);
|
|
163
|
+
rd_kafka_topic_partition_list_destroy(committed_toppar);
|
|
164
|
+
rd_kafka_topic_partition_list_destroy(committed_toppar_empty);
|
|
165
|
+
|
|
166
|
+
rd_kafka_consumer_close(c);
|
|
167
|
+
rd_kafka_destroy(c);
|
|
168
|
+
|
|
169
|
+
SUB_TEST_PASS();
|
|
170
|
+
}
|
|
171
|
+
|
|
172
|
+
|
|
173
|
+
int main_0130_store_offsets(int argc, char **argv) {
|
|
174
|
+
|
|
175
|
+
do_test_store_unassigned();
|
|
176
|
+
|
|
177
|
+
return 0;
|
|
178
|
+
}
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* librdkafka - Apache Kafka C library
|
|
3
|
+
*
|
|
4
|
+
* Copyright (c) 2022, Magnus Edenhill
|
|
5
|
+
* All rights reserved.
|
|
6
|
+
*
|
|
7
|
+
* Redistribution and use in source and binary forms, with or without
|
|
8
|
+
* modification, are permitted provided that the following conditions are met:
|
|
9
|
+
*
|
|
10
|
+
* 1. Redistributions of source code must retain the above copyright notice,
|
|
11
|
+
* this list of conditions and the following disclaimer.
|
|
12
|
+
* 2. Redistributions in binary form must reproduce the above copyright notice,
|
|
13
|
+
* this list of conditions and the following disclaimer in the documentation
|
|
14
|
+
* and/or other materials provided with the distribution.
|
|
15
|
+
*
|
|
16
|
+
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
|
17
|
+
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
|
18
|
+
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
|
19
|
+
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
|
|
20
|
+
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
|
21
|
+
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
|
22
|
+
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
|
23
|
+
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
|
24
|
+
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
|
25
|
+
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
|
26
|
+
* POSSIBILITY OF SUCH DAMAGE.
|
|
27
|
+
*/
|
|
28
|
+
|
|
29
|
+
#include "test.h"
|
|
30
|
+
|
|
31
|
+
#include "rdkafka.h"
|
|
32
|
+
|
|
33
|
+
|
|
34
|
+
/**
|
|
35
|
+
* @name Verify socket.connection.setup.timeout.ms by using
|
|
36
|
+
* a mock cluster with an rtt > timeout.
|
|
37
|
+
*/
|
|
38
|
+
|
|
39
|
+
static void
|
|
40
|
+
log_cb(const rd_kafka_t *rk, int level, const char *fac, const char *buf) {
|
|
41
|
+
rd_atomic32_t *log_cntp = rd_kafka_opaque(rk);
|
|
42
|
+
|
|
43
|
+
if (!strstr(buf, "Connection setup timed out"))
|
|
44
|
+
return;
|
|
45
|
+
|
|
46
|
+
TEST_SAY("Log: %s level %d fac %s: %s\n", rd_kafka_name(rk), level, fac,
|
|
47
|
+
buf);
|
|
48
|
+
|
|
49
|
+
rd_atomic32_add(log_cntp, 1);
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
int main_0131_connect_timeout(int argc, char **argv) {
|
|
53
|
+
rd_kafka_t *rk;
|
|
54
|
+
rd_kafka_conf_t *conf;
|
|
55
|
+
rd_atomic32_t log_cnt;
|
|
56
|
+
|
|
57
|
+
test_conf_init(NULL, NULL, 20);
|
|
58
|
+
conf = rd_kafka_conf_new();
|
|
59
|
+
test_conf_set(conf, "test.mock.num.brokers", "2");
|
|
60
|
+
test_conf_set(conf, "test.mock.broker.rtt", "10000");
|
|
61
|
+
test_conf_set(conf, "socket.connection.setup.timeout.ms", "6000");
|
|
62
|
+
test_conf_set(conf, "debug", "broker");
|
|
63
|
+
rd_atomic32_init(&log_cnt, 0);
|
|
64
|
+
rd_kafka_conf_set_log_cb(conf, log_cb);
|
|
65
|
+
rd_kafka_conf_set_opaque(conf, &log_cnt);
|
|
66
|
+
|
|
67
|
+
rk = test_create_handle(RD_KAFKA_PRODUCER, conf);
|
|
68
|
+
|
|
69
|
+
rd_sleep(3);
|
|
70
|
+
TEST_ASSERT(rd_atomic32_get(&log_cnt) == 0,
|
|
71
|
+
"Should not have seen a disconnect this soon");
|
|
72
|
+
|
|
73
|
+
rd_sleep(5);
|
|
74
|
+
TEST_ASSERT(rd_atomic32_get(&log_cnt) > 0,
|
|
75
|
+
"Should have seen at least one "
|
|
76
|
+
"disconnect by now");
|
|
77
|
+
|
|
78
|
+
rd_kafka_destroy(rk);
|
|
79
|
+
|
|
80
|
+
return 0;
|
|
81
|
+
}
|
|
@@ -0,0 +1,171 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* librdkafka - Apache Kafka C library
|
|
3
|
+
*
|
|
4
|
+
* Copyright (c) 2022, Magnus Edenhill
|
|
5
|
+
* All rights reserved.
|
|
6
|
+
*
|
|
7
|
+
* Redistribution and use in source and binary forms, with or without
|
|
8
|
+
* modification, are permitted provided that the following conditions are met:
|
|
9
|
+
*
|
|
10
|
+
* 1. Redistributions of source code must retain the above copyright notice,
|
|
11
|
+
* this list of conditions and the following disclaimer.
|
|
12
|
+
* 2. Redistributions in binary form must reproduce the above copyright notice,
|
|
13
|
+
* this list of conditions and the following disclaimer in the documentation
|
|
14
|
+
* and/or other materials provided with the distribution.
|
|
15
|
+
*
|
|
16
|
+
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
|
17
|
+
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
|
18
|
+
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
|
19
|
+
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
|
|
20
|
+
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
|
21
|
+
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
|
22
|
+
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
|
23
|
+
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
|
24
|
+
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
|
25
|
+
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
|
26
|
+
* POSSIBILITY OF SUCH DAMAGE.
|
|
27
|
+
*/
|
|
28
|
+
|
|
29
|
+
#include "test.h"
|
|
30
|
+
|
|
31
|
+
|
|
32
|
+
#define _PART_CNT 4
|
|
33
|
+
|
|
34
|
+
static void verify_roundrobin_assignment(rd_kafka_t *c[]) {
|
|
35
|
+
rd_kafka_topic_partition_list_t *assignment1;
|
|
36
|
+
rd_kafka_topic_partition_list_t *assignment2;
|
|
37
|
+
|
|
38
|
+
TEST_CALL_ERR__(rd_kafka_assignment(c[0], &assignment1));
|
|
39
|
+
|
|
40
|
+
TEST_ASSERT(assignment1->cnt == _PART_CNT / 2,
|
|
41
|
+
"Roundrobin: Assignment partitions for %s"
|
|
42
|
+
"is %d, but the expected is %d\n",
|
|
43
|
+
rd_kafka_name(c[0]), assignment1->cnt, _PART_CNT / 2);
|
|
44
|
+
|
|
45
|
+
TEST_ASSERT(assignment1->elems[0].partition == 0,
|
|
46
|
+
"Roundrobin: First assignment partition for %s"
|
|
47
|
+
"is %d, but the expectation is %d\n",
|
|
48
|
+
rd_kafka_name(c[0]), assignment1->elems[0].partition, 0);
|
|
49
|
+
TEST_ASSERT(assignment1->elems[1].partition == 2,
|
|
50
|
+
"Roundrobin: Second assignment partition for %s"
|
|
51
|
+
"is %d, but the expectation is %d\n",
|
|
52
|
+
rd_kafka_name(c[0]), assignment1->elems[1].partition, 2);
|
|
53
|
+
|
|
54
|
+
TEST_CALL_ERR__(rd_kafka_assignment(c[1], &assignment2));
|
|
55
|
+
TEST_ASSERT(assignment2->cnt == _PART_CNT / 2,
|
|
56
|
+
"Roundrobin: Assignment partitions for %s"
|
|
57
|
+
"is %d, but the expected is %d\n",
|
|
58
|
+
rd_kafka_name(c[1]), assignment2->cnt, _PART_CNT / 2);
|
|
59
|
+
|
|
60
|
+
TEST_ASSERT(assignment2->elems[0].partition == 1,
|
|
61
|
+
"Roundrobin: First assignment partition for %s"
|
|
62
|
+
"is %d, but the expectation is %d\n",
|
|
63
|
+
rd_kafka_name(c[1]), assignment2->elems[0].partition, 1);
|
|
64
|
+
TEST_ASSERT(assignment2->elems[1].partition == 3,
|
|
65
|
+
"Roundrobin: Second assignment partition for %s"
|
|
66
|
+
"is %d, but the expectation is %d\n",
|
|
67
|
+
rd_kafka_name(c[1]), assignment2->elems[1].partition, 3);
|
|
68
|
+
|
|
69
|
+
rd_kafka_topic_partition_list_destroy(assignment1);
|
|
70
|
+
rd_kafka_topic_partition_list_destroy(assignment2);
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
static void verify_range_assignment(rd_kafka_t *c[]) {
|
|
74
|
+
rd_kafka_topic_partition_list_t *assignment1;
|
|
75
|
+
rd_kafka_topic_partition_list_t *assignment2;
|
|
76
|
+
|
|
77
|
+
TEST_CALL_ERR__(rd_kafka_assignment(c[0], &assignment1));
|
|
78
|
+
|
|
79
|
+
TEST_ASSERT(assignment1->cnt == _PART_CNT / 2,
|
|
80
|
+
"Range: Assignment partition for %s"
|
|
81
|
+
"is %d, but the expected is %d\n",
|
|
82
|
+
rd_kafka_name(c[0]), assignment1->cnt, _PART_CNT / 2);
|
|
83
|
+
|
|
84
|
+
TEST_ASSERT(assignment1->elems[0].partition == 0,
|
|
85
|
+
"Range: First assignment partition for %s"
|
|
86
|
+
"is %d, but the expectation is %d\n",
|
|
87
|
+
rd_kafka_name(c[0]), assignment1->elems[0].partition, 0);
|
|
88
|
+
TEST_ASSERT(assignment1->elems[1].partition == 1,
|
|
89
|
+
"Range: Second assignment partition for %s"
|
|
90
|
+
"is %d, but the expectation is %d\n",
|
|
91
|
+
rd_kafka_name(c[0]), assignment1->elems[1].partition, 1);
|
|
92
|
+
|
|
93
|
+
TEST_CALL_ERR__(rd_kafka_assignment(c[1], &assignment2));
|
|
94
|
+
TEST_ASSERT(assignment2->cnt == _PART_CNT / 2,
|
|
95
|
+
"Range: Assignment partition for %s"
|
|
96
|
+
"is %d, but the expected is %d\n",
|
|
97
|
+
rd_kafka_name(c[1]), assignment2->cnt, _PART_CNT / 2);
|
|
98
|
+
|
|
99
|
+
TEST_ASSERT(assignment2->elems[0].partition == 2,
|
|
100
|
+
"Range: First assignment partition for %s"
|
|
101
|
+
"is %d, but the expectation is %d\n",
|
|
102
|
+
rd_kafka_name(c[1]), assignment2->elems[0].partition, 2);
|
|
103
|
+
TEST_ASSERT(assignment2->elems[1].partition == 3,
|
|
104
|
+
"Range: Second assignment partition for %s"
|
|
105
|
+
"is %d, but the expectation is %d\n",
|
|
106
|
+
rd_kafka_name(c[1]), assignment2->elems[1].partition, 3);
|
|
107
|
+
|
|
108
|
+
rd_kafka_topic_partition_list_destroy(assignment1);
|
|
109
|
+
rd_kafka_topic_partition_list_destroy(assignment2);
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
static void do_test_stragety_ordering(const char *assignor,
|
|
113
|
+
const char *expected_assignor) {
|
|
114
|
+
rd_kafka_conf_t *conf;
|
|
115
|
+
#define _C_CNT 2
|
|
116
|
+
rd_kafka_t *c[_C_CNT];
|
|
117
|
+
|
|
118
|
+
const char *topic;
|
|
119
|
+
const int msgcnt = 100;
|
|
120
|
+
int i;
|
|
121
|
+
uint64_t testid;
|
|
122
|
+
|
|
123
|
+
SUB_TEST("partition.assignment.strategy = %s", assignor);
|
|
124
|
+
|
|
125
|
+
testid = test_id_generate();
|
|
126
|
+
|
|
127
|
+
topic = test_mk_topic_name("0132-strategy_ordering", 1);
|
|
128
|
+
test_create_topic(NULL, topic, _PART_CNT, 1);
|
|
129
|
+
test_produce_msgs_easy(topic, testid, RD_KAFKA_PARTITION_UA, msgcnt);
|
|
130
|
+
|
|
131
|
+
test_conf_init(&conf, NULL, 30);
|
|
132
|
+
test_conf_set(conf, "partition.assignment.strategy", assignor);
|
|
133
|
+
|
|
134
|
+
for (i = 0; i < _C_CNT; i++) {
|
|
135
|
+
char name[16];
|
|
136
|
+
|
|
137
|
+
rd_snprintf(name, sizeof(name), "c%d", i);
|
|
138
|
+
test_conf_set(conf, "client.id", name);
|
|
139
|
+
|
|
140
|
+
c[i] = test_create_consumer(assignor, NULL,
|
|
141
|
+
rd_kafka_conf_dup(conf), NULL);
|
|
142
|
+
|
|
143
|
+
test_consumer_subscribe(c[i], topic);
|
|
144
|
+
}
|
|
145
|
+
|
|
146
|
+
rd_kafka_conf_destroy(conf);
|
|
147
|
+
|
|
148
|
+
/* Await assignments for all consumers */
|
|
149
|
+
for (i = 0; i < _C_CNT; i++) {
|
|
150
|
+
test_consumer_wait_assignment(c[i], rd_true);
|
|
151
|
+
}
|
|
152
|
+
|
|
153
|
+
if (!strcmp(expected_assignor, "range"))
|
|
154
|
+
verify_range_assignment(c);
|
|
155
|
+
else
|
|
156
|
+
verify_roundrobin_assignment(c);
|
|
157
|
+
|
|
158
|
+
for (i = 0; i < _C_CNT; i++) {
|
|
159
|
+
test_consumer_close(c[i]);
|
|
160
|
+
rd_kafka_destroy(c[i]);
|
|
161
|
+
}
|
|
162
|
+
|
|
163
|
+
SUB_TEST_PASS();
|
|
164
|
+
}
|
|
165
|
+
|
|
166
|
+
|
|
167
|
+
int main_0132_strategy_ordering(int argc, char **argv) {
|
|
168
|
+
do_test_stragety_ordering("roundrobin,range", "roundrobin");
|
|
169
|
+
do_test_stragety_ordering("range,roundrobin", "range");
|
|
170
|
+
return 0;
|
|
171
|
+
}
|
|
@@ -0,0 +1,128 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* librdkafka - Apache Kafka C library
|
|
3
|
+
*
|
|
4
|
+
* Copyright (c) 2022, Magnus Edenhill
|
|
5
|
+
* All rights reserved.
|
|
6
|
+
*
|
|
7
|
+
* Redistribution and use in source and binary forms, with or without
|
|
8
|
+
* modification, are permitted provided that the following conditions are met:
|
|
9
|
+
*
|
|
10
|
+
* 1. Redistributions of source code must retain the above copyright notice,
|
|
11
|
+
* this list of conditions and the following disclaimer.
|
|
12
|
+
* 2. Redistributions in binary form must reproduce the above copyright notice,
|
|
13
|
+
* this list of conditions and the following disclaimer in the documentation
|
|
14
|
+
* and/or other materials provided with the distribution.
|
|
15
|
+
*
|
|
16
|
+
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
|
17
|
+
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
|
18
|
+
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
|
19
|
+
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
|
|
20
|
+
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
|
21
|
+
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
|
22
|
+
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
|
23
|
+
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
|
24
|
+
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
|
25
|
+
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
|
26
|
+
* POSSIBILITY OF SUCH DAMAGE.
|
|
27
|
+
*/
|
|
28
|
+
|
|
29
|
+
#include "test.h"
|
|
30
|
+
#include "rdstring.h"
|
|
31
|
+
|
|
32
|
+
/**
|
|
33
|
+
* @brief Tests reading SSL PKCS#12 keystore or PEM certificate and key from
|
|
34
|
+
* file. Decoding it with the correct password or not.
|
|
35
|
+
*
|
|
36
|
+
* Ensures it's read correctly on Windows too.
|
|
37
|
+
* See https://github.com/confluentinc/librdkafka/issues/3992
|
|
38
|
+
*/
|
|
39
|
+
static void do_test_ssl_keys(const char *type, rd_bool_t correct_password) {
|
|
40
|
+
#define TEST_FIXTURES_FOLDER "./fixtures"
|
|
41
|
+
#define TEST_FIXTURES_SSL_FOLDER TEST_FIXTURES_FOLDER "/ssl/"
|
|
42
|
+
#define TEST_FIXTURES_KEYSTORE_PASSWORD "use_strong_password_keystore_client"
|
|
43
|
+
#define TEST_FIXTURES_KEY_PASSWORD "use_strong_password_keystore_client2"
|
|
44
|
+
#define TEST_KEYSTORE_LOCATION TEST_FIXTURES_SSL_FOLDER "client.keystore.p12"
|
|
45
|
+
#define TEST_CERTIFICATE_LOCATION \
|
|
46
|
+
TEST_FIXTURES_SSL_FOLDER "client2.certificate.pem"
|
|
47
|
+
#define TEST_KEY_LOCATION TEST_FIXTURES_SSL_FOLDER "client2.key"
|
|
48
|
+
|
|
49
|
+
rd_kafka_conf_t *conf;
|
|
50
|
+
rd_kafka_t *rk;
|
|
51
|
+
char errstr[256];
|
|
52
|
+
|
|
53
|
+
SUB_TEST_QUICK("keystore type = %s, correct password = %s", type,
|
|
54
|
+
RD_STR_ToF(correct_password));
|
|
55
|
+
|
|
56
|
+
test_conf_init(&conf, NULL, 30);
|
|
57
|
+
test_conf_set(conf, "security.protocol", "SSL");
|
|
58
|
+
|
|
59
|
+
if (!strcmp(type, "PKCS12")) {
|
|
60
|
+
test_conf_set(conf, "ssl.keystore.location",
|
|
61
|
+
TEST_KEYSTORE_LOCATION);
|
|
62
|
+
if (correct_password)
|
|
63
|
+
test_conf_set(conf, "ssl.keystore.password",
|
|
64
|
+
TEST_FIXTURES_KEYSTORE_PASSWORD);
|
|
65
|
+
else
|
|
66
|
+
test_conf_set(conf, "ssl.keystore.password",
|
|
67
|
+
TEST_FIXTURES_KEYSTORE_PASSWORD
|
|
68
|
+
" and more");
|
|
69
|
+
} else if (!strcmp(type, "PEM")) {
|
|
70
|
+
test_conf_set(conf, "ssl.certificate.location",
|
|
71
|
+
TEST_CERTIFICATE_LOCATION);
|
|
72
|
+
test_conf_set(conf, "ssl.key.location", TEST_KEY_LOCATION);
|
|
73
|
+
if (correct_password)
|
|
74
|
+
test_conf_set(conf, "ssl.key.password",
|
|
75
|
+
TEST_FIXTURES_KEY_PASSWORD);
|
|
76
|
+
else
|
|
77
|
+
test_conf_set(conf, "ssl.keystore.password",
|
|
78
|
+
TEST_FIXTURES_KEYSTORE_PASSWORD
|
|
79
|
+
" and more");
|
|
80
|
+
} else {
|
|
81
|
+
TEST_FAIL("Unexpected key type\n");
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
rk = rd_kafka_new(RD_KAFKA_PRODUCER, conf, errstr, sizeof(errstr));
|
|
85
|
+
if ((rk != NULL) != correct_password) {
|
|
86
|
+
TEST_FAIL("Expected rd_kafka creation to %s\n",
|
|
87
|
+
correct_password ? "succeed" : "fail");
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
if (rk)
|
|
91
|
+
rd_kafka_destroy(rk);
|
|
92
|
+
else
|
|
93
|
+
rd_kafka_conf_destroy(conf);
|
|
94
|
+
|
|
95
|
+
SUB_TEST_PASS();
|
|
96
|
+
|
|
97
|
+
#undef TEST_FIXTURES_KEYSTORE_PASSWORD
|
|
98
|
+
#undef TEST_FIXTURES_KEY_PASSWORD
|
|
99
|
+
#undef TEST_KEYSTORE_LOCATION
|
|
100
|
+
#undef TEST_CERTIFICATE_LOCATION
|
|
101
|
+
#undef TEST_KEY_LOCATION
|
|
102
|
+
#undef TEST_FIXTURES_FOLDER
|
|
103
|
+
#undef TEST_FIXTURES_SSL_FOLDER
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
|
|
107
|
+
int main_0133_ssl_keys(int argc, char **argv) {
|
|
108
|
+
rd_kafka_conf_t *conf;
|
|
109
|
+
char errstr[512];
|
|
110
|
+
rd_kafka_conf_res_t res;
|
|
111
|
+
|
|
112
|
+
test_conf_init(&conf, NULL, 10);
|
|
113
|
+
|
|
114
|
+
/* Check that we're linked/built with OpenSSL 3.x */
|
|
115
|
+
res = rd_kafka_conf_set(conf, "ssl.providers", "a,b", errstr,
|
|
116
|
+
sizeof(errstr));
|
|
117
|
+
rd_kafka_conf_destroy(conf);
|
|
118
|
+
if (res == RD_KAFKA_CONF_INVALID) {
|
|
119
|
+
TEST_SKIP("%s\n", errstr);
|
|
120
|
+
return 0;
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
do_test_ssl_keys("PKCS12", rd_true);
|
|
124
|
+
do_test_ssl_keys("PKCS12", rd_false);
|
|
125
|
+
do_test_ssl_keys("PEM", rd_true);
|
|
126
|
+
do_test_ssl_keys("PEM", rd_false);
|
|
127
|
+
return 0;
|
|
128
|
+
}
|