├── .clang-format ├── .clangd ├── .dockerignore ├── .gitattributes ├── .github ├── ISSUE_TEMPLATE │ ├── bugs-and-issues.md │ ├── feature_request.md │ └── game-connection-issue.md └── workflows │ ├── build.yml │ ├── validate-linux.sh │ ├── validate-report.sh │ └── validate.yml ├── .gitignore ├── CMakeLists.txt ├── COPYING ├── Dockerfile.ci ├── Dockerfile.release ├── LICENSE.txt ├── Makefile ├── OFFICIAL-RELEASE-STEPS.md ├── README.docker.md ├── README.md ├── RELEASE-NOTES.md ├── SECURITY.md ├── artwork ├── AppIcon.png ├── AppIcon@2x.png ├── AppIcon@3x.png ├── AppIcon_1024x1024.png ├── AppIcon_20x20.png ├── AppIcon_29x29.png ├── AppIcon_40x40.png ├── AppIcon_58x58.png ├── AppIcon_60x60.png ├── AppIcon_80x80.png ├── AppIcon_87x87.png ├── AppIcon_90x90.png ├── AppIcon_iPad@2x.png ├── AppIcon_iPadPro@2x.png ├── ZeroTierIcon-WithBorder.png ├── ZeroTierIcon.icns ├── ZeroTierIcon.ico ├── ZeroTierIcon.png ├── ZeroTierIcon32x32.png ├── ZeroTierIcon512x512.png └── logo.html ├── attic ├── historic │ ├── anode │ │ ├── LICENSE.txt │ │ ├── config.mk.Darwin │ │ ├── config.mk.Linux │ │ ├── docs │ │ │ └── anode_protocol.txt │ │ ├── libanode │ │ │ ├── Makefile │ │ │ ├── address.c │ │ │ ├── aes_digest.c │ │ │ ├── anode.h │ │ │ ├── errors.c │ │ │ ├── identity.c │ │ │ ├── impl │ │ │ │ ├── aes.c │ │ │ │ ├── aes.h │ │ │ │ ├── dictionary.c │ │ │ │ ├── dictionary.h │ │ │ │ ├── dns_txt.c │ │ │ │ ├── dns_txt.h │ │ │ │ ├── ec.c │ │ │ │ ├── ec.h │ │ │ │ ├── environment.c │ │ │ │ ├── environment.h │ │ │ │ ├── http_client.c │ │ │ │ ├── http_client.h │ │ │ │ ├── misc.c │ │ │ │ ├── misc.h │ │ │ │ ├── mutex.h │ │ │ │ ├── thread.c │ │ │ │ ├── thread.h │ │ │ │ └── types.h │ │ │ ├── network_address.c │ │ │ ├── secure_random.c │ │ │ ├── system_transport.c │ │ │ ├── tests │ │ │ │ ├── Makefile │ │ │ │ ├── aes-test.c │ │ │ │ ├── anode-secure_random-test.c │ │ │ │ ├── anode-utils-test.c │ │ │ │ ├── anode-zone-test.c │ │ │ │ ├── dictionary-test.c │ │ │ │ ├── ec-test.c │ │ │ │ ├── environment-test.c │ │ │ │ ├── http_client-test.c │ │ │ │ ├── misc-test.c │ │ │ │ └── system_transport-test.c │ │ │ ├── uri.c │ │ │ ├── utils │ │ │ │ └── anode-make-identity.c │ │ │ └── zone.c │ │ └── libspark │ │ │ ├── Makefile │ │ │ ├── experiments │ │ │ ├── FindGoodSegmentDelimiters.cpp │ │ │ └── Makefile │ │ │ ├── streamencoder.h │ │ │ └── wrapper.h │ └── anode_protocol.txt └── world │ ├── README.md │ ├── build.sh │ ├── mkworld.cpp │ ├── world.bin │ └── world.c ├── ci ├── Dockerfile-build.deb ├── Dockerfile-build.el6 ├── Dockerfile-build.rpm ├── Dockerfile-test.deb ├── Dockerfile-test.el6 ├── Dockerfile-test.rpm └── scripts │ ├── build.sh │ ├── lib.sh │ ├── munge_debian_changelog.sh │ ├── munge_rpm_spec.sh │ ├── publish.sh │ └── test.sh ├── controller ├── CV1.cpp ├── CV1.hpp ├── CV2.cpp ├── CV2.hpp ├── ConnectionPool.hpp ├── CtlUtil.cpp ├── CtlUtil.hpp ├── DB.cpp ├── DB.hpp ├── DBMirrorSet.cpp ├── DBMirrorSet.hpp ├── EmbeddedNetworkController.cpp ├── EmbeddedNetworkController.hpp ├── FileDB.cpp ├── FileDB.hpp ├── LFDB.cpp ├── LFDB.hpp ├── PostgreSQL.cpp ├── PostgreSQL.hpp ├── README.md └── Redis.hpp ├── cycle_controllers.sh ├── debian ├── changelog ├── compat ├── control ├── control.wheezy ├── copyright ├── postinst ├── rules ├── rules.static ├── rules.wheezy ├── rules.wheezy.static ├── source │ └── format ├── ufw-zerotier-one ├── zerotier-one.init ├── zerotier-one.service └── zerotier-one.upstart ├── doc ├── README.md ├── build.sh ├── contact@zerotier.com.gpg ├── manpage_encoding_declaration.UTF-8 ├── zerotier-cli.1 ├── zerotier-cli.1.md ├── zerotier-idtool.1 ├── zerotier-idtool.1.md ├── zerotier-one.8 └── zerotier-one.8.md ├── entrypoint.sh.release ├── ext ├── README.md ├── arm32-neon-salsa2012-asm │ ├── README.md │ ├── salsa2012.h │ └── salsa2012.s ├── bin │ └── tap-windows-ndis6 │ │ ├── arm64 │ │ ├── zttap300.cat │ │ ├── zttap300.inf │ │ └── zttap300.sys │ │ ├── x64 │ │ ├── zttap300.cat │ │ ├── zttap300.inf │ │ └── zttap300.sys │ │ └── x86 │ │ ├── zttap300.cat │ │ ├── zttap300.inf │ │ └── zttap300.sys ├── central-controller-docker │ ├── Dockerfile │ ├── Dockerfile.builder │ ├── Dockerfile.run_base │ ├── Makefile │ ├── README.md │ ├── main.sh │ └── migrations │ │ ├── 0001_init.down.sql │ │ ├── 0001_init.up.sql │ │ ├── 0002_os_arch.down.sql │ │ └── 0002_os_arch.up.sql ├── cpp-httplib │ └── httplib.h ├── ed25519-amd64-asm │ ├── batch.c │ ├── choose_t.s │ ├── consts.s │ ├── fe25519.h │ ├── fe25519_add.s │ ├── fe25519_freeze.s │ ├── fe25519_getparity.c │ ├── fe25519_invert.c │ ├── fe25519_iseq.c │ ├── fe25519_iszero.c │ ├── fe25519_mul.s │ ├── fe25519_neg.c │ ├── fe25519_pack.c │ ├── fe25519_pow2523.c │ ├── fe25519_setint.c │ ├── fe25519_square.s │ ├── fe25519_sub.s │ ├── fe25519_unpack.c │ ├── ge25519.h │ ├── ge25519_add.c │ ├── ge25519_add_p1p1.s │ ├── ge25519_base.c │ ├── ge25519_base_niels.data │ ├── ge25519_base_niels_smalltables.data │ ├── ge25519_base_slide_multiples.data │ ├── ge25519_dbl_p1p1.s │ ├── ge25519_double.c │ ├── ge25519_double_scalarmult.c │ ├── ge25519_isneutral.c │ ├── ge25519_multi_scalarmult.c │ ├── ge25519_nielsadd2.s │ ├── ge25519_nielsadd_p1p1.s │ ├── ge25519_p1p1_to_p2.s │ ├── ge25519_p1p1_to_p3.s │ ├── ge25519_pack.c │ ├── ge25519_pnielsadd_p1p1.s │ ├── ge25519_scalarmult_base.c │ ├── ge25519_unpackneg.c │ ├── heap_rootreplaced.s │ ├── heap_rootreplaced_1limb.s │ ├── heap_rootreplaced_2limbs.s │ ├── heap_rootreplaced_3limbs.s │ ├── hram.c │ ├── hram.h │ ├── implementors │ ├── index_heap.c │ ├── index_heap.h │ ├── keypair.c │ ├── open.c │ ├── sc25519.h │ ├── sc25519_add.s │ ├── sc25519_barrett.s │ ├── sc25519_from32bytes.c │ ├── sc25519_from64bytes.c │ ├── sc25519_from_shortsc.c │ ├── sc25519_iszero.c │ ├── sc25519_lt.s │ ├── sc25519_mul.c │ ├── sc25519_mul_shortsc.c │ ├── sc25519_slide.c │ ├── sc25519_sub_nored.s │ ├── sc25519_to32bytes.c │ ├── sc25519_window4.c │ ├── sign.c │ └── ull4_mul.s ├── hiredis-0.14.1 │ ├── .gitignore │ ├── .travis.yml │ ├── CHANGELOG.md │ ├── COPYING │ ├── Makefile │ ├── README.md │ ├── adapters │ │ ├── ae.h │ │ ├── glib.h │ │ ├── ivykis.h │ │ ├── libev.h │ │ ├── libevent.h │ │ ├── libuv.h │ │ ├── macosx.h │ │ └── qt.h │ ├── alloc.c │ ├── alloc.h │ ├── appveyor.yml │ ├── async.c │ ├── async.h │ ├── dict.c │ ├── dict.h │ ├── examples │ │ ├── example-ae.c │ │ ├── example-glib.c │ │ ├── example-ivykis.c │ │ ├── example-libev.c │ │ ├── example-libevent.c │ │ ├── example-libuv.c │ │ ├── example-macosx.c │ │ ├── example-qt.cpp │ │ ├── example-qt.h │ │ └── example.c │ ├── fmacros.h │ ├── hiredis.c │ ├── hiredis.h │ ├── include │ │ └── hiredis │ │ │ ├── alloc.h │ │ │ ├── async.h │ │ │ ├── dict.h │ │ │ ├── fmacros.h │ │ │ ├── hiredis.h │ │ │ ├── net.h │ │ │ ├── read.h │ │ │ ├── sds.h │ │ │ ├── sdsalloc.h │ │ │ └── win32.h │ ├── lib │ │ ├── centos8 │ │ │ └── libhiredis.a │ │ └── macos │ │ │ └── libhiredis.a │ ├── net.c │ ├── net.h │ ├── read.c │ ├── read.h │ ├── sds.c │ ├── sds.h │ ├── sdsalloc.h │ ├── test.c │ └── win32.h ├── hiredis-1.0.2 │ ├── .gitignore │ ├── .travis.yml │ ├── CHANGELOG.md │ ├── CMakeLists.txt │ ├── COPYING │ ├── Makefile │ ├── README.md │ ├── adapters │ │ ├── ae.h │ │ ├── glib.h │ │ ├── ivykis.h │ │ ├── libev.h │ │ ├── libevent.h │ │ ├── libuv.h │ │ ├── macosx.h │ │ └── qt.h │ ├── alloc.c │ ├── alloc.h │ ├── appveyor.yml │ ├── async.c │ ├── async.h │ ├── async_private.h │ ├── dict.c │ ├── dict.h │ ├── examples │ │ ├── CMakeLists.txt │ │ ├── example-ae.c │ │ ├── example-glib.c │ │ ├── example-ivykis.c │ │ ├── example-libev.c │ │ ├── example-libevent-ssl.c │ │ ├── example-libevent.c │ │ ├── example-libuv.c │ │ ├── example-macosx.c │ │ ├── example-push.c │ │ ├── example-qt.cpp │ │ ├── example-qt.h │ │ ├── example-ssl.c │ │ └── example.c │ ├── fmacros.h │ ├── hiredis-config.cmake.in │ ├── hiredis.c │ ├── hiredis.h │ ├── hiredis.pc.in │ ├── hiredis_ssl-config.cmake.in │ ├── hiredis_ssl.h │ ├── hiredis_ssl.pc.in │ ├── include │ │ └── hiredis │ │ │ ├── alloc.h │ │ │ ├── async.h │ │ │ ├── async_private.h │ │ │ ├── dict.h │ │ │ ├── fmacros.h │ │ │ ├── hiredis.h │ │ │ ├── hiredis_ssl.h │ │ │ ├── net.h │ │ │ ├── read.h │ │ │ ├── sds.h │ │ │ ├── sdsalloc.h │ │ │ ├── sockcompat.h │ │ │ └── win32.h │ ├── lib │ │ └── ubuntu22.04 │ │ │ ├── amd64 │ │ │ └── libhiredis.a │ │ │ └── arm64 │ │ │ └── libhiredis.a │ ├── net.c │ ├── net.h │ ├── read.c │ ├── read.h │ ├── sds.c │ ├── sds.h │ ├── sdsalloc.h │ ├── sockcompat.c │ ├── sockcompat.h │ ├── ssl.c │ ├── test.c │ ├── test.sh │ └── win32.h ├── http-parser │ ├── AUTHORS │ ├── LICENSE-MIT │ ├── README.md │ ├── http_parser.c │ └── http_parser.h ├── inja │ ├── LICENSE │ ├── README.md │ └── inja.hpp ├── installfiles │ ├── linux │ │ ├── zerotier-containerized │ │ │ ├── Dockerfile │ │ │ └── main.sh │ │ ├── zerotier-one.init.rhel6 │ │ └── zerotier-one.te │ ├── mac-update │ │ └── updater.tmpl.sh │ ├── mac │ │ ├── ZeroTier One.pkgproj │ │ ├── com.zerotier.one.plist │ │ ├── get-proxy-settings.sh │ │ ├── launch.sh │ │ ├── postinst.sh │ │ ├── preinst.sh │ │ └── uninstall.sh │ └── windows │ │ ├── ZeroTier One Virtual Network Port (NDIS6_x64).aip │ │ ├── ZeroTier One Virtual Network Port (NDIS6_x86).aip │ │ ├── ZeroTier One.aip │ │ └── ZeroTier One.back.aip ├── libnatpmp │ ├── Changelog.txt │ ├── JavaTest.java │ ├── LICENSE │ ├── Makefile │ ├── README │ ├── build.bat │ ├── declspec.h │ ├── fr │ │ └── free │ │ │ └── miniupnp │ │ │ └── libnatpmp │ │ │ ├── LibraryExtractor.java │ │ │ ├── NatPmp.java │ │ │ ├── NatPmpResponse.java │ │ │ └── URLUtils.java │ ├── getgateway.c │ ├── getgateway.h │ ├── libnatpmpmodule.c │ ├── msvc │ │ ├── libnatpmp.sln │ │ ├── libnatpmp.vcproj │ │ └── natpmpc-static.vcproj │ ├── natpmp-jni.c │ ├── natpmp.c │ ├── natpmp.def │ ├── natpmp.h │ ├── natpmpc.1 │ ├── natpmpc.c │ ├── setup.py │ ├── setupmingw32.py │ ├── testgetgateway.c │ ├── wingettimeofday.c │ └── wingettimeofday.h ├── libpqxx-7.7.3 │ ├── .circleci │ │ └── config.yml │ ├── .clang-format │ ├── .cmake-format │ ├── .github │ │ └── workflows │ │ │ └── stale.yml │ ├── .gitignore │ ├── .lgtm.yml │ ├── .lift │ │ └── ignoreFiles │ ├── AUTHORS │ ├── BUILDING-cmake.md │ ├── BUILDING-configure.md │ ├── CMakeLists.txt │ ├── COPYING │ ├── Makefile.am │ ├── Makefile.in │ ├── NEWS │ ├── README.md │ ├── VERSION │ ├── aclocal.m4 │ ├── appveyor.yml │ ├── autogen.sh │ ├── cmake │ │ ├── config.cmake │ │ └── libpqxx-config.cmake │ ├── compile_flags.in │ ├── config-tests │ │ ├── README.md │ │ ├── charconv_float.cxx │ │ ├── charconv_int.cxx │ │ ├── cmp.cxx │ │ ├── concepts.cxx │ │ ├── cxa_demangle.cxx │ │ ├── fs.cxx │ │ ├── gcc_pure.cxx │ │ ├── gcc_visibility.cxx │ │ ├── likely.cxx │ │ ├── multidim-subscript.cxx │ │ ├── need_fslib.cxx │ │ ├── poll.cxx │ │ ├── sleep_for.cxx │ │ ├── span.cxx │ │ ├── strerror_r.cxx │ │ ├── strerror_s.cxx │ │ ├── thread_local.cxx │ │ └── year_month_day.cxx │ ├── config │ │ ├── Makefile.am │ │ ├── Makefile.in │ │ ├── compile │ │ ├── config.guess │ │ ├── config.sub │ │ ├── depcomp │ │ ├── install-sh │ │ ├── ltmain.sh │ │ ├── m4 │ │ │ ├── Makefile.am │ │ │ ├── libtool.m4 │ │ │ ├── ltoptions.m4 │ │ │ ├── ltsugar.m4 │ │ │ ├── ltversion.m4 │ │ │ └── lt~obsolete.m4 │ │ ├── missing │ │ ├── mkinstalldirs │ │ └── test-driver │ ├── configitems │ ├── configure │ ├── configure.ac │ ├── doc │ │ ├── CMakeLists.txt │ │ ├── Doxyfile.in │ │ ├── Makefile.am │ │ ├── Makefile.in │ │ ├── conf.py │ │ └── index.rst │ ├── include │ │ ├── CMakeLists.txt │ │ ├── CMakeLists.txt.template │ │ ├── Makefile.am │ │ ├── Makefile.in │ │ └── pqxx │ │ │ ├── Makefile.am │ │ │ ├── Makefile.in │ │ │ ├── array │ │ │ ├── array.hxx │ │ │ ├── binarystring │ │ │ ├── binarystring.hxx │ │ │ ├── blob │ │ │ ├── blob.hxx │ │ │ ├── composite │ │ │ ├── composite.hxx │ │ │ ├── config.h.in │ │ │ ├── connection │ │ │ ├── connection.hxx │ │ │ ├── cursor │ │ │ ├── cursor.hxx │ │ │ ├── dbtransaction │ │ │ ├── dbtransaction.hxx │ │ │ ├── doc │ │ │ ├── accessing-results.md │ │ │ ├── binary-data.md │ │ │ ├── datatypes.md │ │ │ ├── escaping.md │ │ │ ├── getting-started.md │ │ │ ├── mainpage.md │ │ │ ├── mainpage.md.template │ │ │ ├── parameters.md │ │ │ ├── performance.md │ │ │ ├── prepared-statement.md │ │ │ ├── streams.md │ │ │ └── thread-safety.md │ │ │ ├── errorhandler │ │ │ ├── errorhandler.hxx │ │ │ ├── except │ │ │ ├── except.hxx │ │ │ ├── field │ │ │ ├── field.hxx │ │ │ ├── internal │ │ │ ├── array-composite.hxx │ │ │ ├── callgate.hxx │ │ │ ├── concat.hxx │ │ │ ├── conversions.hxx │ │ │ ├── encoding_group.hxx │ │ │ ├── encodings.hxx │ │ │ ├── gates │ │ │ │ ├── connection-errorhandler.hxx │ │ │ │ ├── connection-largeobject.hxx │ │ │ │ ├── connection-notification_receiver.hxx │ │ │ │ ├── connection-pipeline.hxx │ │ │ │ ├── connection-sql_cursor.hxx │ │ │ │ ├── connection-stream_from.hxx │ │ │ │ ├── connection-stream_to.hxx │ │ │ │ ├── connection-transaction.hxx │ │ │ │ ├── errorhandler-connection.hxx │ │ │ │ ├── icursor_iterator-icursorstream.hxx │ │ │ │ ├── icursorstream-icursor_iterator.hxx │ │ │ │ ├── result-connection.hxx │ │ │ │ ├── result-creation.hxx │ │ │ │ ├── result-pipeline.hxx │ │ │ │ ├── result-sql_cursor.hxx │ │ │ │ ├── transaction-sql_cursor.hxx │ │ │ │ └── transaction-transaction_focus.hxx │ │ │ ├── header-post.hxx │ │ │ ├── header-pre.hxx │ │ │ ├── ignore-deprecated-post.hxx │ │ │ ├── ignore-deprecated-pre.hxx │ │ │ ├── libpq-forward.hxx │ │ │ ├── result_iter.hxx │ │ │ ├── result_iterator.hxx │ │ │ ├── sql_cursor.hxx │ │ │ ├── statement_parameters.hxx │ │ │ ├── stream_iterator.hxx │ │ │ └── wait.hxx │ │ │ ├── isolation │ │ │ ├── isolation.hxx │ │ │ ├── largeobject │ │ │ ├── largeobject.hxx │ │ │ ├── nontransaction │ │ │ ├── nontransaction.hxx │ │ │ ├── notification │ │ │ ├── notification.hxx │ │ │ ├── params │ │ │ ├── params.hxx │ │ │ ├── pipeline │ │ │ ├── pipeline.hxx │ │ │ ├── pqxx │ │ │ ├── prepared_statement │ │ │ ├── prepared_statement.hxx │ │ │ ├── range │ │ │ ├── range.hxx │ │ │ ├── result │ │ │ ├── result.hxx │ │ │ ├── robusttransaction │ │ │ ├── robusttransaction.hxx │ │ │ ├── row │ │ │ ├── row.hxx │ │ │ ├── separated_list │ │ │ ├── separated_list.hxx │ │ │ ├── strconv │ │ │ ├── strconv.hxx │ │ │ ├── stream_from │ │ │ ├── stream_from.hxx │ │ │ ├── stream_to │ │ │ ├── stream_to.hxx │ │ │ ├── subtransaction │ │ │ ├── subtransaction.hxx │ │ │ ├── time │ │ │ ├── time.hxx │ │ │ ├── transaction │ │ │ ├── transaction.hxx │ │ │ ├── transaction_base │ │ │ ├── transaction_base.hxx │ │ │ ├── transaction_focus │ │ │ ├── transaction_focus.hxx │ │ │ ├── transactor │ │ │ ├── transactor.hxx │ │ │ ├── types │ │ │ ├── types.hxx │ │ │ ├── util │ │ │ ├── util.hxx │ │ │ ├── version │ │ │ ├── version.hxx │ │ │ ├── version.hxx.template │ │ │ ├── zview │ │ │ └── zview.hxx │ ├── install │ │ └── ubuntu22.04 │ │ │ ├── amd64 │ │ │ ├── include │ │ │ │ └── pqxx │ │ │ │ │ ├── array │ │ │ │ │ ├── array.hxx │ │ │ │ │ ├── binarystring │ │ │ │ │ ├── binarystring.hxx │ │ │ │ │ ├── blob │ │ │ │ │ ├── blob.hxx │ │ │ │ │ ├── composite │ │ │ │ │ ├── composite.hxx │ │ │ │ │ ├── config-public-compiler.h │ │ │ │ │ ├── connection │ │ │ │ │ ├── connection.hxx │ │ │ │ │ ├── cursor │ │ │ │ │ ├── cursor.hxx │ │ │ │ │ ├── dbtransaction │ │ │ │ │ ├── dbtransaction.hxx │ │ │ │ │ ├── errorhandler │ │ │ │ │ ├── errorhandler.hxx │ │ │ │ │ ├── except │ │ │ │ │ ├── except.hxx │ │ │ │ │ ├── field │ │ │ │ │ ├── field.hxx │ │ │ │ │ ├── internal │ │ │ │ │ ├── array-composite.hxx │ │ │ │ │ ├── callgate.hxx │ │ │ │ │ ├── concat.hxx │ │ │ │ │ ├── conversions.hxx │ │ │ │ │ ├── encoding_group.hxx │ │ │ │ │ ├── encodings.hxx │ │ │ │ │ ├── gates │ │ │ │ │ │ ├── connection-errorhandler.hxx │ │ │ │ │ │ ├── connection-largeobject.hxx │ │ │ │ │ │ ├── connection-notification_receiver.hxx │ │ │ │ │ │ ├── connection-pipeline.hxx │ │ │ │ │ │ ├── connection-sql_cursor.hxx │ │ │ │ │ │ ├── connection-stream_from.hxx │ │ │ │ │ │ ├── connection-stream_to.hxx │ │ │ │ │ │ ├── connection-transaction.hxx │ │ │ │ │ │ ├── errorhandler-connection.hxx │ │ │ │ │ │ ├── icursor_iterator-icursorstream.hxx │ │ │ │ │ │ ├── icursorstream-icursor_iterator.hxx │ │ │ │ │ │ ├── result-connection.hxx │ │ │ │ │ │ ├── result-creation.hxx │ │ │ │ │ │ ├── result-pipeline.hxx │ │ │ │ │ │ ├── result-sql_cursor.hxx │ │ │ │ │ │ ├── transaction-sql_cursor.hxx │ │ │ │ │ │ └── transaction-transaction_focus.hxx │ │ │ │ │ ├── header-post.hxx │ │ │ │ │ ├── header-pre.hxx │ │ │ │ │ ├── ignore-deprecated-post.hxx │ │ │ │ │ ├── ignore-deprecated-pre.hxx │ │ │ │ │ ├── libpq-forward.hxx │ │ │ │ │ ├── result_iter.hxx │ │ │ │ │ ├── result_iterator.hxx │ │ │ │ │ ├── sql_cursor.hxx │ │ │ │ │ ├── statement_parameters.hxx │ │ │ │ │ ├── stream_iterator.hxx │ │ │ │ │ └── wait.hxx │ │ │ │ │ ├── isolation │ │ │ │ │ ├── isolation.hxx │ │ │ │ │ ├── largeobject │ │ │ │ │ ├── largeobject.hxx │ │ │ │ │ ├── nontransaction │ │ │ │ │ ├── nontransaction.hxx │ │ │ │ │ ├── notification │ │ │ │ │ ├── notification.hxx │ │ │ │ │ ├── params │ │ │ │ │ ├── params.hxx │ │ │ │ │ ├── pipeline │ │ │ │ │ ├── pipeline.hxx │ │ │ │ │ ├── pqxx │ │ │ │ │ ├── prepared_statement │ │ │ │ │ ├── prepared_statement.hxx │ │ │ │ │ ├── range │ │ │ │ │ ├── range.hxx │ │ │ │ │ ├── result │ │ │ │ │ ├── result.hxx │ │ │ │ │ ├── robusttransaction │ │ │ │ │ ├── robusttransaction.hxx │ │ │ │ │ ├── row │ │ │ │ │ ├── row.hxx │ │ │ │ │ ├── separated_list │ │ │ │ │ ├── separated_list.hxx │ │ │ │ │ ├── strconv │ │ │ │ │ ├── strconv.hxx │ │ │ │ │ ├── stream_from │ │ │ │ │ ├── stream_from.hxx │ │ │ │ │ ├── stream_to │ │ │ │ │ ├── stream_to.hxx │ │ │ │ │ ├── subtransaction │ │ │ │ │ ├── subtransaction.hxx │ │ │ │ │ ├── time │ │ │ │ │ ├── time.hxx │ │ │ │ │ ├── transaction │ │ │ │ │ ├── transaction.hxx │ │ │ │ │ ├── transaction_base │ │ │ │ │ ├── transaction_base.hxx │ │ │ │ │ ├── transaction_focus │ │ │ │ │ ├── transaction_focus.hxx │ │ │ │ │ ├── transactor │ │ │ │ │ ├── transactor.hxx │ │ │ │ │ ├── types │ │ │ │ │ ├── types.hxx │ │ │ │ │ ├── util │ │ │ │ │ ├── util.hxx │ │ │ │ │ ├── version │ │ │ │ │ ├── version.hxx │ │ │ │ │ ├── zview │ │ │ │ │ └── zview.hxx │ │ │ ├── lib │ │ │ │ ├── cmake │ │ │ │ │ └── libpqxx │ │ │ │ │ │ ├── libpqxx-config-version.cmake │ │ │ │ │ │ ├── libpqxx-config.cmake │ │ │ │ │ │ ├── libpqxx-targets-noconfig.cmake │ │ │ │ │ │ └── libpqxx-targets.cmake │ │ │ │ ├── libpqxx-7.7.a │ │ │ │ └── libpqxx.a │ │ │ └── share │ │ │ │ └── doc │ │ │ │ └── libpqxx │ │ │ │ ├── accessing-results.md │ │ │ │ ├── binary-data.md │ │ │ │ ├── datatypes.md │ │ │ │ ├── escaping.md │ │ │ │ ├── getting-started.md │ │ │ │ ├── mainpage.md │ │ │ │ ├── parameters.md │ │ │ │ ├── performance.md │ │ │ │ ├── prepared-statement.md │ │ │ │ ├── streams.md │ │ │ │ └── thread-safety.md │ │ │ └── arm64 │ │ │ ├── include │ │ │ └── pqxx │ │ │ │ ├── array │ │ │ │ ├── array.hxx │ │ │ │ ├── binarystring │ │ │ │ ├── binarystring.hxx │ │ │ │ ├── blob │ │ │ │ ├── blob.hxx │ │ │ │ ├── composite │ │ │ │ ├── composite.hxx │ │ │ │ ├── config-public-compiler.h │ │ │ │ ├── connection │ │ │ │ ├── connection.hxx │ │ │ │ ├── cursor │ │ │ │ ├── cursor.hxx │ │ │ │ ├── dbtransaction │ │ │ │ ├── dbtransaction.hxx │ │ │ │ ├── errorhandler │ │ │ │ ├── errorhandler.hxx │ │ │ │ ├── except │ │ │ │ ├── except.hxx │ │ │ │ ├── field │ │ │ │ ├── field.hxx │ │ │ │ ├── internal │ │ │ │ ├── array-composite.hxx │ │ │ │ ├── callgate.hxx │ │ │ │ ├── concat.hxx │ │ │ │ ├── conversions.hxx │ │ │ │ ├── encoding_group.hxx │ │ │ │ ├── encodings.hxx │ │ │ │ ├── gates │ │ │ │ │ ├── connection-errorhandler.hxx │ │ │ │ │ ├── connection-largeobject.hxx │ │ │ │ │ ├── connection-notification_receiver.hxx │ │ │ │ │ ├── connection-pipeline.hxx │ │ │ │ │ ├── connection-sql_cursor.hxx │ │ │ │ │ ├── connection-stream_from.hxx │ │ │ │ │ ├── connection-stream_to.hxx │ │ │ │ │ ├── connection-transaction.hxx │ │ │ │ │ ├── errorhandler-connection.hxx │ │ │ │ │ ├── icursor_iterator-icursorstream.hxx │ │ │ │ │ ├── icursorstream-icursor_iterator.hxx │ │ │ │ │ ├── result-connection.hxx │ │ │ │ │ ├── result-creation.hxx │ │ │ │ │ ├── result-pipeline.hxx │ │ │ │ │ ├── result-sql_cursor.hxx │ │ │ │ │ ├── transaction-sql_cursor.hxx │ │ │ │ │ └── transaction-transaction_focus.hxx │ │ │ │ ├── header-post.hxx │ │ │ │ ├── header-pre.hxx │ │ │ │ ├── ignore-deprecated-post.hxx │ │ │ │ ├── ignore-deprecated-pre.hxx │ │ │ │ ├── libpq-forward.hxx │ │ │ │ ├── result_iter.hxx │ │ │ │ ├── result_iterator.hxx │ │ │ │ ├── sql_cursor.hxx │ │ │ │ ├── statement_parameters.hxx │ │ │ │ ├── stream_iterator.hxx │ │ │ │ └── wait.hxx │ │ │ │ ├── isolation │ │ │ │ ├── isolation.hxx │ │ │ │ ├── largeobject │ │ │ │ ├── largeobject.hxx │ │ │ │ ├── nontransaction │ │ │ │ ├── nontransaction.hxx │ │ │ │ ├── notification │ │ │ │ ├── notification.hxx │ │ │ │ ├── params │ │ │ │ ├── params.hxx │ │ │ │ ├── pipeline │ │ │ │ ├── pipeline.hxx │ │ │ │ ├── pqxx │ │ │ │ ├── prepared_statement │ │ │ │ ├── prepared_statement.hxx │ │ │ │ ├── range │ │ │ │ ├── range.hxx │ │ │ │ ├── result │ │ │ │ ├── result.hxx │ │ │ │ ├── robusttransaction │ │ │ │ ├── robusttransaction.hxx │ │ │ │ ├── row │ │ │ │ ├── row.hxx │ │ │ │ ├── separated_list │ │ │ │ ├── separated_list.hxx │ │ │ │ ├── strconv │ │ │ │ ├── strconv.hxx │ │ │ │ ├── stream_from │ │ │ │ ├── stream_from.hxx │ │ │ │ ├── stream_to │ │ │ │ ├── stream_to.hxx │ │ │ │ ├── subtransaction │ │ │ │ ├── subtransaction.hxx │ │ │ │ ├── time │ │ │ │ ├── time.hxx │ │ │ │ ├── transaction │ │ │ │ ├── transaction.hxx │ │ │ │ ├── transaction_base │ │ │ │ ├── transaction_base.hxx │ │ │ │ ├── transaction_focus │ │ │ │ ├── transaction_focus.hxx │ │ │ │ ├── transactor │ │ │ │ ├── transactor.hxx │ │ │ │ ├── types │ │ │ │ ├── types.hxx │ │ │ │ ├── util │ │ │ │ ├── util.hxx │ │ │ │ ├── version │ │ │ │ ├── version.hxx │ │ │ │ ├── zview │ │ │ │ └── zview.hxx │ │ │ ├── lib │ │ │ ├── cmake │ │ │ │ └── libpqxx │ │ │ │ │ ├── libpqxx-config-version.cmake │ │ │ │ │ ├── libpqxx-config.cmake │ │ │ │ │ ├── libpqxx-targets-noconfig.cmake │ │ │ │ │ └── libpqxx-targets.cmake │ │ │ ├── libpqxx-7.7.a │ │ │ └── libpqxx.a │ │ │ └── share │ │ │ └── doc │ │ │ └── libpqxx │ │ │ ├── accessing-results.md │ │ │ ├── binary-data.md │ │ │ ├── datatypes.md │ │ │ ├── escaping.md │ │ │ ├── getting-started.md │ │ │ ├── mainpage.md │ │ │ ├── parameters.md │ │ │ ├── performance.md │ │ │ ├── prepared-statement.md │ │ │ ├── streams.md │ │ │ └── thread-safety.md │ ├── libpqxx.pc.in │ ├── requirements.json │ ├── src │ │ ├── CMakeLists.txt │ │ ├── Makefile.am │ │ ├── Makefile.in │ │ ├── array.cxx │ │ ├── binarystring.cxx │ │ ├── blob.cxx │ │ ├── connection.cxx │ │ ├── cursor.cxx │ │ ├── encodings.cxx │ │ ├── errorhandler.cxx │ │ ├── except.cxx │ │ ├── field.cxx │ │ ├── largeobject.cxx │ │ ├── notification.cxx │ │ ├── params.cxx │ │ ├── pipeline.cxx │ │ ├── pqxx-source.hxx │ │ ├── result.cxx │ │ ├── robusttransaction.cxx │ │ ├── row.cxx │ │ ├── sql_cursor.cxx │ │ ├── strconv.cxx │ │ ├── stream_from.cxx │ │ ├── stream_to.cxx │ │ ├── subtransaction.cxx │ │ ├── time.cxx │ │ ├── transaction.cxx │ │ ├── transaction_base.cxx │ │ ├── util.cxx │ │ ├── version.cxx │ │ └── wait.cxx │ ├── test │ │ ├── CMakeLists.txt │ │ ├── Makefile.am │ │ ├── Makefile.am.template │ │ ├── Makefile.in │ │ ├── runner.cxx │ │ ├── test00.cxx │ │ ├── test01.cxx │ │ ├── test02.cxx │ │ ├── test04.cxx │ │ ├── test07.cxx │ │ ├── test10.cxx │ │ ├── test11.cxx │ │ ├── test13.cxx │ │ ├── test14.cxx │ │ ├── test16.cxx │ │ ├── test17.cxx │ │ ├── test18.cxx │ │ ├── test20.cxx │ │ ├── test21.cxx │ │ ├── test26.cxx │ │ ├── test29.cxx │ │ ├── test30.cxx │ │ ├── test32.cxx │ │ ├── test37.cxx │ │ ├── test39.cxx │ │ ├── test46.cxx │ │ ├── test56.cxx │ │ ├── test60.cxx │ │ ├── test61.cxx │ │ ├── test62.cxx │ │ ├── test69.cxx │ │ ├── test70.cxx │ │ ├── test71.cxx │ │ ├── test72.cxx │ │ ├── test74.cxx │ │ ├── test75.cxx │ │ ├── test76.cxx │ │ ├── test77.cxx │ │ ├── test78.cxx │ │ ├── test79.cxx │ │ ├── test82.cxx │ │ ├── test84.cxx │ │ ├── test87.cxx │ │ ├── test88.cxx │ │ ├── test89.cxx │ │ ├── test90.cxx │ │ ├── test_helpers.hxx │ │ ├── test_types.hxx │ │ └── unit │ │ │ ├── CMakeLists.txt │ │ │ ├── test_array.cxx │ │ │ ├── test_binarystring.cxx │ │ │ ├── test_blob.cxx │ │ │ ├── test_cancel_query.cxx │ │ │ ├── test_column.cxx │ │ │ ├── test_composite.cxx │ │ │ ├── test_connection.cxx │ │ │ ├── test_cursor.cxx │ │ │ ├── test_encodings.cxx │ │ │ ├── test_error_verbosity.cxx │ │ │ ├── test_errorhandler.cxx │ │ │ ├── test_escape.cxx │ │ │ ├── test_exceptions.cxx │ │ │ ├── test_field.cxx │ │ │ ├── test_float.cxx │ │ │ ├── test_largeobject.cxx │ │ │ ├── test_nonblocking_connect.cxx │ │ │ ├── test_notification.cxx │ │ │ ├── test_pipeline.cxx │ │ │ ├── test_prepared_statement.cxx │ │ │ ├── test_range.cxx │ │ │ ├── test_read_transaction.cxx │ │ │ ├── test_result_iteration.cxx │ │ │ ├── test_result_slicing.cxx │ │ │ ├── test_row.cxx │ │ │ ├── test_separated_list.cxx │ │ │ ├── test_simultaneous_transactions.cxx │ │ │ ├── test_sql_cursor.cxx │ │ │ ├── test_stateless_cursor.cxx │ │ │ ├── test_strconv.cxx │ │ │ ├── test_stream_from.cxx │ │ │ ├── test_stream_to.cxx │ │ │ ├── test_string_conversion.cxx │ │ │ ├── test_subtransaction.cxx │ │ │ ├── test_test_helpers.cxx │ │ │ ├── test_thread_safety_model.cxx │ │ │ ├── test_time.cxx │ │ │ ├── test_transaction.cxx │ │ │ ├── test_transaction_base.cxx │ │ │ ├── test_transaction_focus.cxx │ │ │ ├── test_transactor.cxx │ │ │ ├── test_type_name.cxx │ │ │ └── test_zview.cxx │ └── tools │ │ ├── Makefile.am │ │ ├── Makefile.in │ │ ├── deprecations │ │ ├── extract_version │ │ ├── format │ │ ├── lint │ │ ├── m4esc.py │ │ ├── pqxxthreadsafety.cxx │ │ ├── rmlo.cxx │ │ ├── splitconfig │ │ ├── template2mak.py │ │ ├── test_all.py │ │ ├── todo │ │ └── update-copyright ├── miniupnpc │ ├── Changelog.txt │ ├── LICENSE │ ├── README │ ├── VERSION │ ├── codelength.h │ ├── connecthostport.c │ ├── connecthostport.h │ ├── igd_desc_parse.c │ ├── igd_desc_parse.h │ ├── listdevices.c │ ├── minisoap.c │ ├── minisoap.h │ ├── minissdpc.c │ ├── minissdpc.h │ ├── miniupnpc.c │ ├── miniupnpc.def │ ├── miniupnpc.h │ ├── miniupnpc_declspec.h │ ├── miniupnpcmodule.c │ ├── miniupnpcstrings.h.in │ ├── miniupnpctypes.h │ ├── miniwget.c │ ├── miniwget.h │ ├── minixml.c │ ├── minixml.h │ ├── minixmlvalid.c │ ├── portlistingparse.c │ ├── portlistingparse.h │ ├── receivedata.c │ ├── receivedata.h │ ├── updateminiupnpcstrings.sh │ ├── upnpc.c │ ├── upnpcommands.c │ ├── upnpcommands.h │ ├── upnpdev.c │ ├── upnpdev.h │ ├── upnperrors.c │ ├── upnperrors.h │ ├── upnpreplyparse.c │ ├── upnpreplyparse.h │ └── wingenminiupnpcstrings.c ├── misc │ └── linux-old-glibc-compat.c ├── nlohmann │ ├── LICENSE.MIT │ ├── README.md │ └── json.hpp ├── prometheus-cpp-lite-1.0 │ ├── .gitignore │ ├── 3rdparty │ │ └── http-client-lite │ │ │ ├── CMakeLists.txt │ │ │ ├── LICENSE │ │ │ ├── README.md │ │ │ ├── examples │ │ │ ├── CMakeLists.txt │ │ │ └── simple_request.cpp │ │ │ └── include │ │ │ └── jdl │ │ │ └── httpclientlite.h │ ├── CMakeLists.txt │ ├── LICENSE │ ├── README.md │ ├── core │ │ ├── CMakeLists.txt │ │ └── include │ │ │ └── prometheus │ │ │ ├── atomic_floating.h │ │ │ ├── benchmark.h │ │ │ ├── builder.h │ │ │ ├── ckms_quantiles.h │ │ │ ├── client_metric.h │ │ │ ├── collectable.h │ │ │ ├── counter.h │ │ │ ├── family.h │ │ │ ├── gateway.h │ │ │ ├── gauge.h │ │ │ ├── hash.h │ │ │ ├── histogram.h │ │ │ ├── metric.h │ │ │ ├── metric_family.h │ │ │ ├── push_to_server.h │ │ │ ├── registry.h │ │ │ ├── save_to_file.h │ │ │ ├── summary.h │ │ │ ├── text_serializer.h │ │ │ └── time_window_quantiles.h │ ├── examples │ │ ├── CMakeLists.txt │ │ ├── gateway_example.cpp │ │ ├── modern_example.cpp │ │ ├── original_example.cpp │ │ ├── push_to_server_example.cpp │ │ ├── save_to_file_example.cpp │ │ ├── simpleapi_example.cpp │ │ ├── simpleapi_use_in_class_example.cpp │ │ ├── use_benchmark_in_class_example.cpp │ │ ├── use_counters_in_class_example.cpp │ │ └── use_gauge_in_class_example.cpp │ └── simpleapi │ │ ├── CMakeLists.txt │ │ ├── include │ │ └── prometheus │ │ │ └── simpleapi.h │ │ └── src │ │ └── simpleapi.cpp ├── redis-plus-plus-1.1.1 │ ├── .gitignore │ ├── CMakeLists.txt │ ├── LICENSE │ ├── README.md │ ├── install │ │ ├── centos8 │ │ │ ├── include │ │ │ │ └── sw │ │ │ │ │ └── redis++ │ │ │ │ │ ├── command.h │ │ │ │ │ ├── command_args.h │ │ │ │ │ ├── command_options.h │ │ │ │ │ ├── connection.h │ │ │ │ │ ├── connection_pool.h │ │ │ │ │ ├── errors.h │ │ │ │ │ ├── pipeline.h │ │ │ │ │ ├── queued_redis.h │ │ │ │ │ ├── queued_redis.hpp │ │ │ │ │ ├── redis++.h │ │ │ │ │ ├── redis.h │ │ │ │ │ ├── redis.hpp │ │ │ │ │ ├── redis_cluster.h │ │ │ │ │ ├── redis_cluster.hpp │ │ │ │ │ ├── reply.h │ │ │ │ │ ├── sentinel.h │ │ │ │ │ ├── shards.h │ │ │ │ │ ├── shards_pool.h │ │ │ │ │ ├── subscriber.h │ │ │ │ │ ├── transaction.h │ │ │ │ │ └── utils.h │ │ │ └── lib │ │ │ │ └── libredis++.a │ │ └── macos │ │ │ ├── include │ │ │ └── sw │ │ │ │ └── redis++ │ │ │ │ ├── command.h │ │ │ │ ├── command_args.h │ │ │ │ ├── command_options.h │ │ │ │ ├── connection.h │ │ │ │ ├── connection_pool.h │ │ │ │ ├── errors.h │ │ │ │ ├── pipeline.h │ │ │ │ ├── queued_redis.h │ │ │ │ ├── queued_redis.hpp │ │ │ │ ├── redis++.h │ │ │ │ ├── redis.h │ │ │ │ ├── redis.hpp │ │ │ │ ├── redis_cluster.h │ │ │ │ ├── redis_cluster.hpp │ │ │ │ ├── reply.h │ │ │ │ ├── sentinel.h │ │ │ │ ├── shards.h │ │ │ │ ├── shards_pool.h │ │ │ │ ├── subscriber.h │ │ │ │ ├── transaction.h │ │ │ │ └── utils.h │ │ │ └── lib │ │ │ └── libredis++.a │ ├── src │ │ └── sw │ │ │ └── redis++ │ │ │ ├── command.cpp │ │ │ ├── command.h │ │ │ ├── command_args.h │ │ │ ├── command_options.cpp │ │ │ ├── command_options.h │ │ │ ├── connection.cpp │ │ │ ├── connection.h │ │ │ ├── connection_pool.cpp │ │ │ ├── connection_pool.h │ │ │ ├── crc16.cpp │ │ │ ├── errors.cpp │ │ │ ├── errors.h │ │ │ ├── pipeline.cpp │ │ │ ├── pipeline.h │ │ │ ├── queued_redis.h │ │ │ ├── queued_redis.hpp │ │ │ ├── redis++.h │ │ │ ├── redis.cpp │ │ │ ├── redis.h │ │ │ ├── redis.hpp │ │ │ ├── redis_cluster.cpp │ │ │ ├── redis_cluster.h │ │ │ ├── redis_cluster.hpp │ │ │ ├── reply.cpp │ │ │ ├── reply.h │ │ │ ├── sentinel.cpp │ │ │ ├── sentinel.h │ │ │ ├── shards.cpp │ │ │ ├── shards.h │ │ │ ├── shards_pool.cpp │ │ │ ├── shards_pool.h │ │ │ ├── subscriber.cpp │ │ │ ├── subscriber.h │ │ │ ├── transaction.cpp │ │ │ ├── transaction.h │ │ │ └── utils.h │ └── test │ │ ├── CMakeLists.txt │ │ └── src │ │ └── sw │ │ └── redis++ │ │ ├── benchmark_test.h │ │ ├── benchmark_test.hpp │ │ ├── connection_cmds_test.h │ │ ├── connection_cmds_test.hpp │ │ ├── geo_cmds_test.h │ │ ├── geo_cmds_test.hpp │ │ ├── hash_cmds_test.h │ │ ├── hash_cmds_test.hpp │ │ ├── hyperloglog_cmds_test.h │ │ ├── hyperloglog_cmds_test.hpp │ │ ├── keys_cmds_test.h │ │ ├── keys_cmds_test.hpp │ │ ├── list_cmds_test.h │ │ ├── list_cmds_test.hpp │ │ ├── pipeline_transaction_test.h │ │ ├── pipeline_transaction_test.hpp │ │ ├── pubsub_test.h │ │ ├── pubsub_test.hpp │ │ ├── sanity_test.h │ │ ├── sanity_test.hpp │ │ ├── script_cmds_test.h │ │ ├── script_cmds_test.hpp │ │ ├── set_cmds_test.h │ │ ├── set_cmds_test.hpp │ │ ├── stream_cmds_test.h │ │ ├── stream_cmds_test.hpp │ │ ├── string_cmds_test.h │ │ ├── string_cmds_test.hpp │ │ ├── test_main.cpp │ │ ├── threads_test.h │ │ ├── threads_test.hpp │ │ ├── utils.h │ │ ├── zset_cmds_test.h │ │ └── zset_cmds_test.hpp ├── redis-plus-plus-1.3.3 │ ├── .github │ │ └── ISSUE_TEMPLATE │ │ │ ├── bug_report.md │ │ │ ├── feature_request.md │ │ │ └── question.md │ ├── .gitignore │ ├── .travis.yml │ ├── CMakeLists.txt │ ├── LICENSE │ ├── README.md │ ├── cmake │ │ ├── redis++-config.cmake.in │ │ └── redis++.pc.in │ ├── install │ │ └── ubuntu22.04 │ │ │ ├── amd64 │ │ │ ├── include │ │ │ │ └── sw │ │ │ │ │ └── redis++ │ │ │ │ │ ├── cmd_formatter.h │ │ │ │ │ ├── command.h │ │ │ │ │ ├── command_args.h │ │ │ │ │ ├── command_options.h │ │ │ │ │ ├── connection.h │ │ │ │ │ ├── connection_pool.h │ │ │ │ │ ├── cxx_utils.h │ │ │ │ │ ├── errors.h │ │ │ │ │ ├── pipeline.h │ │ │ │ │ ├── queued_redis.h │ │ │ │ │ ├── queued_redis.hpp │ │ │ │ │ ├── redis++.h │ │ │ │ │ ├── redis.h │ │ │ │ │ ├── redis.hpp │ │ │ │ │ ├── redis_cluster.h │ │ │ │ │ ├── redis_cluster.hpp │ │ │ │ │ ├── reply.h │ │ │ │ │ ├── sentinel.h │ │ │ │ │ ├── shards.h │ │ │ │ │ ├── shards_pool.h │ │ │ │ │ ├── subscriber.h │ │ │ │ │ ├── tls.h │ │ │ │ │ ├── transaction.h │ │ │ │ │ └── utils.h │ │ │ ├── lib │ │ │ │ ├── libredis++.a │ │ │ │ └── pkgconfig │ │ │ │ │ └── redis++.pc │ │ │ └── share │ │ │ │ └── cmake │ │ │ │ └── redis++ │ │ │ │ ├── redis++-config-version.cmake │ │ │ │ ├── redis++-config.cmake │ │ │ │ ├── redis++-targets-release.cmake │ │ │ │ └── redis++-targets.cmake │ │ │ └── arm64 │ │ │ ├── include │ │ │ └── sw │ │ │ │ └── redis++ │ │ │ │ ├── cmd_formatter.h │ │ │ │ ├── command.h │ │ │ │ ├── command_args.h │ │ │ │ ├── command_options.h │ │ │ │ ├── connection.h │ │ │ │ ├── connection_pool.h │ │ │ │ ├── cxx_utils.h │ │ │ │ ├── errors.h │ │ │ │ ├── pipeline.h │ │ │ │ ├── queued_redis.h │ │ │ │ ├── queued_redis.hpp │ │ │ │ ├── redis++.h │ │ │ │ ├── redis.h │ │ │ │ ├── redis.hpp │ │ │ │ ├── redis_cluster.h │ │ │ │ ├── redis_cluster.hpp │ │ │ │ ├── reply.h │ │ │ │ ├── sentinel.h │ │ │ │ ├── shards.h │ │ │ │ ├── shards_pool.h │ │ │ │ ├── subscriber.h │ │ │ │ ├── tls.h │ │ │ │ ├── transaction.h │ │ │ │ └── utils.h │ │ │ ├── lib │ │ │ ├── libredis++.a │ │ │ └── pkgconfig │ │ │ │ └── redis++.pc │ │ │ └── share │ │ │ └── cmake │ │ │ └── redis++ │ │ │ ├── redis++-config-version.cmake │ │ │ ├── redis++-config.cmake │ │ │ ├── redis++-targets-release.cmake │ │ │ └── redis++-targets.cmake │ ├── src │ │ └── sw │ │ │ └── redis++ │ │ │ ├── async_connection.cpp │ │ │ ├── async_connection.h │ │ │ ├── async_connection_pool.cpp │ │ │ ├── async_connection_pool.h │ │ │ ├── async_redis++.h │ │ │ ├── async_redis.cpp │ │ │ ├── async_redis.h │ │ │ ├── async_redis_cluster.cpp │ │ │ ├── async_redis_cluster.h │ │ │ ├── async_sentinel.cpp │ │ │ ├── async_sentinel.h │ │ │ ├── async_shards_pool.cpp │ │ │ ├── async_shards_pool.h │ │ │ ├── cmd_formatter.h │ │ │ ├── command.cpp │ │ │ ├── command.h │ │ │ ├── command_args.h │ │ │ ├── command_options.cpp │ │ │ ├── command_options.h │ │ │ ├── connection.cpp │ │ │ ├── connection.h │ │ │ ├── connection_pool.cpp │ │ │ ├── connection_pool.h │ │ │ ├── crc16.cpp │ │ │ ├── cxx11 │ │ │ └── cxx_utils.h │ │ │ ├── cxx17 │ │ │ └── cxx_utils.h │ │ │ ├── errors.cpp │ │ │ ├── errors.h │ │ │ ├── event_loop.cpp │ │ │ ├── event_loop.h │ │ │ ├── future │ │ │ ├── boost │ │ │ │ └── async_utils.h │ │ │ └── std │ │ │ │ └── async_utils.h │ │ │ ├── no_tls │ │ │ └── tls.h │ │ │ ├── pipeline.cpp │ │ │ ├── pipeline.h │ │ │ ├── queued_redis.h │ │ │ ├── queued_redis.hpp │ │ │ ├── redis++.h │ │ │ ├── redis.cpp │ │ │ ├── redis.h │ │ │ ├── redis.hpp │ │ │ ├── redis_cluster.cpp │ │ │ ├── redis_cluster.h │ │ │ ├── redis_cluster.hpp │ │ │ ├── reply.cpp │ │ │ ├── reply.h │ │ │ ├── sentinel.cpp │ │ │ ├── sentinel.h │ │ │ ├── shards.cpp │ │ │ ├── shards.h │ │ │ ├── shards_pool.cpp │ │ │ ├── shards_pool.h │ │ │ ├── subscriber.cpp │ │ │ ├── subscriber.h │ │ │ ├── tls │ │ │ ├── tls.cpp │ │ │ └── tls.h │ │ │ ├── transaction.cpp │ │ │ ├── transaction.h │ │ │ └── utils.h │ └── test │ │ ├── CMakeLists.txt │ │ └── src │ │ └── sw │ │ └── redis++ │ │ ├── benchmark_test.h │ │ ├── benchmark_test.hpp │ │ ├── connection_cmds_test.h │ │ ├── connection_cmds_test.hpp │ │ ├── geo_cmds_test.h │ │ ├── geo_cmds_test.hpp │ │ ├── hash_cmds_test.h │ │ ├── hash_cmds_test.hpp │ │ ├── hyperloglog_cmds_test.h │ │ ├── hyperloglog_cmds_test.hpp │ │ ├── keys_cmds_test.h │ │ ├── keys_cmds_test.hpp │ │ ├── list_cmds_test.h │ │ ├── list_cmds_test.hpp │ │ ├── pipeline_transaction_test.h │ │ ├── pipeline_transaction_test.hpp │ │ ├── pubsub_test.h │ │ ├── pubsub_test.hpp │ │ ├── sanity_test.h │ │ ├── sanity_test.hpp │ │ ├── script_cmds_test.h │ │ ├── script_cmds_test.hpp │ │ ├── set_cmds_test.h │ │ ├── set_cmds_test.hpp │ │ ├── stream_cmds_test.h │ │ ├── stream_cmds_test.hpp │ │ ├── string_cmds_test.h │ │ ├── string_cmds_test.hpp │ │ ├── test_main.cpp │ │ ├── threads_test.h │ │ ├── threads_test.hpp │ │ ├── utils.h │ │ ├── zset_cmds_test.h │ │ └── zset_cmds_test.hpp └── x64-salsa2012-asm │ ├── README.md │ ├── salsa2012.h │ └── salsa2012.s ├── include ├── README.md ├── ZeroTierDebug.h └── ZeroTierOne.h ├── java ├── CMakeLists.txt ├── README.md ├── build.xml ├── jni │ ├── ZT_jnicache.cpp │ ├── ZT_jnicache.h │ ├── ZT_jniutils.cpp │ ├── ZT_jniutils.h │ ├── com_zerotierone_sdk_Node.cpp │ └── com_zerotierone_sdk_Node.h ├── src │ └── com │ │ └── zerotier │ │ └── sdk │ │ ├── DataStoreGetListener.java │ │ ├── DataStorePutListener.java │ │ ├── Event.java │ │ ├── EventListener.java │ │ ├── Node.java │ │ ├── NodeStatus.java │ │ ├── PacketSender.java │ │ ├── PathChecker.java │ │ ├── Peer.java │ │ ├── PeerPhysicalPath.java │ │ ├── PeerRole.java │ │ ├── ResultCode.java │ │ ├── Version.java │ │ ├── VirtualNetworkConfig.java │ │ ├── VirtualNetworkConfigListener.java │ │ ├── VirtualNetworkConfigOperation.java │ │ ├── VirtualNetworkDNS.java │ │ ├── VirtualNetworkFrameListener.java │ │ ├── VirtualNetworkRoute.java │ │ ├── VirtualNetworkStatus.java │ │ ├── VirtualNetworkType.java │ │ └── util │ │ └── StringUtils.java └── test │ └── com │ └── zerotier │ └── sdk │ └── util │ └── StringUtilsTest.java ├── make-bsd.mk ├── make-linux.mk ├── make-mac.mk ├── make-netbsd.mk ├── node ├── AES.cpp ├── AES.hpp ├── AES_aesni.cpp ├── AES_armcrypto.cpp ├── Address.hpp ├── AtomicCounter.hpp ├── Bond.cpp ├── Bond.hpp ├── Buffer.hpp ├── Capability.cpp ├── Capability.hpp ├── CertificateOfMembership.cpp ├── CertificateOfMembership.hpp ├── CertificateOfOwnership.cpp ├── CertificateOfOwnership.hpp ├── Constants.hpp ├── Credential.hpp ├── DNS.hpp ├── Dictionary.hpp ├── ECC.cpp ├── ECC.hpp ├── Hashtable.hpp ├── Identity.cpp ├── Identity.hpp ├── IncomingPacket.cpp ├── IncomingPacket.hpp ├── InetAddress.cpp ├── InetAddress.hpp ├── MAC.hpp ├── Membership.cpp ├── Membership.hpp ├── Metrics.cpp ├── Metrics.hpp ├── MulticastGroup.hpp ├── Multicaster.cpp ├── Multicaster.hpp ├── Mutex.hpp ├── Network.cpp ├── Network.hpp ├── NetworkConfig.cpp ├── NetworkConfig.hpp ├── NetworkController.hpp ├── Node.cpp ├── Node.hpp ├── OutboundMulticast.cpp ├── OutboundMulticast.hpp ├── Packet.cpp ├── Packet.hpp ├── PacketMultiplexer.cpp ├── PacketMultiplexer.hpp ├── Path.cpp ├── Path.hpp ├── Peer.cpp ├── Peer.hpp ├── Poly1305.cpp ├── Poly1305.hpp ├── README.md ├── Revocation.cpp ├── Revocation.hpp ├── RingBuffer.hpp ├── RuntimeEnvironment.hpp ├── SHA512.cpp ├── SHA512.hpp ├── Salsa20.cpp ├── Salsa20.hpp ├── SelfAwareness.cpp ├── SelfAwareness.hpp ├── SharedPtr.hpp ├── Switch.cpp ├── Switch.hpp ├── Tag.cpp ├── Tag.hpp ├── Topology.cpp ├── Topology.hpp ├── Trace.cpp ├── Trace.hpp ├── Utils.cpp ├── Utils.hpp └── World.hpp ├── objects.mk ├── one.cpp ├── osdep ├── Arp.cpp ├── Arp.hpp ├── BSDEthernetTap.cpp ├── BSDEthernetTap.hpp ├── Binder.hpp ├── BlockingQueue.hpp ├── EthernetTap.cpp ├── EthernetTap.hpp ├── ExtOsdep.cpp ├── ExtOsdep.hpp ├── Http.cpp ├── Http.hpp ├── LinuxEthernetTap.cpp ├── LinuxEthernetTap.hpp ├── LinuxNetLink.cpp ├── LinuxNetLink.hpp ├── MacDNSHelper.hpp ├── MacDNSHelper.mm ├── MacEthernetTap.cpp ├── MacEthernetTap.hpp ├── MacEthernetTapAgent.c ├── MacEthernetTapAgent.h ├── MacKextEthernetTap.cpp ├── MacKextEthernetTap.hpp ├── ManagedRoute.cpp ├── ManagedRoute.hpp ├── NeighborDiscovery.cpp ├── NeighborDiscovery.hpp ├── NetBSDEthernetTap.cpp ├── NetBSDEthernetTap.hpp ├── OSUtils.cpp ├── OSUtils.hpp ├── Phy.hpp ├── PortMapper.cpp ├── PortMapper.hpp ├── README.md ├── Thread.hpp ├── WinDNSHelper.cpp ├── WinDNSHelper.hpp ├── WinFWHelper.cpp ├── WinFWHelper.hpp ├── WindowsEthernetTap.cpp ├── WindowsEthernetTap.hpp ├── freebsd_getifmaddrs.c └── freebsd_getifmaddrs.h ├── pkg ├── README.md ├── asustor │ ├── Dockerfile │ ├── build.sh │ ├── entrypoint.sh │ └── zerotier │ │ ├── CONTROL │ │ ├── config.json │ │ ├── description.txt │ │ ├── icon.png │ │ ├── license.txt │ │ ├── post-install.sh │ │ ├── post-uninstall.sh │ │ ├── pre-install.sh │ │ ├── pre-uninstall.sh │ │ └── start-stop.sh │ │ ├── apkg-version │ │ └── www │ │ └── index.html ├── config.json ├── qnap │ ├── Dockerfile │ ├── build.sh │ ├── entrypoint.sh │ ├── qdk.conf │ └── zerotier │ │ ├── Makefile │ │ ├── arm_64 │ │ └── .gitkeep │ │ ├── arm_x09 │ │ └── .gitkeep │ │ ├── arm_x10 │ │ └── .gitkeep │ │ ├── arm_x12 │ │ └── .gitkeep │ │ ├── arm_x19 │ │ └── .gitkeep │ │ ├── arm_x31 │ │ └── .gitkeep │ │ ├── arm_x41 │ │ └── .gitkeep │ │ ├── config │ │ └── .gitkeep │ │ ├── icons │ │ ├── .gitkeep │ │ ├── ZeroTier.gif │ │ ├── ZeroTier_80.gif │ │ └── ZeroTier_gray.gif │ │ ├── package_routines │ │ ├── qpkg.cfg │ │ ├── shared │ │ ├── .gitkeep │ │ ├── .qpkg_icon.gif │ │ ├── .qpkg_icon_80.gif │ │ ├── .qpkg_icon_gray.gif │ │ └── zerotier.sh │ │ ├── x86 │ │ └── .gitkeep │ │ ├── x86_64 │ │ └── .gitkeep │ │ └── x86_ce53xx │ │ └── .gitkeep ├── snap │ └── snapcraft.yaml ├── synology │ ├── Dockerfile.spksrc │ ├── README.md │ ├── build.sh │ ├── dsm6-pkg │ │ ├── PACKAGE_ICON.png │ │ ├── PACKAGE_ICON_256.png │ │ ├── scripts │ │ │ ├── postinst │ │ │ ├── postuninst │ │ │ ├── postupgrade │ │ │ ├── preinst │ │ │ ├── preuninst │ │ │ └── preupgrade │ │ ├── service-setup.sh │ │ └── start-stop-status.sh │ ├── dsm7-docker │ │ ├── Dockerfile │ │ ├── README.md │ │ ├── build.sh │ │ └── entrypoint.sh │ └── syn-pkg-entrypoint.sh └── wd │ ├── Dockerfile │ ├── build.sh │ ├── entrypoint.sh │ └── zerotier │ ├── apkg.rc │ ├── apkg.xml │ ├── clean.sh │ ├── init.sh │ ├── install.sh │ ├── preinst.sh │ ├── remove.sh │ ├── start.sh │ ├── stop.sh │ ├── web │ ├── index.html │ └── zerotier.png │ └── zerotier.png ├── rule-compiler ├── README.md ├── cli.js ├── examples │ └── capabilities-and-tags.ztrules ├── package.json └── rule-compiler.js ├── rustybits ├── Cargo.lock ├── Cargo.toml ├── rustfmt.toml ├── smeeclient │ ├── Cargo.toml │ ├── build.rs │ ├── rustfmt.toml │ └── src │ │ ├── ext.rs │ │ └── lib.rs ├── zeroidc.vcxproj ├── zeroidc.vcxproj.filters └── zeroidc │ ├── .cargo │ └── config.toml │ ├── .gitattributes │ ├── Cargo.toml │ ├── build.rs │ ├── rustfmt.toml │ └── src │ ├── error.rs │ ├── ext.rs │ └── lib.rs ├── selftest.cpp ├── service ├── OneService.cpp ├── OneService.hpp ├── README.md ├── SoftwareUpdater.cpp └── SoftwareUpdater.hpp ├── tcp-proxy ├── Makefile ├── README.md ├── tcp-proxy.cpp └── zerotier-proxy.service ├── update_controllers.sh ├── version.h ├── windows-clean.bat ├── windows ├── README.md ├── TapDriver6 │ ├── TapDriver6.vcxproj │ ├── TapDriver6.vcxproj.filters │ ├── adapter.c │ ├── adapter.h │ ├── config.h │ ├── constants.h │ ├── device.c │ ├── device.h │ ├── endian.h │ ├── error.c │ ├── error.h │ ├── hexdump.h │ ├── lock.h │ ├── macinfo.c │ ├── macinfo.h │ ├── mem.c │ ├── mem.h │ ├── oidrequest.c │ ├── proto.h │ ├── prototypes.h │ ├── resource.h │ ├── resource.rc │ ├── rxpath.c │ ├── tap-windows.h │ ├── tap.h │ ├── tapdrvr.c │ ├── txpath.c │ ├── types.h │ └── zttap300.inf ├── ZeroTierOne.sln ├── ZeroTierOne │ ├── ServiceBase.cpp │ ├── ServiceBase.h │ ├── ServiceInstaller.cpp │ ├── ServiceInstaller.h │ ├── ZeroTierOne.aps │ ├── ZeroTierOne.rc │ ├── ZeroTierOne.vcxproj │ ├── ZeroTierOne.vcxproj.filters │ ├── ZeroTierOneService.cpp │ ├── ZeroTierOneService.h │ └── resource.h ├── ZeroTierOneSDK.sln ├── ZeroTierOneSDK │ ├── ZeroTierOneSDK.vcxproj │ ├── ZeroTierOneSDK.vcxproj.filters │ ├── dllmain.cpp │ └── targetver.h └── packages │ ├── .gitignore │ └── repositories.config ├── zerotier-cli-completion.bash └── zerotier-one.spec /.clangd: -------------------------------------------------------------------------------- 1 | CompileFlags: 2 | Add: 3 | - "-std=c++17" 4 | - "-I../ext" 5 | - "-I../ext/prometheus-cpp-lite-1.0/core/include" 6 | - "-I../ext/prometheus-cpp-lite-1.0/simpleapi/include" 7 | - "-I./ext" 8 | - "-I./ext/prometheus-cpp-lite-1.0/core/include" 9 | - "-I./ext/prometheus-cpp-lite-1.0/simpleapi/include" 10 | -------------------------------------------------------------------------------- /.dockerignore: -------------------------------------------------------------------------------- 1 | .git/ 2 | workspace/ 3 | -------------------------------------------------------------------------------- /.gitattributes: -------------------------------------------------------------------------------- 1 | ext/bin/tap-windows-ndis6/x64/zttap300.inf eol=crlf 2 | ext/bin/tap-windows-ndis6/x64.old/zttap300.inf eol=crlf 3 | ext/bin/tap-windows-ndis6/x86/zttap300.inf eol=crlf 4 | windows/TapDriver6/zttap300.inf eol=crlf 5 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/feature_request.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: Feature request 3 | about: Suggest an idea for this project 4 | title: "[Feature Request] " 5 | labels: suggestion 6 | assignees: '' 7 | 8 | --- 9 | 10 | If there is something you'd like to have added to ZeroTier, to go to https://discuss.zerotier.com/c/feature-requests/ instead. Issues there can be voted on and discussed in-depth. 11 | 12 | 13 | Thank you! 14 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/game-connection-issue.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: Game Connection Issue 3 | about: Game issues are better served by forum posts 4 | title: Please go to our Discuss or Reddit for game-related issues. Thanks! 5 | labels: wontfix 6 | assignees: '' 7 | 8 | --- 9 | 10 | Are you having trouble connecting to a game on your virtual network after installing ZeroTier? 11 | 12 | - [ ] Yes 13 | - [ ] No 14 | 15 | If you answered yes, then it is very likely that your question would be better answered on our [Community Forums](https://discuss.zerotier.com) or [Reddit](https://www.reddit.com/r/zerotier/) community; we monitor both regularly. We also have extensive documentation on our [Knowledge Base](https://zerotier.atlassian.net/wiki/spaces/SD/overview). Thank you! 16 | -------------------------------------------------------------------------------- /CMakeLists.txt: -------------------------------------------------------------------------------- 1 | # CMake build script for libzerotiercore.a 2 | 3 | cmake_minimum_required (VERSION 2.8) 4 | project (zerotiercore) 5 | 6 | set (PROJ_DIR ${PROJECT_SOURCE_DIR}) 7 | set (ZT_DEFS -std=c++11) 8 | 9 | file(GLOB core_src_glob ${PROJ_DIR}/node/*.cpp) 10 | add_library(zerotiercore STATIC ${core_src_glob}) 11 | 12 | target_compile_options(zerotiercore PRIVATE ${ZT_DEFS}) 13 | -------------------------------------------------------------------------------- /COPYING: -------------------------------------------------------------------------------- 1 | ZeroTier One, an endpoint server for the ZeroTier virtual network layer. 2 | Copyright © 2011–2019 ZeroTier, Inc. 3 | 4 | ZeroTier is released under the terms of the BUSL version 1.1. See the 5 | file LICENSE.txt for details. 6 | 7 | .. 8 | Local variables: 9 | coding: utf-8 10 | mode: text 11 | End: 12 | vim: fileencoding=utf-8 filetype=text : 13 | -------------------------------------------------------------------------------- /Dockerfile.ci: -------------------------------------------------------------------------------- 1 | # vim: ft=dockerfile 2 | 3 | FROM ubuntu:21.04 as stage 4 | 5 | RUN apt-get update -qq && apt-get -qq install make clang 6 | COPY . . 7 | RUN /usr/bin/make 8 | RUN echo $PWD 9 | RUN cp zerotier-one /usr/sbin 10 | 11 | FROM ubuntu:21.04 12 | 13 | COPY --from=stage /zerotier-one /usr/sbin 14 | RUN ln -sf /usr/sbin/zerotier-one /usr/sbin/zerotier-idtool 15 | RUN ln -sf /usr/sbin/zerotier-one /usr/sbin/zerotier-cli 16 | 17 | RUN echo "${VERSION}" > /etc/zerotier-version 18 | RUN rm -rf /var/lib/zerotier-one 19 | 20 | 21 | RUN apt-get -qq update 22 | RUN apt-get -qq install iproute2 net-tools fping 2ping iputils-ping iputils-arping 23 | 24 | COPY entrypoint.sh.release /entrypoint.sh 25 | RUN chmod 755 /entrypoint.sh 26 | 27 | CMD [] 28 | ENTRYPOINT ["/entrypoint.sh"] 29 | -------------------------------------------------------------------------------- /artwork/AppIcon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zerotier/ZeroTierOne/5232af0a61f7f6625ec6852d330c6c3520ae91de/artwork/AppIcon.png -------------------------------------------------------------------------------- /artwork/AppIcon@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zerotier/ZeroTierOne/5232af0a61f7f6625ec6852d330c6c3520ae91de/artwork/AppIcon@2x.png -------------------------------------------------------------------------------- /artwork/AppIcon@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zerotier/ZeroTierOne/5232af0a61f7f6625ec6852d330c6c3520ae91de/artwork/AppIcon@3x.png -------------------------------------------------------------------------------- /artwork/AppIcon_1024x1024.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zerotier/ZeroTierOne/5232af0a61f7f6625ec6852d330c6c3520ae91de/artwork/AppIcon_1024x1024.png -------------------------------------------------------------------------------- /artwork/AppIcon_20x20.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zerotier/ZeroTierOne/5232af0a61f7f6625ec6852d330c6c3520ae91de/artwork/AppIcon_20x20.png -------------------------------------------------------------------------------- /artwork/AppIcon_29x29.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zerotier/ZeroTierOne/5232af0a61f7f6625ec6852d330c6c3520ae91de/artwork/AppIcon_29x29.png -------------------------------------------------------------------------------- /artwork/AppIcon_40x40.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zerotier/ZeroTierOne/5232af0a61f7f6625ec6852d330c6c3520ae91de/artwork/AppIcon_40x40.png -------------------------------------------------------------------------------- /artwork/AppIcon_58x58.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zerotier/ZeroTierOne/5232af0a61f7f6625ec6852d330c6c3520ae91de/artwork/AppIcon_58x58.png -------------------------------------------------------------------------------- /artwork/AppIcon_60x60.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zerotier/ZeroTierOne/5232af0a61f7f6625ec6852d330c6c3520ae91de/artwork/AppIcon_60x60.png -------------------------------------------------------------------------------- /artwork/AppIcon_80x80.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zerotier/ZeroTierOne/5232af0a61f7f6625ec6852d330c6c3520ae91de/artwork/AppIcon_80x80.png -------------------------------------------------------------------------------- /artwork/AppIcon_87x87.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zerotier/ZeroTierOne/5232af0a61f7f6625ec6852d330c6c3520ae91de/artwork/AppIcon_87x87.png -------------------------------------------------------------------------------- /artwork/AppIcon_90x90.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zerotier/ZeroTierOne/5232af0a61f7f6625ec6852d330c6c3520ae91de/artwork/AppIcon_90x90.png -------------------------------------------------------------------------------- /artwork/AppIcon_iPad@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zerotier/ZeroTierOne/5232af0a61f7f6625ec6852d330c6c3520ae91de/artwork/AppIcon_iPad@2x.png -------------------------------------------------------------------------------- /artwork/AppIcon_iPadPro@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zerotier/ZeroTierOne/5232af0a61f7f6625ec6852d330c6c3520ae91de/artwork/AppIcon_iPadPro@2x.png -------------------------------------------------------------------------------- /artwork/ZeroTierIcon-WithBorder.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zerotier/ZeroTierOne/5232af0a61f7f6625ec6852d330c6c3520ae91de/artwork/ZeroTierIcon-WithBorder.png -------------------------------------------------------------------------------- /artwork/ZeroTierIcon.icns: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zerotier/ZeroTierOne/5232af0a61f7f6625ec6852d330c6c3520ae91de/artwork/ZeroTierIcon.icns -------------------------------------------------------------------------------- /artwork/ZeroTierIcon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zerotier/ZeroTierOne/5232af0a61f7f6625ec6852d330c6c3520ae91de/artwork/ZeroTierIcon.ico -------------------------------------------------------------------------------- /artwork/ZeroTierIcon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zerotier/ZeroTierOne/5232af0a61f7f6625ec6852d330c6c3520ae91de/artwork/ZeroTierIcon.png -------------------------------------------------------------------------------- /artwork/ZeroTierIcon32x32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zerotier/ZeroTierOne/5232af0a61f7f6625ec6852d330c6c3520ae91de/artwork/ZeroTierIcon32x32.png -------------------------------------------------------------------------------- /artwork/ZeroTierIcon512x512.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zerotier/ZeroTierOne/5232af0a61f7f6625ec6852d330c6c3520ae91de/artwork/ZeroTierIcon512x512.png -------------------------------------------------------------------------------- /artwork/logo.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 29 | 30 | 31 |





32 | 33 |
34 |
35 |
36 | 37 | -------------------------------------------------------------------------------- /attic/historic/anode/config.mk.Darwin: -------------------------------------------------------------------------------- 1 | CC=gcc 2 | CXX=g++ 3 | 4 | #ARCH_FLAGS=-arch x86_64 -arch i386 -arch ppc 5 | 6 | DEFS=-DHAS_DEV_URANDOM 7 | CXXDEFS=-DBOOST_DISABLE_ASSERTS -DBOOST_NO_TYPEID -DNDEBUG 8 | 9 | CFLAGS=-mmacosx-version-min=10.4 -std=c99 -O6 -ftree-vectorize -Wall $(DEFS) $(ARCH_FLAGS) 10 | CXXFLAGS=-mmacosx-version-min=10.4 -Drestrict=__restrict__ -O6 -ftree-vectorize -Wall $(DEFS) $(CXXDEFS) $(ARCH_FLAGS) 11 | 12 | LDFLAGS=-mmacosx-version-min=10.4 $(ARCH_FLAGS) 13 | DLLFLAGS=$(ARCH_FLAGS) -shared 14 | DLLEXT=dylib 15 | 16 | LIBANODE_LIBS=-lcrypto -lpthread -lresolv 17 | LIBSPARK_LIBS=-lz 18 | -------------------------------------------------------------------------------- /attic/historic/anode/config.mk.Linux: -------------------------------------------------------------------------------- 1 | CC=gcc 2 | CXX=g++ 3 | 4 | DEFS=-DHAS_DEV_URANDOM 5 | 6 | CFLAGS=-std=c99 -O6 -fPIC -Wall $(DEFS) 7 | CXXFLAGS=-Drestrict=__restrict__ -O6 -Wall $(DEFS) -I.. 8 | 9 | #CFLAGS=-g -Wall $(DEFS) 10 | #CXXFLAGS=-g -Wall $(DEFS) 11 | 12 | LDFLAGS= 13 | DLLFLAGS=-shared 14 | DLLEXT=so 15 | 16 | LIBANODE_LIBS=-lcrypto -lresolv -pthread 17 | LIBSPARK_LIBS=-lz 18 | -------------------------------------------------------------------------------- /attic/historic/anode/libanode/Makefile: -------------------------------------------------------------------------------- 1 | SYSNAME:=${shell uname} 2 | SYSNAME!=uname 3 | include ../config.mk.${SYSNAME} 4 | 5 | LIBANODE_OBJS= \ 6 | impl/aes.o \ 7 | impl/dictionary.o \ 8 | impl/dns_txt.o \ 9 | impl/ec.o \ 10 | impl/environment.o \ 11 | impl/misc.o \ 12 | impl/thread.o \ 13 | address.o \ 14 | aes_digest.o \ 15 | errors.o \ 16 | identity.o \ 17 | network_address.o \ 18 | secure_random.o \ 19 | system_transport.o \ 20 | uri.o 21 | # zone.o 22 | 23 | all: $(LIBANODE_OBJS) 24 | ar rcs libanode.a $(LIBANODE_OBJS) 25 | ranlib libanode.a 26 | $(CC) $(CFLAGS) -o utils/anode-make-identity utils/anode-make-identity.c $(LIBANODE_OBJS) $(LIBANODE_LIBS) 27 | 28 | clean: force 29 | rm -f $(LIBANODE_OBJS) 30 | rm -f libanode.$(DLLEXT) libanode.a 31 | rm -f utils/anode-make-identity 32 | 33 | force: ; 34 | -------------------------------------------------------------------------------- /attic/historic/anode/libspark/Makefile: -------------------------------------------------------------------------------- 1 | SYSNAME:=${shell uname} 2 | SYSNAME!=uname 3 | include ../config.mk.${SYSNAME} 4 | 5 | LIBSPARK_OBJS= 6 | 7 | all: libspark 8 | 9 | libspark: $(LIBSPARK_OBJS) 10 | ar rcs libspark.a $(LIBSPARK_OBJS) 11 | ranlib libspark.a 12 | 13 | clean: force 14 | rm -f *.a *.so *.dylib *.dll *.lib *.exe *.o 15 | 16 | force: ; 17 | -------------------------------------------------------------------------------- /attic/historic/anode/libspark/experiments/Makefile: -------------------------------------------------------------------------------- 1 | all: 2 | g++ -O6 -ftree-vectorize -o FindGoodSegmentDelimiters FindGoodSegmentDelimiters.cpp -lboost_thread -lpthread 3 | 4 | clean: 5 | rm FindGoodSegmentDelimiters 6 | -------------------------------------------------------------------------------- /attic/world/README.md: -------------------------------------------------------------------------------- 1 | World Definitions and Generator Code 2 | ====== 3 | 4 | This little bit of code is used to generate world updates. Ordinary users probably will never need this unless they want to test or experiment. 5 | 6 | See mkworld.cpp for documentation. To build from this directory use 'source ./build.sh'. 7 | 8 | -------------------------------------------------------------------------------- /attic/world/build.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | c++ -std=c++11 -I../.. -I../../ext -I.. -g -o mkworld ../../node/C25519.cpp ../../node/Salsa20.cpp ../../node/SHA512.cpp ../../node/Identity.cpp ../../node/Utils.cpp ../../node/InetAddress.cpp ../../osdep/OSUtils.cpp mkworld.cpp -lm 4 | -------------------------------------------------------------------------------- /attic/world/world.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zerotier/ZeroTierOne/5232af0a61f7f6625ec6852d330c6c3520ae91de/attic/world/world.bin -------------------------------------------------------------------------------- /ci/Dockerfile-build.deb: -------------------------------------------------------------------------------- 1 | ARG ZT_NAME 2 | FROM 084037375216.dkr.ecr.us-east-2.amazonaws.com/${ZT_NAME}-builder as builder 3 | WORKDIR /work/build 4 | COPY . . 5 | RUN pwd 6 | RUN ls -la . 7 | RUN make clean 8 | RUN make debian 9 | RUN ls -ls /work 10 | 11 | FROM scratch AS export 12 | ARG ZT_NAME 13 | COPY --from=builder /work/*.deb ./${ZT_NAME}/ 14 | -------------------------------------------------------------------------------- /ci/Dockerfile-build.rpm: -------------------------------------------------------------------------------- 1 | ARG ZT_NAME 2 | FROM 084037375216.dkr.ecr.us-east-2.amazonaws.com/${ZT_NAME}-builder as builder 3 | WORKDIR /root/rpmbuild/BUILD 4 | COPY . . 5 | RUN make redhat 6 | 7 | FROM scratch AS export 8 | ARG ZT_NAME 9 | COPY --from=builder /root/rpmbuild/RPMS/*/*.rpm ./${ZT_NAME}/ 10 | -------------------------------------------------------------------------------- /ci/Dockerfile-test.deb: -------------------------------------------------------------------------------- 1 | ARG ZT_NAME 2 | FROM 084037375216.dkr.ecr.us-east-2.amazonaws.com/${ZT_NAME}-tester 3 | ARG BASEURL 4 | ARG VERSION 5 | ARG DEB_ARCH 6 | ARG ZT_NAME 7 | ARG DISTRO 8 | RUN curl -s http://${BASEURL}/key.gpg -o /etc/apt/trusted.gpg.d/zerotier.gpg 9 | RUN echo "deb [arch=${DEB_ARCH} signed-by=/etc/apt/trusted.gpg.d/zerotier.gpg] http://${BASEURL}/${DISTRO} ${ZT_NAME} main" > /etc/apt/sources.list.d/zerotier.list 10 | RUN apt-get -qq update 11 | RUN apt-get -qq install zerotier-one=${VERSION} 12 | 13 | RUN ldd $(which zerotier-cli) 14 | -------------------------------------------------------------------------------- /ci/Dockerfile-test.el6: -------------------------------------------------------------------------------- 1 | ARG DOCKER_ARCH 2 | FROM --platform=linux/${DOCKER_ARCH} centos:6 3 | RUN printf "[C6.10-base]\nname=CentOS-6.10 - Base\nbaseurl=http://vault.epel.cloud/6.10/os/\$basearch/\ngpgcheck=1\ngpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6\nenabled=1\nmetadata_expire=never\n" > /etc/yum.repos.d/CentOS-Base.repo 4 | RUN yum -y install curl 5 | -------------------------------------------------------------------------------- /ci/Dockerfile-test.rpm: -------------------------------------------------------------------------------- 1 | ARG ZT_NAME 2 | FROM 084037375216.dkr.ecr.us-east-2.amazonaws.com/${ZT_NAME}-tester 3 | ARG BASEURL 4 | ARG VERSION 5 | ARG DEB_ARCH 6 | ARG ZT_NAME 7 | ARG DISTRO 8 | ARG DNF_ARCH 9 | RUN curl -s http://${BASEURL}/key.asc -o /etc/pki/rpm-gpg/RPM-GPG-KEY-zerotier 10 | RUN rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-zerotier 11 | RUN rpm -q gpg-pubkey --qf '%{NAME}-%{VERSION}-%{RELEASE}\t%{SUMMARY}\n' 12 | RUN printf "[zerotier]\nname=zerotier\nbaseurl=http://${BASEURL}/${DISTRO}/${ZT_NAME}/$basearch/\nenabled=1\ngpgcheck=1\ngpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-zerotier\n" > /etc/yum.repos.d/zerotier.repo 13 | 14 | # RUN yum -v repolist 15 | RUN setarch ${DNF_ARCH} yum -y install zerotier-one-${VERSION} 16 | RUN file $(which zerotier-cli) 17 | RUN ldd $(which zerotier-cli) 18 | -------------------------------------------------------------------------------- /controller/CtlUtil.hpp: -------------------------------------------------------------------------------- 1 | #ifndef ZT_CTLUTIL_HPP 2 | #define ZT_CTLUTIL_HPP 3 | 4 | #include 5 | #include 6 | 7 | namespace ZeroTier { 8 | 9 | const char* _timestr(); 10 | 11 | std::vector split(std::string str, char delim); 12 | 13 | std::string url_encode(const std::string& value); 14 | } // namespace ZeroTier 15 | 16 | #endif // namespace ZeroTier -------------------------------------------------------------------------------- /controller/Redis.hpp: -------------------------------------------------------------------------------- 1 | #ifndef ZT_CONTROLLER_REDIS_HPP 2 | #define ZT_CONTROLLER_REDIS_HPP 3 | 4 | #include 5 | 6 | namespace ZeroTier { 7 | struct RedisConfig { 8 | std::string hostname; 9 | int port; 10 | std::string password; 11 | bool clusterMode; 12 | }; 13 | } // namespace ZeroTier 14 | 15 | #endif -------------------------------------------------------------------------------- /cycle_controllers.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | CONTROLLERS=`kubectl get pods -o=name | grep controller | sed "s/^.\{4\}//"` 4 | 5 | for c in ${CONTROLLERS[@]} 6 | do 7 | kubectl delete pod ${c} 8 | sleep 30 9 | done 10 | -------------------------------------------------------------------------------- /debian/compat: -------------------------------------------------------------------------------- 1 | 10 -------------------------------------------------------------------------------- /debian/control: -------------------------------------------------------------------------------- 1 | Source: zerotier-one 2 | Maintainer: Adam Ierymenko 3 | Section: net 4 | Priority: optional 5 | Standards-Version: 3.9.6 6 | Build-Depends: debhelper 7 | Vcs-Git: git://github.com/zerotier/ZeroTierOne 8 | Vcs-Browser: https://github.com/zerotier/ZeroTierOne 9 | Homepage: https://www.zerotier.com/ 10 | 11 | Package: zerotier-one 12 | Architecture: any 13 | Depends: adduser, libstdc++6 (>= 5), openssl 14 | Homepage: https://www.zerotier.com/ 15 | Description: ZeroTier network virtualization service 16 | ZeroTier One lets you join ZeroTier virtual networks and 17 | have them appear as tun/tap ports on your system. See 18 | https://www.zerotier.com/ for instructions and 19 | documentation. 20 | -------------------------------------------------------------------------------- /debian/control.wheezy: -------------------------------------------------------------------------------- 1 | Source: zerotier-one 2 | Maintainer: Adam Ierymenko 3 | Section: net 4 | Priority: optional 5 | Standards-Version: 3.9.4 6 | Build-Depends: debhelper 7 | Vcs-Git: git://github.com/zerotier/ZeroTierOne 8 | Vcs-Browser: https://github.com/zerotier/ZeroTierOne 9 | Homepage: https://www.zerotier.com/ 10 | 11 | Package: zerotier-one 12 | Architecture: any 13 | Depends: ${shlibs:Depends}, ${misc:Depends}, libstdc++6 14 | Homepage: https://www.zerotier.com/ 15 | Description: ZeroTier network virtualization service 16 | ZeroTier One lets you join ZeroTier virtual networks and 17 | have them appear as tun/tap ports on your system. See 18 | https://www.zerotier.com/ for instructions and 19 | documentation. 20 | -------------------------------------------------------------------------------- /debian/copyright: -------------------------------------------------------------------------------- 1 | Format: http://dep.debian.net/deps/dep5 2 | Upstream-Name: zerotier-one 3 | Source: https://github.com/zerotier/ZeroTierOne 4 | 5 | Files: * 6 | Copyright: 2011-2016 ZeroTier, Inc. 7 | License: ZeroTier BSL 1.1 8 | 9 | License: ZeroTier BSL 1.1 10 | Copyright (c)2019 ZeroTier, Inc. 11 | 12 | Use of this software is governed by the Business Source License included 13 | in the LICENSE.TXT file in the project's root directory. 14 | 15 | Change Date: 2026-01-01 16 | 17 | On the date above, in accordance with the Business Source License, use 18 | of this software will be governed by version 2.0 of the Apache License. 19 | -------------------------------------------------------------------------------- /debian/postinst: -------------------------------------------------------------------------------- 1 | #!/bin/sh -e 2 | 3 | case "$1" in 4 | configure) 5 | if ! id zerotier-one >>/dev/null 2>&1; then 6 | useradd --system --user-group --home-dir /var/lib/zerotier-one --shell /usr/sbin/nologin --no-create-home zerotier-one 7 | fi 8 | ;; 9 | esac 10 | 11 | #DEBHELPER# 12 | -------------------------------------------------------------------------------- /debian/rules: -------------------------------------------------------------------------------- 1 | #!/usr/bin/make -f 2 | 3 | CFLAGS=-O3 -fstack-protector-strong 4 | CXXFLAGS=-O3 -fstack-protector-strong 5 | 6 | %: 7 | dh $@ --with systemd 8 | 9 | override_dh_auto_build: 10 | make 11 | 12 | override_dh_systemd_start: 13 | dh_systemd_start --restart-after-upgrade 14 | 15 | override_dh_installinit: 16 | dh_installinit --name=zerotier-one -- defaults 17 | -------------------------------------------------------------------------------- /debian/rules.static: -------------------------------------------------------------------------------- 1 | #!/usr/bin/make -f 2 | 3 | CFLAGS=-O3 -fstack-protector-strong 4 | CXXFLAGS=-O3 -fstack-protector-strong 5 | 6 | %: 7 | dh $@ --with systemd 8 | 9 | override_dh_auto_build: 10 | # make -j 2 11 | 12 | override_dh_systemd_start: 13 | dh_systemd_start --restart-after-upgrade 14 | 15 | override_dh_installinit: 16 | dh_installinit --name=zerotier-one -- defaults 17 | -------------------------------------------------------------------------------- /debian/rules.wheezy: -------------------------------------------------------------------------------- 1 | #!/usr/bin/make -f 2 | 3 | CFLAGS=-O3 -fstack-protector 4 | CXXFLAGS=-O3 -fstack-protector 5 | 6 | %: 7 | dh $@ 8 | 9 | override_dh_auto_build: 10 | make -j 2 11 | 12 | -------------------------------------------------------------------------------- /debian/rules.wheezy.static: -------------------------------------------------------------------------------- 1 | #!/usr/bin/make -f 2 | 3 | CFLAGS=-O3 -fstack-protector 4 | CXXFLAGS=-O3 -fstack-protector 5 | 6 | %: 7 | dh $@ 8 | 9 | override_dh_auto_build: 10 | # make -j 2 11 | 12 | -------------------------------------------------------------------------------- /debian/source/format: -------------------------------------------------------------------------------- 1 | 3.0 (quilt) -------------------------------------------------------------------------------- /debian/ufw-zerotier-one: -------------------------------------------------------------------------------- 1 | [zerotier-one] 2 | title=ZeroTier One 3 | description=A planetary Ethernet switch 4 | ports=9993/udp 5 | -------------------------------------------------------------------------------- /debian/zerotier-one.service: -------------------------------------------------------------------------------- 1 | [Unit] 2 | Description=ZeroTier One 3 | After=network-online.target network.target 4 | Wants=network-online.target 5 | 6 | [Service] 7 | ExecStart=/usr/sbin/zerotier-one 8 | Restart=always 9 | KillMode=process 10 | 11 | [Install] 12 | WantedBy=multi-user.target 13 | -------------------------------------------------------------------------------- /debian/zerotier-one.upstart: -------------------------------------------------------------------------------- 1 | description "ZeroTier One upstart startup script" 2 | 3 | author "Adam Ierymenko " 4 | 5 | start on (local-filesystems and net-device-up IFACE!=lo) 6 | stop on runlevel [!2345] 7 | 8 | respawn 9 | respawn limit 2 300 10 | 11 | #pre-start script 12 | #end script 13 | 14 | exec /usr/sbin/zerotier-one 15 | -------------------------------------------------------------------------------- /doc/README.md: -------------------------------------------------------------------------------- 1 | Manual Pages and Other Documentation 2 | ===== 3 | 4 | Use "./build.sh" to build the manual pages. 5 | 6 | You'll need either Node.js/npm installed (script will then automatically install the npm *marked-man* package) or */usr/bin/ronn*. The latter is a Ruby program packaged on some distributions as *rubygem-ronn* or *ruby-ronn* or installable as *gem install ronn*. The Node *marked-man* package and *ronn* from RubyGems are two roughly equivalent alternatives for compiling Markdown into roff/man format. 7 | -------------------------------------------------------------------------------- /doc/manpage_encoding_declaration.UTF-8: -------------------------------------------------------------------------------- 1 | '\" -*- coding: utf-8 -*- 2 | -------------------------------------------------------------------------------- /ext/README.md: -------------------------------------------------------------------------------- 1 | Miscellaneous Stuff 2 | ====== 3 | 4 | This subfolder contains: 5 | 6 | * Bundled third party libraries that are compiled into the binary on platforms and Linux distributions where they are not available on the system. 7 | 8 | * Pre-compiled binaries for some platforms, such as pre-built and signed drivers for Mac and Windows. 9 | 10 | * Miscellaneous files used by installers and packages on various platform targets. 11 | -------------------------------------------------------------------------------- /ext/arm32-neon-salsa2012-asm/README.md: -------------------------------------------------------------------------------- 1 | ARM NEON (32-bit) ASM implementation of Salsa20/12 2 | ====== 3 | 4 | This is from [supercop](http://bench.cr.yp.to/supercop.html) and was originally written by Daniel J. Bernstein. Code is in the public domain like the rest of Salsa20. It's much faster than the naive implementation. 5 | 6 | It's included automatically in 32-bit Linux ARM builds. It likely will not work on 64-bit ARM, so it'll need to be ported at least. That will unfortunately keep it out of mobile versions for now since those are all going 64-bit. 7 | -------------------------------------------------------------------------------- /ext/arm32-neon-salsa2012-asm/salsa2012.h: -------------------------------------------------------------------------------- 1 | #ifndef ZT_SALSA2012_ARM32NEON_ASM 2 | #define ZT_SALSA2012_ARM32NEON_ASM 3 | 4 | #if defined(__linux__) || defined(linux) || defined(__LINUX__) || defined(__linux) 5 | #include 6 | #include 7 | #define zt_arm_has_neon() ((getauxval(AT_HWCAP) & HWCAP_NEON) != 0) 8 | #elif defined(__ARM_NEON__) || defined(__ARM_NEON) 9 | #define zt_arm_has_neon() (true) 10 | #else 11 | #define zt_arm_has_neon() (false) 12 | #endif 13 | 14 | #ifdef __cplusplus 15 | extern "C" { 16 | #endif 17 | 18 | // ciphertext buffer, message/NULL, length, nonce (8 bytes), key (32 bytes) 19 | extern int zt_salsa2012_armneon3_xor(unsigned char *c,const unsigned char *m,unsigned long long len,const unsigned char *n,const unsigned char *k); 20 | 21 | #ifdef __cplusplus 22 | } 23 | #endif 24 | 25 | #endif 26 | -------------------------------------------------------------------------------- /ext/bin/tap-windows-ndis6/arm64/zttap300.cat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zerotier/ZeroTierOne/5232af0a61f7f6625ec6852d330c6c3520ae91de/ext/bin/tap-windows-ndis6/arm64/zttap300.cat -------------------------------------------------------------------------------- /ext/bin/tap-windows-ndis6/arm64/zttap300.sys: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zerotier/ZeroTierOne/5232af0a61f7f6625ec6852d330c6c3520ae91de/ext/bin/tap-windows-ndis6/arm64/zttap300.sys -------------------------------------------------------------------------------- /ext/bin/tap-windows-ndis6/x64/zttap300.cat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zerotier/ZeroTierOne/5232af0a61f7f6625ec6852d330c6c3520ae91de/ext/bin/tap-windows-ndis6/x64/zttap300.cat -------------------------------------------------------------------------------- /ext/bin/tap-windows-ndis6/x64/zttap300.sys: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zerotier/ZeroTierOne/5232af0a61f7f6625ec6852d330c6c3520ae91de/ext/bin/tap-windows-ndis6/x64/zttap300.sys -------------------------------------------------------------------------------- /ext/bin/tap-windows-ndis6/x86/zttap300.cat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zerotier/ZeroTierOne/5232af0a61f7f6625ec6852d330c6c3520ae91de/ext/bin/tap-windows-ndis6/x86/zttap300.cat -------------------------------------------------------------------------------- /ext/bin/tap-windows-ndis6/x86/zttap300.sys: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zerotier/ZeroTierOne/5232af0a61f7f6625ec6852d330c6c3520ae91de/ext/bin/tap-windows-ndis6/x86/zttap300.sys -------------------------------------------------------------------------------- /ext/central-controller-docker/Dockerfile.builder: -------------------------------------------------------------------------------- 1 | # Dockerfile for building ZeroTier Central Controllers 2 | FROM debian:bookworm 3 | 4 | RUN apt update && apt upgrade -y 5 | RUN apt -y install \ 6 | build-essential \ 7 | pkg-config \ 8 | bash \ 9 | clang \ 10 | libjemalloc2 \ 11 | libjemalloc-dev \ 12 | libpq5 \ 13 | libpq-dev \ 14 | openssl \ 15 | libssl-dev \ 16 | postgresql-client \ 17 | postgresql-client-common \ 18 | curl \ 19 | google-perftools \ 20 | libgoogle-perftools-dev \ 21 | protobuf-compiler 22 | 23 | RUN curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y 24 | -------------------------------------------------------------------------------- /ext/central-controller-docker/Dockerfile.run_base: -------------------------------------------------------------------------------- 1 | FROM debian:bookworm 2 | 3 | 4 | 5 | RUN apt update && apt upgrade -y 6 | RUN apt -y install \ 7 | netcat-traditional \ 8 | postgresql-client \ 9 | postgresql-client-common \ 10 | libjemalloc2 \ 11 | libpq5 \ 12 | curl \ 13 | binutils \ 14 | perf-tools-unstable \ 15 | google-perftools \ 16 | gnupg 17 | 18 | -------------------------------------------------------------------------------- /ext/central-controller-docker/Makefile: -------------------------------------------------------------------------------- 1 | registry = registry.zerotier.com/zerotier 2 | 3 | all: controller-builder controller-runbase 4 | 5 | buildx: 6 | @echo "docker buildx create" 7 | # docker run --rm --privileged multiarch/qemu-user-static --reset -p yes 8 | docker run --privileged --rm tonistiigi/binfmt --install all 9 | @echo docker buildx create --name multiarch --driver docker-container --use 10 | @echo docker buildx inspect --bootstrap 11 | 12 | controller-builder: buildx 13 | docker buildx build --no-cache --platform linux/amd64,linux/arm64 -t $(registry)/ctlbuild:latest -f Dockerfile.builder . --push 14 | 15 | controller-runbase: buildx 16 | docker buildx build --no-cache --platform linux/amd64,linux/arm64 -t $(registry)/ctlrun:latest -f Dockerfile.run_base . --push 17 | -------------------------------------------------------------------------------- /ext/central-controller-docker/README.md: -------------------------------------------------------------------------------- 1 | # ZeroTier Central Controller Docker Image 2 | 3 | Dockerfile & startup script for use with [ZeroTier Central](https://my.zerotier.com). Not intended for public use. 4 | -------------------------------------------------------------------------------- /ext/central-controller-docker/migrations/0001_init.down.sql: -------------------------------------------------------------------------------- 1 | DROP TABLE IF EXISTS network_memberships_ctl; 2 | DROP TABLE IF EXISTS networks_ctl; 3 | DROP TABLE IF EXISTS controllers_ctl; -------------------------------------------------------------------------------- /ext/central-controller-docker/migrations/0002_os_arch.down.sql: -------------------------------------------------------------------------------- 1 | ALTER TABLE network_memberships_ctl 2 | DROP COLUMN os, 3 | DROP COLUMN arch; -------------------------------------------------------------------------------- /ext/central-controller-docker/migrations/0002_os_arch.up.sql: -------------------------------------------------------------------------------- 1 | ALTER TABLE network_memberships_ctl 2 | ADD COLUMN os TEXT NOT NULL DEFAULT 'unknown', 3 | ADD COLUMN arch TEXT NOT NULL DEFAULT 'unknown'; -------------------------------------------------------------------------------- /ext/ed25519-amd64-asm/fe25519_getparity.c: -------------------------------------------------------------------------------- 1 | #include "fe25519.h" 2 | 3 | unsigned char fe25519_getparity(const fe25519 *x) 4 | { 5 | fe25519 t = *x; 6 | fe25519_freeze(&t); 7 | return (unsigned char)t.v[0] & 1; 8 | } 9 | -------------------------------------------------------------------------------- /ext/ed25519-amd64-asm/fe25519_iseq.c: -------------------------------------------------------------------------------- 1 | #include "fe25519.h" 2 | 3 | int fe25519_iseq_vartime(const fe25519 *x, const fe25519 *y) 4 | { 5 | fe25519 t1 = *x; 6 | fe25519 t2 = *y; 7 | fe25519_freeze(&t1); 8 | fe25519_freeze(&t2); 9 | if(t1.v[0] != t2.v[0]) return 0; 10 | if(t1.v[1] != t2.v[1]) return 0; 11 | if(t1.v[2] != t2.v[2]) return 0; 12 | if(t1.v[3] != t2.v[3]) return 0; 13 | return 1; 14 | } 15 | -------------------------------------------------------------------------------- /ext/ed25519-amd64-asm/fe25519_iszero.c: -------------------------------------------------------------------------------- 1 | #include "fe25519.h" 2 | 3 | int fe25519_iszero_vartime(const fe25519 *x) 4 | { 5 | fe25519 t = *x; 6 | fe25519_freeze(&t); 7 | if (t.v[0]) return 0; 8 | if (t.v[1]) return 0; 9 | if (t.v[2]) return 0; 10 | if (t.v[3]) return 0; 11 | return 1; 12 | } 13 | -------------------------------------------------------------------------------- /ext/ed25519-amd64-asm/fe25519_neg.c: -------------------------------------------------------------------------------- 1 | #include "fe25519.h" 2 | 3 | void fe25519_neg(fe25519 *r, const fe25519 *x) 4 | { 5 | fe25519 t; 6 | fe25519_setint(&t,0); 7 | fe25519_sub(r,&t,x); 8 | } 9 | -------------------------------------------------------------------------------- /ext/ed25519-amd64-asm/fe25519_pack.c: -------------------------------------------------------------------------------- 1 | #include "fe25519.h" 2 | 3 | /* Assumes input x being reduced below 2^255 */ 4 | void fe25519_pack(unsigned char r[32], const fe25519 *x) 5 | { 6 | int i; 7 | fe25519 t; 8 | t = *x; 9 | fe25519_freeze(&t); 10 | /* assuming little-endian */ 11 | for(i=0;i<32;i++) r[i] = i[(unsigned char *)&t.v]; 12 | } 13 | 14 | -------------------------------------------------------------------------------- /ext/ed25519-amd64-asm/fe25519_setint.c: -------------------------------------------------------------------------------- 1 | #include "fe25519.h" 2 | 3 | void fe25519_setint(fe25519 *r, unsigned int v) 4 | { 5 | r->v[0] = v; 6 | r->v[1] = 0; 7 | r->v[2] = 0; 8 | r->v[3] = 0; 9 | } 10 | -------------------------------------------------------------------------------- /ext/ed25519-amd64-asm/fe25519_unpack.c: -------------------------------------------------------------------------------- 1 | #include "fe25519.h" 2 | 3 | void fe25519_unpack(fe25519 *r, const unsigned char x[32]) 4 | { 5 | /* assuming little-endian */ 6 | r->v[0] = *(unsigned long long *)x; 7 | r->v[1] = *(((unsigned long long *)x)+1); 8 | r->v[2] = *(((unsigned long long *)x)+2); 9 | r->v[3] = *(((unsigned long long *)x)+3); 10 | r->v[3] &= 0x7fffffffffffffffULL; 11 | } 12 | -------------------------------------------------------------------------------- /ext/ed25519-amd64-asm/ge25519_add.c: -------------------------------------------------------------------------------- 1 | #include "ge25519.h" 2 | 3 | void ge25519_add(ge25519_p3 *r, const ge25519_p3 *p, const ge25519_p3 *q) 4 | { 5 | ge25519_p1p1 grp1p1; 6 | ge25519_add_p1p1(&grp1p1, p, q); 7 | ge25519_p1p1_to_p3(r, &grp1p1); 8 | } 9 | -------------------------------------------------------------------------------- /ext/ed25519-amd64-asm/ge25519_base.c: -------------------------------------------------------------------------------- 1 | #include "ge25519.h" 2 | 3 | const ge25519 ge25519_base = {{{0xC9562D608F25D51A, 0x692CC7609525A7B2, 0xC0A4E231FDD6DC5C, 0x216936D3CD6E53FE}}, 4 | {{0x6666666666666658, 0x6666666666666666, 0x6666666666666666, 0x6666666666666666}}, 5 | {{0x0000000000000001, 0x0000000000000000, 0x0000000000000000, 000000000000000000}}, 6 | {{0x6DDE8AB3A5B7DDA3, 0x20F09F80775152F5, 0x66EA4E8E64ABE37D, 0x67875F0FD78B7665}}}; 7 | 8 | -------------------------------------------------------------------------------- /ext/ed25519-amd64-asm/ge25519_double.c: -------------------------------------------------------------------------------- 1 | #include "ge25519.h" 2 | 3 | void ge25519_double(ge25519_p3 *r, const ge25519_p3 *p) 4 | { 5 | ge25519_p1p1 grp1p1; 6 | ge25519_dbl_p1p1(&grp1p1, (ge25519_p2 *)p); 7 | ge25519_p1p1_to_p3(r, &grp1p1); 8 | } 9 | -------------------------------------------------------------------------------- /ext/ed25519-amd64-asm/ge25519_isneutral.c: -------------------------------------------------------------------------------- 1 | #include "fe25519.h" 2 | #include "ge25519.h" 3 | 4 | int ge25519_isneutral_vartime(const ge25519_p3 *p) 5 | { 6 | if(!fe25519_iszero_vartime(&p->x)) return 0; 7 | if(!fe25519_iseq_vartime(&p->y, &p->z)) return 0; 8 | return 1; 9 | } 10 | -------------------------------------------------------------------------------- /ext/ed25519-amd64-asm/ge25519_pack.c: -------------------------------------------------------------------------------- 1 | #include "fe25519.h" 2 | #include "sc25519.h" 3 | #include "ge25519.h" 4 | 5 | void ge25519_pack(unsigned char r[32], const ge25519_p3 *p) 6 | { 7 | fe25519 tx, ty, zi; 8 | fe25519_invert(&zi, &p->z); 9 | fe25519_mul(&tx, &p->x, &zi); 10 | fe25519_mul(&ty, &p->y, &zi); 11 | fe25519_pack(r, &ty); 12 | r[31] ^= fe25519_getparity(&tx) << 7; 13 | } 14 | -------------------------------------------------------------------------------- /ext/ed25519-amd64-asm/hram.c: -------------------------------------------------------------------------------- 1 | /*#include "crypto_hash_sha512.h"*/ 2 | #include "hram.h" 3 | 4 | extern void ZT_sha512internal(void *digest,const void *data,unsigned int len); 5 | 6 | void get_hram(unsigned char *hram, const unsigned char *sm, const unsigned char *pk, unsigned char *playground, unsigned long long smlen) 7 | { 8 | unsigned long long i; 9 | 10 | for (i = 0;i < 32;++i) playground[i] = sm[i]; 11 | for (i = 32;i < 64;++i) playground[i] = pk[i-32]; 12 | for (i = 64;i < smlen;++i) playground[i] = sm[i]; 13 | 14 | /*crypto_hash_sha512(hram,playground,smlen);*/ 15 | ZT_sha512internal(hram,playground,smlen); 16 | } 17 | -------------------------------------------------------------------------------- /ext/ed25519-amd64-asm/hram.h: -------------------------------------------------------------------------------- 1 | #ifndef HRAM_H 2 | #define HRAM_H 3 | 4 | #define get_hram crypto_sign_ed25519_amd64_64_get_hram 5 | 6 | extern void get_hram(unsigned char *hram, const unsigned char *sm, const unsigned char *pk, unsigned char *playground, unsigned long long smlen); 7 | 8 | #endif 9 | -------------------------------------------------------------------------------- /ext/ed25519-amd64-asm/implementors: -------------------------------------------------------------------------------- 1 | Daniel J. Bernstein 2 | Niels Duif 3 | Tanja Lange 4 | lead: Peter Schwabe 5 | Bo-Yin Yang 6 | -------------------------------------------------------------------------------- /ext/ed25519-amd64-asm/keypair.c: -------------------------------------------------------------------------------- 1 | #include 2 | #include "crypto_sign.h" 3 | #include "crypto_hash_sha512.h" 4 | #include "randombytes.h" 5 | #include "ge25519.h" 6 | 7 | int crypto_sign_keypair(unsigned char *pk,unsigned char *sk) 8 | { 9 | unsigned char az[64]; 10 | sc25519 scsk; 11 | ge25519 gepk; 12 | 13 | randombytes(sk,32); 14 | crypto_hash_sha512(az,sk,32); 15 | az[0] &= 248; 16 | az[31] &= 127; 17 | az[31] |= 64; 18 | 19 | sc25519_from32bytes(&scsk,az); 20 | 21 | ge25519_scalarmult_base(&gepk, &scsk); 22 | ge25519_pack(pk, &gepk); 23 | memmove(sk + 32,pk,32); 24 | return 0; 25 | } 26 | -------------------------------------------------------------------------------- /ext/ed25519-amd64-asm/sc25519_from64bytes.c: -------------------------------------------------------------------------------- 1 | #include "sc25519.h" 2 | 3 | void sc25519_from64bytes(sc25519 *r, const unsigned char x[64]) 4 | { 5 | /* assuming little-endian representation of unsigned long long */ 6 | sc25519_barrett(r, (unsigned long long *)x); 7 | } 8 | -------------------------------------------------------------------------------- /ext/ed25519-amd64-asm/sc25519_from_shortsc.c: -------------------------------------------------------------------------------- 1 | #include "sc25519.h" 2 | 3 | void sc25519_from_shortsc(sc25519 *r, const shortsc25519 *x) 4 | { 5 | r->v[0] = x->v[0]; 6 | r->v[1] = x->v[1]; 7 | r->v[2] = 0; 8 | r->v[3] = 0; 9 | } 10 | -------------------------------------------------------------------------------- /ext/ed25519-amd64-asm/sc25519_iszero.c: -------------------------------------------------------------------------------- 1 | #include "sc25519.h" 2 | 3 | int sc25519_iszero_vartime(const sc25519 *x) 4 | { 5 | if(x->v[0] != 0) return 0; 6 | if(x->v[1] != 0) return 0; 7 | if(x->v[2] != 0) return 0; 8 | if(x->v[3] != 0) return 0; 9 | return 1; 10 | } 11 | -------------------------------------------------------------------------------- /ext/ed25519-amd64-asm/sc25519_mul.c: -------------------------------------------------------------------------------- 1 | #include "sc25519.h" 2 | 3 | #define ull4_mul crypto_sign_ed25519_amd64_64_ull4_mul 4 | 5 | extern void ull4_mul(unsigned long long r[8], const unsigned long long x[4], const unsigned long long y[4]); 6 | 7 | void sc25519_mul(sc25519 *r, const sc25519 *x, const sc25519 *y) 8 | { 9 | unsigned long long t[8]; 10 | ull4_mul(t, x->v, y->v); 11 | sc25519_barrett(r, t); 12 | } 13 | -------------------------------------------------------------------------------- /ext/ed25519-amd64-asm/sc25519_mul_shortsc.c: -------------------------------------------------------------------------------- 1 | #include "sc25519.h" 2 | 3 | void sc25519_mul_shortsc(sc25519 *r, const sc25519 *x, const shortsc25519 *y) 4 | { 5 | /* XXX: This wants to be faster */ 6 | sc25519 t; 7 | sc25519_from_shortsc(&t, y); 8 | sc25519_mul(r, x, &t); 9 | } 10 | -------------------------------------------------------------------------------- /ext/ed25519-amd64-asm/sc25519_to32bytes.c: -------------------------------------------------------------------------------- 1 | #include "sc25519.h" 2 | 3 | void sc25519_to32bytes(unsigned char r[32], const sc25519 *x) 4 | { 5 | /* assuming little-endian */ 6 | int i; 7 | for(i=0;i<32;i++) r[i] = i[(unsigned char *)x->v]; 8 | } 9 | -------------------------------------------------------------------------------- /ext/ed25519-amd64-asm/sc25519_window4.c: -------------------------------------------------------------------------------- 1 | #include "sc25519.h" 2 | 3 | void sc25519_window4(signed char r[64], const sc25519 *s) 4 | { 5 | char carry; 6 | int i; 7 | for(i=0;i<16;i++) 8 | r[i] = (s->v[0] >> (4*i)) & 15; 9 | for(i=0;i<16;i++) 10 | r[i+16] = (s->v[1] >> (4*i)) & 15; 11 | for(i=0;i<16;i++) 12 | r[i+32] = (s->v[2] >> (4*i)) & 15; 13 | for(i=0;i<16;i++) 14 | r[i+48] = (s->v[3] >> (4*i)) & 15; 15 | 16 | /* Making it signed */ 17 | carry = 0; 18 | for(i=0;i<63;i++) 19 | { 20 | r[i] += carry; 21 | r[i+1] += r[i] >> 4; 22 | r[i] &= 15; 23 | carry = r[i] >> 3; 24 | r[i] -= carry << 4; 25 | } 26 | r[63] += carry; 27 | } 28 | -------------------------------------------------------------------------------- /ext/hiredis-0.14.1/.gitignore: -------------------------------------------------------------------------------- 1 | /hiredis-test 2 | /examples/hiredis-example* 3 | /*.o 4 | /*.so 5 | /*.dylib 6 | /*.pc 7 | -------------------------------------------------------------------------------- /ext/hiredis-0.14.1/examples/example-qt.h: -------------------------------------------------------------------------------- 1 | #ifndef __HIREDIS_EXAMPLE_QT_H 2 | #define __HIREDIS_EXAMPLE_QT_H 3 | 4 | #include 5 | 6 | class ExampleQt : public QObject { 7 | 8 | Q_OBJECT 9 | 10 | public: 11 | ExampleQt(const char * value, QObject * parent = 0) 12 | : QObject(parent), m_value(value) {} 13 | 14 | signals: 15 | void finished(); 16 | 17 | public slots: 18 | void run(); 19 | 20 | private: 21 | void finish() { emit finished(); } 22 | 23 | private: 24 | const char * m_value; 25 | redisAsyncContext * m_ctx; 26 | RedisQtAdapter m_adapter; 27 | 28 | friend 29 | void getCallback(redisAsyncContext *, void *, void *); 30 | }; 31 | 32 | #endif /* !__HIREDIS_EXAMPLE_QT_H */ 33 | -------------------------------------------------------------------------------- /ext/hiredis-0.14.1/fmacros.h: -------------------------------------------------------------------------------- 1 | #ifndef __HIREDIS_FMACRO_H 2 | #define __HIREDIS_FMACRO_H 3 | 4 | #define _XOPEN_SOURCE 600 5 | #define _POSIX_C_SOURCE 200112L 6 | 7 | #if defined(__APPLE__) && defined(__MACH__) 8 | /* Enable TCP_KEEPALIVE */ 9 | #define _DARWIN_C_SOURCE 10 | #endif 11 | 12 | #endif 13 | -------------------------------------------------------------------------------- /ext/hiredis-0.14.1/include/hiredis/fmacros.h: -------------------------------------------------------------------------------- 1 | #ifndef __HIREDIS_FMACRO_H 2 | #define __HIREDIS_FMACRO_H 3 | 4 | #define _XOPEN_SOURCE 600 5 | #define _POSIX_C_SOURCE 200112L 6 | 7 | #if defined(__APPLE__) && defined(__MACH__) 8 | /* Enable TCP_KEEPALIVE */ 9 | #define _DARWIN_C_SOURCE 10 | #endif 11 | 12 | #endif 13 | -------------------------------------------------------------------------------- /ext/hiredis-0.14.1/lib/centos8/libhiredis.a: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zerotier/ZeroTierOne/5232af0a61f7f6625ec6852d330c6c3520ae91de/ext/hiredis-0.14.1/lib/centos8/libhiredis.a -------------------------------------------------------------------------------- /ext/hiredis-0.14.1/lib/macos/libhiredis.a: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zerotier/ZeroTierOne/5232af0a61f7f6625ec6852d330c6c3520ae91de/ext/hiredis-0.14.1/lib/macos/libhiredis.a -------------------------------------------------------------------------------- /ext/hiredis-1.0.2/.gitignore: -------------------------------------------------------------------------------- 1 | /hiredis-test 2 | /examples/hiredis-example* 3 | /*.o 4 | /*.so 5 | /*.dylib 6 | /*.a 7 | /*.pc 8 | *.dSYM 9 | tags 10 | -------------------------------------------------------------------------------- /ext/hiredis-1.0.2/examples/example-qt.h: -------------------------------------------------------------------------------- 1 | #ifndef __HIREDIS_EXAMPLE_QT_H 2 | #define __HIREDIS_EXAMPLE_QT_H 3 | 4 | #include 5 | 6 | class ExampleQt : public QObject { 7 | 8 | Q_OBJECT 9 | 10 | public: 11 | ExampleQt(const char * value, QObject * parent = 0) 12 | : QObject(parent), m_value(value) {} 13 | 14 | signals: 15 | void finished(); 16 | 17 | public slots: 18 | void run(); 19 | 20 | private: 21 | void finish() { emit finished(); } 22 | 23 | private: 24 | const char * m_value; 25 | redisAsyncContext * m_ctx; 26 | RedisQtAdapter m_adapter; 27 | 28 | friend 29 | void getCallback(redisAsyncContext *, void *, void *); 30 | }; 31 | 32 | #endif /* !__HIREDIS_EXAMPLE_QT_H */ 33 | -------------------------------------------------------------------------------- /ext/hiredis-1.0.2/fmacros.h: -------------------------------------------------------------------------------- 1 | #ifndef __HIREDIS_FMACRO_H 2 | #define __HIREDIS_FMACRO_H 3 | 4 | #define _XOPEN_SOURCE 600 5 | #define _POSIX_C_SOURCE 200112L 6 | 7 | #if defined(__APPLE__) && defined(__MACH__) 8 | /* Enable TCP_KEEPALIVE */ 9 | #define _DARWIN_C_SOURCE 10 | #endif 11 | 12 | #endif 13 | -------------------------------------------------------------------------------- /ext/hiredis-1.0.2/hiredis-config.cmake.in: -------------------------------------------------------------------------------- 1 | @PACKAGE_INIT@ 2 | 3 | set_and_check(hiredis_INCLUDEDIR "@PACKAGE_INCLUDE_INSTALL_DIR@") 4 | 5 | IF (NOT TARGET hiredis::hiredis) 6 | INCLUDE(${CMAKE_CURRENT_LIST_DIR}/hiredis-targets.cmake) 7 | ENDIF() 8 | 9 | SET(hiredis_LIBRARIES hiredis::hiredis) 10 | SET(hiredis_INCLUDE_DIRS ${hiredis_INCLUDEDIR}) 11 | 12 | check_required_components(hiredis) 13 | 14 | -------------------------------------------------------------------------------- /ext/hiredis-1.0.2/hiredis.pc.in: -------------------------------------------------------------------------------- 1 | prefix=@CMAKE_INSTALL_PREFIX@ 2 | install_libdir=@CMAKE_INSTALL_LIBDIR@ 3 | exec_prefix=${prefix} 4 | libdir=${exec_prefix}/${install_libdir} 5 | includedir=${prefix}/include 6 | pkgincludedir=${includedir}/hiredis 7 | 8 | Name: hiredis 9 | Description: Minimalistic C client library for Redis. 10 | Version: @PROJECT_VERSION@ 11 | Libs: -L${libdir} -lhiredis 12 | Cflags: -I${pkgincludedir} -D_FILE_OFFSET_BITS=64 13 | -------------------------------------------------------------------------------- /ext/hiredis-1.0.2/hiredis_ssl-config.cmake.in: -------------------------------------------------------------------------------- 1 | @PACKAGE_INIT@ 2 | 3 | set_and_check(hiredis_ssl_INCLUDEDIR "@PACKAGE_INCLUDE_INSTALL_DIR@") 4 | 5 | IF (NOT TARGET hiredis::hiredis_ssl) 6 | INCLUDE(${CMAKE_CURRENT_LIST_DIR}/hiredis_ssl-targets.cmake) 7 | ENDIF() 8 | 9 | SET(hiredis_ssl_LIBRARIES hiredis::hiredis_ssl) 10 | SET(hiredis_ssl_INCLUDE_DIRS ${hiredis_ssl_INCLUDEDIR}) 11 | 12 | check_required_components(hiredis_ssl) 13 | 14 | -------------------------------------------------------------------------------- /ext/hiredis-1.0.2/hiredis_ssl.pc.in: -------------------------------------------------------------------------------- 1 | prefix=@CMAKE_INSTALL_PREFIX@ 2 | exec_prefix=${prefix} 3 | libdir=${exec_prefix}/lib 4 | includedir=${prefix}/include 5 | pkgincludedir=${includedir}/hiredis 6 | 7 | Name: hiredis_ssl 8 | Description: SSL Support for hiredis. 9 | Version: @PROJECT_VERSION@ 10 | Requires: hiredis 11 | Libs: -L${libdir} -lhiredis_ssl 12 | Libs.private: -lssl -lcrypto 13 | -------------------------------------------------------------------------------- /ext/hiredis-1.0.2/include/hiredis/fmacros.h: -------------------------------------------------------------------------------- 1 | #ifndef __HIREDIS_FMACRO_H 2 | #define __HIREDIS_FMACRO_H 3 | 4 | #define _XOPEN_SOURCE 600 5 | #define _POSIX_C_SOURCE 200112L 6 | 7 | #if defined(__APPLE__) && defined(__MACH__) 8 | /* Enable TCP_KEEPALIVE */ 9 | #define _DARWIN_C_SOURCE 10 | #endif 11 | 12 | #endif 13 | -------------------------------------------------------------------------------- /ext/hiredis-1.0.2/lib/ubuntu22.04/amd64/libhiredis.a: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zerotier/ZeroTierOne/5232af0a61f7f6625ec6852d330c6c3520ae91de/ext/hiredis-1.0.2/lib/ubuntu22.04/amd64/libhiredis.a -------------------------------------------------------------------------------- /ext/hiredis-1.0.2/lib/ubuntu22.04/arm64/libhiredis.a: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zerotier/ZeroTierOne/5232af0a61f7f6625ec6852d330c6c3520ae91de/ext/hiredis-1.0.2/lib/ubuntu22.04/arm64/libhiredis.a -------------------------------------------------------------------------------- /ext/installfiles/linux/zerotier-containerized/main.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | export PATH=/bin:/usr/bin:/usr/local/bin:/sbin:/usr/sbin 4 | 5 | if [ ! -e /dev/net/tun ]; then 6 | echo 'FATAL: cannot start ZeroTier One in container: /dev/net/tun not present.' 7 | exit 1 8 | fi 9 | 10 | exec "$@" 11 | -------------------------------------------------------------------------------- /ext/installfiles/linux/zerotier-one.te: -------------------------------------------------------------------------------- 1 | 2 | module zerotier-one 1.0; 3 | 4 | require { 5 | type unconfined_t; 6 | type initrc_t; 7 | class memprotect mmap_zero; 8 | } 9 | 10 | #============= initrc_t ============== 11 | allow initrc_t self:memprotect mmap_zero; 12 | 13 | #============= unconfined_t ============== 14 | allow unconfined_t self:memprotect mmap_zero; 15 | -------------------------------------------------------------------------------- /ext/installfiles/mac/com.zerotier.one.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Label 6 | com.zerotier.one 7 | UserName 8 | root 9 | ProgramArguments 10 | 11 | /Library/Application Support/ZeroTier/One/launch.sh 12 | 13 | WorkingDirectory 14 | /Library/Application Support/ZeroTier/One 15 | StandardOutPath 16 | /dev/null 17 | StandardErrorPath 18 | /dev/null 19 | KeepAlive 20 | 21 | 22 | 23 | -------------------------------------------------------------------------------- /ext/installfiles/mac/launch.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | export PATH="/Library/Application Support/ZeroTier/One:/bin:/usr/bin:/sbin:/usr/sbin" 3 | /usr/bin/killall MacEthernetTapAgent >>/dev/null 2>&1 4 | exec zerotier-one 5 | -------------------------------------------------------------------------------- /ext/libnatpmp/README: -------------------------------------------------------------------------------- 1 | libnatpmp (c) 2007-2009 Thomas Bernard 2 | contact : miniupnp@free.fr 3 | 4 | see http://miniupnp.free.fr/libnatpmp.html 5 | or http://miniupnp.tuxfamily.org/libnatpmp.html 6 | for some documentation and code samples. 7 | 8 | -------------------------------------------------------------------------------- /ext/libnatpmp/declspec.h: -------------------------------------------------------------------------------- 1 | #ifndef DECLSPEC_H_INCLUDED 2 | #define DECLSPEC_H_INCLUDED 3 | 4 | #if defined(WIN32) && !defined(STATICLIB) 5 | /* for windows dll */ 6 | #ifdef NATPMP_EXPORTS 7 | #define LIBSPEC __declspec(dllexport) 8 | #else 9 | #define LIBSPEC __declspec(dllimport) 10 | #endif 11 | #else 12 | #if defined(__GNUC__) && __GNUC__ >= 4 13 | /* fix dynlib for OS X 10.9.2 and Apple LLVM version 5.0 */ 14 | #define LIBSPEC __attribute__ ((visibility ("default"))) 15 | #else 16 | #define LIBSPEC 17 | #endif 18 | #endif 19 | 20 | #endif 21 | 22 | -------------------------------------------------------------------------------- /ext/libnatpmp/msvc/libnatpmp.vcproj: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zerotier/ZeroTierOne/5232af0a61f7f6625ec6852d330c6c3520ae91de/ext/libnatpmp/msvc/libnatpmp.vcproj -------------------------------------------------------------------------------- /ext/libnatpmp/msvc/natpmpc-static.vcproj: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zerotier/ZeroTierOne/5232af0a61f7f6625ec6852d330c6c3520ae91de/ext/libnatpmp/msvc/natpmpc-static.vcproj -------------------------------------------------------------------------------- /ext/libnatpmp/natpmp.def: -------------------------------------------------------------------------------- 1 | LIBRARY 2 | ; libnatpmp library 3 | 4 | EXPORTS 5 | initnatpmp 6 | closenatpmp 7 | sendpublicaddressrequest 8 | sendnewportmappingrequest 9 | getnatpmprequesttimeout 10 | readnatpmpresponseorretry 11 | strnatpmperr 12 | -------------------------------------------------------------------------------- /ext/libnatpmp/natpmpc.1: -------------------------------------------------------------------------------- 1 | .TH natpmpc 1 2 | 3 | .SH NAME 4 | natpmpc \- NAT\-PMP library test client and mapping setter. 5 | 6 | .SH "SYNOPSIS" 7 | Display the public IP address: 8 | .br 9 | \fBnatpmpc\fP 10 | 11 | Add a port mapping: 12 | .br 13 | \fBnatpmpc\fP \-a [lifetime] 14 | 15 | .SH DESCRIPTION 16 | 17 | In order to remove a mapping, set it with a lifetime of 0 seconds. 18 | To remove all mappings for your machine, use 0 as private port and 19 | lifetime. 20 | -------------------------------------------------------------------------------- /ext/libnatpmp/setup.py: -------------------------------------------------------------------------------- 1 | #! /usr/bin/python 2 | # $Id: setup.py,v 1.3 2012/03/05 04:54:01 nanard Exp $ 3 | # 4 | # python script to build the libnatpmp module under unix 5 | # 6 | # replace libnatpmp.a by libnatpmp.so for shared library usage 7 | from distutils.core import setup, Extension 8 | from distutils import sysconfig 9 | sysconfig.get_config_vars()["OPT"] = '' 10 | sysconfig.get_config_vars()["CFLAGS"] = '' 11 | setup(name="libnatpmp", version="1.0", 12 | ext_modules=[ 13 | Extension(name="libnatpmp", sources=["libnatpmpmodule.c"], 14 | extra_objects=["libnatpmp.a"], 15 | define_macros=[('ENABLE_STRNATPMPERR', None)] 16 | )] 17 | ) 18 | 19 | -------------------------------------------------------------------------------- /ext/libnatpmp/setupmingw32.py: -------------------------------------------------------------------------------- 1 | #! /usr/bin/python 2 | # $Id: setupmingw32.py,v 1.3 2012/03/05 04:54:01 nanard Exp $ 3 | # python script to build the miniupnpc module under windows 4 | # 5 | from distutils.core import setup, Extension 6 | from distutils import sysconfig 7 | sysconfig.get_config_vars()["OPT"] = '' 8 | sysconfig.get_config_vars()["CFLAGS"] = '' 9 | setup(name="libnatpmp", version="1.0", 10 | ext_modules=[ 11 | Extension(name="libnatpmp", sources=["libnatpmpmodule.c"], 12 | libraries=["ws2_32"], 13 | extra_objects=["libnatpmp.a"], 14 | define_macros=[('ENABLE_STRNATPMPERR', None)] 15 | )] 16 | ) 17 | 18 | -------------------------------------------------------------------------------- /ext/libpqxx-7.7.3/.github/workflows/stale.yml: -------------------------------------------------------------------------------- 1 | name: Mark stale issues and pull requests 2 | 3 | on: 4 | schedule: 5 | - cron: "30 1 * * *" 6 | 7 | jobs: 8 | stale: 9 | 10 | runs-on: ubuntu-latest 11 | 12 | steps: 13 | - uses: actions/stale@v1 14 | with: 15 | repo-token: ${{ secrets.GITHUB_TOKEN }} 16 | stale-issue-message: 'There has been no activity on this ticket. Consider closing it.' 17 | stale-pr-message: 'There has been no activity on this pull request. Complete it or drop it.' 18 | stale-issue-label: 'no-issue-activity' 19 | stale-pr-label: 'no-pr-activity' 20 | -------------------------------------------------------------------------------- /ext/libpqxx-7.7.3/.lgtm.yml: -------------------------------------------------------------------------------- 1 | # Config file for lgtm.com static analysis. 2 | 3 | path_classifiers: 4 | test: 5 | - test 6 | generated: 7 | - aclocal.m4 8 | - configure 9 | - ltmain.sh 10 | -------------------------------------------------------------------------------- /ext/libpqxx-7.7.3/.lift/ignoreFiles: -------------------------------------------------------------------------------- 1 | # Make Sonatype Lift ignore these generated files. 2 | configure 3 | config/* 4 | -------------------------------------------------------------------------------- /ext/libpqxx-7.7.3/AUTHORS: -------------------------------------------------------------------------------- 1 | Jeroen T. Vermeulen. Wrote the code. 2 | Ray Dassen. Did most of the autoconf etc. stuff. 3 | 4 | Lots of others helped with various other contributions. 5 | -------------------------------------------------------------------------------- /ext/libpqxx-7.7.3/Makefile.am: -------------------------------------------------------------------------------- 1 | SUBDIRS = include src test tools config doc 2 | EXTRA_DIST = autogen.sh configitems README.md VERSION requirements.json 3 | 4 | MAINTAINERCLEANFILES = \ 5 | Makefile.in aclocal.m4 config.h.in config.log configure stamp-h.in 6 | 7 | pkgconfigdir = $(libdir)/pkgconfig 8 | pkgconfig_DATA = libpqxx.pc 9 | 10 | TESTS = tools/lint 11 | 12 | 13 | # Generate ChangeLog from git history. It goes all the way back through 14 | # the project's git, bzr, svn, and cvs days. 15 | dist-hook: ChangeLog 16 | 17 | ChangeLog: configure.ac 18 | git log --stat --name-only --date=short --abbrev-commit >$@ 19 | 20 | 21 | # We use README.md, but automake expects plain README. 22 | README: README.md 23 | ln -s $< $@ 24 | -------------------------------------------------------------------------------- /ext/libpqxx-7.7.3/VERSION: -------------------------------------------------------------------------------- 1 | 7.7.3 2 | -------------------------------------------------------------------------------- /ext/libpqxx-7.7.3/cmake/libpqxx-config.cmake: -------------------------------------------------------------------------------- 1 | include(CMakeFindDependencyMacro) 2 | find_dependency(PostgreSQL) 3 | 4 | include("${CMAKE_CURRENT_LIST_DIR}/libpqxx-targets.cmake") 5 | -------------------------------------------------------------------------------- /ext/libpqxx-7.7.3/compile_flags.in: -------------------------------------------------------------------------------- 1 | @CPPFLAGS@ @CXXFLAGS@ 2 | -------------------------------------------------------------------------------- /ext/libpqxx-7.7.3/config-tests/charconv_float.cxx: -------------------------------------------------------------------------------- 1 | // Test for std::to_string/std::from_string for floating-point types. 2 | #include 3 | #include 4 | 5 | int main() 6 | { 7 | char z[100]; 8 | auto rt = std::to_chars(std::begin(z), std::end(z), 3.14159L); 9 | if (rt.ec != std::errc{}) 10 | return 1; 11 | long double n; 12 | auto rf = std::from_chars(std::cbegin(z), std::cend(z), n); 13 | if (rf.ec != std::errc{}) 14 | return 2; 15 | return (n > 3 and n < 4) ? 0 : 1; 16 | } 17 | -------------------------------------------------------------------------------- /ext/libpqxx-7.7.3/config-tests/charconv_int.cxx: -------------------------------------------------------------------------------- 1 | // Test for std::to_string/std::from_string for integral types. 2 | #include 3 | #include 4 | 5 | int main() 6 | { 7 | char z[100]; 8 | auto rt = std::to_chars(std::begin(z), std::end(z), 9ULL); 9 | if (rt.ec != std::errc{}) 10 | return 1; 11 | unsigned long long n; 12 | auto rf = std::from_chars(std::cbegin(z), std::cend(z), n); 13 | if (rf.ec != std::errc{}) 14 | return 2; 15 | return (n == 9ULL) ? 0 : 1; 16 | } 17 | -------------------------------------------------------------------------------- /ext/libpqxx-7.7.3/config-tests/cmp.cxx: -------------------------------------------------------------------------------- 1 | // Test for C++20 std::cmp_greater etc. support. 2 | #include 3 | 4 | 5 | int main() 6 | { 7 | return std::cmp_greater(-1, 2u) && std::cmp_less_equal(3, 0); 8 | } 9 | -------------------------------------------------------------------------------- /ext/libpqxx-7.7.3/config-tests/concepts.cxx: -------------------------------------------------------------------------------- 1 | // Test for concepts support. Not just the language feature; also headers. 2 | #include 3 | #include 4 | #include 5 | 6 | 7 | template 8 | concept Foo = std::ranges::input_range; 9 | 10 | 11 | template auto foo(F const &r) 12 | { 13 | return std::distance(std::begin(r), std::end(r)); 14 | } 15 | 16 | 17 | int main() 18 | { 19 | std::vector const v{1, 2, 3}; 20 | std::cout << foo(v) << '\n'; 21 | } 22 | -------------------------------------------------------------------------------- /ext/libpqxx-7.7.3/config-tests/cxa_demangle.cxx: -------------------------------------------------------------------------------- 1 | // Test for cross-vendor C++ ABI's __cxa_demangle function. 2 | #include 3 | #include 4 | #include 5 | #include 6 | 7 | #include 8 | 9 | int main() 10 | { 11 | int status = 0; 12 | char *name = 13 | abi::__cxa_demangle(typeid(10).name(), nullptr, nullptr, &status); 14 | if (status != 0) 15 | throw std::runtime_error("Demangle failed!"); 16 | int result = std::strcmp(name, "int"); 17 | std::free(name); 18 | return result; 19 | } 20 | -------------------------------------------------------------------------------- /ext/libpqxx-7.7.3/config-tests/fs.cxx: -------------------------------------------------------------------------------- 1 | // Check for working std::filesystem support. 2 | #include 3 | 4 | 5 | int main() 6 | { 7 | // Apparently some versions of MinGW lack this comparison operator. 8 | return std::filesystem::path{} != std::filesystem::path{}; 9 | } 10 | -------------------------------------------------------------------------------- /ext/libpqxx-7.7.3/config-tests/gcc_pure.cxx: -------------------------------------------------------------------------------- 1 | // Test for gcc-style "pure" attribute. 2 | int __attribute__((pure)) f() 3 | { 4 | return 0; 5 | } 6 | 7 | int main() 8 | { 9 | return f(); 10 | } 11 | -------------------------------------------------------------------------------- /ext/libpqxx-7.7.3/config-tests/gcc_visibility.cxx: -------------------------------------------------------------------------------- 1 | // Test for gcc-style "visibility" attribute. 2 | struct __attribute__((visibility("hidden"))) D 3 | { 4 | D() {} 5 | int f() { return 0; } 6 | }; 7 | 8 | int main() 9 | { 10 | D d; 11 | return d.f(); 12 | } 13 | -------------------------------------------------------------------------------- /ext/libpqxx-7.7.3/config-tests/likely.cxx: -------------------------------------------------------------------------------- 1 | // Test for C++20 [[likely]] and [[unlikely]] attributes. 2 | 3 | int main(int argc, char **) 4 | { 5 | #if __cplusplus < 202002L 6 | deliberately_fail(because, older, C++, standard); 7 | #endif 8 | 9 | int x = 0; 10 | if (argc == 1) [[likely]] 11 | x = 0; 12 | else 13 | x = 1; 14 | return x; 15 | } 16 | -------------------------------------------------------------------------------- /ext/libpqxx-7.7.3/config-tests/multidim-subscript.cxx: -------------------------------------------------------------------------------- 1 | // Test for multidimensional subscript operator support. 2 | // Proposed for C++23: P2128R6. 3 | struct table 4 | { 5 | int width = 100; 6 | 7 | int operator[](int x, int y) const { return x + width * y; } 8 | }; 9 | 10 | 11 | int main() 12 | { 13 | return table{}[0, 0]; 14 | } 15 | -------------------------------------------------------------------------------- /ext/libpqxx-7.7.3/config-tests/need_fslib.cxx: -------------------------------------------------------------------------------- 1 | // Check whether we need to link to the stdc++fs library. 2 | // 3 | // We assume that the presence of the header means that we have 4 | // support for the basics of std::filesystem. This check will succeed if 5 | // either there is no header, or there is one and it works without 6 | // any special options. If the link fails, we assume that -lstdc++fs will fix 7 | // it for us. 8 | 9 | #include 10 | 11 | #if __has_include() 12 | # include 13 | #endif 14 | 15 | 16 | int main() 17 | { 18 | #if __has_include() 19 | std::cout << std::filesystem::path{"foo.bar"}.c_str() << '\n'; 20 | #endif 21 | } 22 | -------------------------------------------------------------------------------- /ext/libpqxx-7.7.3/config-tests/poll.cxx: -------------------------------------------------------------------------------- 1 | // Test for poll(). 2 | #include 3 | 4 | int main() 5 | { 6 | return poll(nullptr, 0, 0); 7 | } 8 | -------------------------------------------------------------------------------- /ext/libpqxx-7.7.3/config-tests/span.cxx: -------------------------------------------------------------------------------- 1 | // Test for std::span. 2 | #include 3 | 4 | int main(int argc, char **argv) 5 | { 6 | std::span args{argv, static_cast(argc)}; 7 | return static_cast(std::size(args) - 1u); 8 | } 9 | -------------------------------------------------------------------------------- /ext/libpqxx-7.7.3/config-tests/strerror_r.cxx: -------------------------------------------------------------------------------- 1 | // Check for strerror_r. 2 | // It can be either the POSIX version (which returns int) or the GNU version 3 | // (which returns char *). 4 | 5 | #include 6 | #include 7 | 8 | int main() 9 | { 10 | char buffer[200]; 11 | auto res{strerror_r(1, buffer, 200)}; 12 | // Sidestep type differences. We don't really care what the value is. 13 | return not not res; 14 | } 15 | -------------------------------------------------------------------------------- /ext/libpqxx-7.7.3/config-tests/strerror_s.cxx: -------------------------------------------------------------------------------- 1 | // Test for strerror_s, as defined in Windows and C11. 2 | // Presumably this'll be part of the C++ standard some day. 3 | 4 | #include 5 | 6 | int main() 7 | { 8 | using namespace std; 9 | char buf[200]; 10 | return strerror_s(buf, 200, 1); 11 | } 12 | -------------------------------------------------------------------------------- /ext/libpqxx-7.7.3/config-tests/thread_local.cxx: -------------------------------------------------------------------------------- 1 | // Test for std::to_string/std::from_string for floating-point types. 2 | #include 3 | #include 4 | 5 | int main(int argc, char **) 6 | { 7 | #if defined(__MINGW32__) && defined(__GNUC__) 8 | # if __GNUC__ < 11 || ((__GNUC__ == 11) && (__GNU_MINOR__ == 0)) 9 | # error "On MinGW before gcc 11.1, thread_local breaks at run time." 10 | # endif 11 | #endif 12 | thread_local std::stringstream s; 13 | s << argc; 14 | std::cout << s.str(); 15 | } 16 | -------------------------------------------------------------------------------- /ext/libpqxx-7.7.3/config-tests/year_month_day.cxx: -------------------------------------------------------------------------------- 1 | // Test for std::chrono::year_month_day etc. 2 | #include 3 | 4 | int main() 5 | { 6 | return int(std::chrono::year{1}); 7 | } 8 | -------------------------------------------------------------------------------- /ext/libpqxx-7.7.3/config/Makefile.am: -------------------------------------------------------------------------------- 1 | EXTRA_DIST=m4/Makefile.am sample-headers 2 | MAINTAINERCLEANFILES=Makefile.in config.guess config.sub install-sh \ 3 | ltmain.sh missing mkinstalldirs 4 | 5 | dist-hook: 6 | find "${distdir}" -type d -name CVS -print0 | xargs -0 rm -rf 7 | find "${distdir}" -type d -name .svn -print0 | xargs -0 rm -rf 8 | 9 | -------------------------------------------------------------------------------- /ext/libpqxx-7.7.3/config/m4/Makefile.am: -------------------------------------------------------------------------------- 1 | MAINTAINERCLEANFILES=Makefile.in config.guess config.sub install-sh \ 2 | ltmain.sh missing mkinstalldirs 3 | 4 | -------------------------------------------------------------------------------- /ext/libpqxx-7.7.3/config/m4/ltversion.m4: -------------------------------------------------------------------------------- 1 | # ltversion.m4 -- version numbers -*- Autoconf -*- 2 | # 3 | # Copyright (C) 2004, 2011-2015 Free Software Foundation, Inc. 4 | # Written by Scott James Remnant, 2004 5 | # 6 | # This file is free software; the Free Software Foundation gives 7 | # unlimited permission to copy and/or distribute it, with or without 8 | # modifications, as long as this notice is preserved. 9 | 10 | # @configure_input@ 11 | 12 | # serial 4179 ltversion.m4 13 | # This file is part of GNU Libtool 14 | 15 | m4_define([LT_PACKAGE_VERSION], [2.4.6]) 16 | m4_define([LT_PACKAGE_REVISION], [2.4.6]) 17 | 18 | AC_DEFUN([LTVERSION_VERSION], 19 | [macro_version='2.4.6' 20 | macro_revision='2.4.6' 21 | _LT_DECL(, macro_version, 0, [Which release of libtool.m4 was used?]) 22 | _LT_DECL(, macro_revision, 0) 23 | ]) 24 | -------------------------------------------------------------------------------- /ext/libpqxx-7.7.3/doc/index.rst: -------------------------------------------------------------------------------- 1 | .. x documentation master file, created by 2 | sphinx-quickstart on Sun Dec 3 01:30:12 2017. 3 | You can adapt this file completely to your liking, but it should at least 4 | contain the root `toctree` directive. 5 | 6 | libpqxx 7 | ======= 8 | 9 | .. toctree:: 10 | :maxdepth: 2 11 | :caption: Contents: 12 | 13 | 14 | 15 | Indices and tables 16 | ================== 17 | 18 | * :ref:`genindex` 19 | * :ref:`modindex` 20 | * :ref:`search` 21 | -------------------------------------------------------------------------------- /ext/libpqxx-7.7.3/include/CMakeLists.txt.template: -------------------------------------------------------------------------------- 1 | install( 2 | DIRECTORY pqxx "${PROJECT_BINARY_DIR}/include/pqxx" 3 | DESTINATION ${CMAKE_INSTALL_INCLUDEDIR} 4 | FILES_MATCHING 5 | # For each X.hxx, install both X.hxx itself and plain X. 6 | PATTERN *.hxx 7 | # TODO: Is there any way to do this with CMake's globbing? 8 | ###MAKTEMPLATE:FOREACH include/pqxx/*.hxx 9 | PATTERN ###BASENAME### 10 | ###MAKTEMPLATE:ENDFOREACH 11 | PATTERN internal/*.hxx 12 | PATTERN internal/gates/*.hxx 13 | PATTERN config-public-compiler.h 14 | PATTERN pqxx 15 | PATTERN doc EXCLUDE 16 | ) 17 | 18 | install( 19 | DIRECTORY pqxx/doc/ 20 | DESTINATION ${CMAKE_INSTALL_DOCDIR} 21 | FILES_MATCHING 22 | PATTERN *.md 23 | ) 24 | -------------------------------------------------------------------------------- /ext/libpqxx-7.7.3/include/pqxx/Makefile.am: -------------------------------------------------------------------------------- 1 | MAINTAINERCLEANFILES=Makefile.in stamp-h.in 2 | 3 | noinst_HEADERS = \ 4 | config-internal-autotools.h 5 | 6 | nodist_noinst_HEADERS = \ 7 | config.h \ 8 | config-internal-compiler.h 9 | 10 | DISTCLEANFILES = \ 11 | config-internal-autotools.h \ 12 | config-internal-compiler.h \ 13 | config-public-compiler.h 14 | -------------------------------------------------------------------------------- /ext/libpqxx-7.7.3/include/pqxx/array: -------------------------------------------------------------------------------- 1 | /** Handling of SQL arrays. 2 | */ 3 | // Actual definitions in .hxx file so editors and such recognize file type. 4 | #include "pqxx/internal/header-pre.hxx" 5 | #include "pqxx/array.hxx" 6 | #include "pqxx/internal/header-post.hxx" 7 | -------------------------------------------------------------------------------- /ext/libpqxx-7.7.3/include/pqxx/binarystring: -------------------------------------------------------------------------------- 1 | /** BYTEA (binary string) conversions. 2 | */ 3 | // Actual definitions in .hxx file so editors and such recognize file type. 4 | #include "pqxx/internal/header-pre.hxx" 5 | #include "pqxx/binarystring.hxx" 6 | #include "pqxx/internal/header-post.hxx" 7 | -------------------------------------------------------------------------------- /ext/libpqxx-7.7.3/include/pqxx/blob: -------------------------------------------------------------------------------- 1 | /** Binary Large Objects interface. 2 | */ 3 | // Actual definitions in .hxx file so editors and such recognize file type. 4 | #include "pqxx/internal/header-pre.hxx" 5 | #include "pqxx/blob.hxx" 6 | #include "pqxx/internal/header-post.hxx" 7 | -------------------------------------------------------------------------------- /ext/libpqxx-7.7.3/include/pqxx/composite: -------------------------------------------------------------------------------- 1 | /** Handling of SQL "composite types." 2 | */ 3 | // Actual definitions in .hxx file so editors and such recognize file type. 4 | #include "pqxx/internal/header-pre.hxx" 5 | #include "pqxx/composite.hxx" 6 | #include "pqxx/internal/header-post.hxx" 7 | -------------------------------------------------------------------------------- /ext/libpqxx-7.7.3/include/pqxx/connection: -------------------------------------------------------------------------------- 1 | /** pqxx::connection class. 2 | * 3 | * pqxx::connection encapsulates a connection to a database. 4 | */ 5 | // Actual definitions in .hxx file so editors and such recognize file type. 6 | #include "pqxx/internal/header-pre.hxx" 7 | #include "pqxx/connection.hxx" 8 | #include "pqxx/internal/header-post.hxx" 9 | -------------------------------------------------------------------------------- /ext/libpqxx-7.7.3/include/pqxx/cursor: -------------------------------------------------------------------------------- 1 | /** Definition of the iterator/container-style cursor classes. 2 | * 3 | * C++-style wrappers for SQL cursors 4 | */ 5 | // Actual definitions in .hxx file so editors and such recognize file type. 6 | #include "pqxx/internal/header-pre.hxx" 7 | #include "pqxx/cursor.hxx" 8 | #include "pqxx/internal/header-post.hxx" 9 | -------------------------------------------------------------------------------- /ext/libpqxx-7.7.3/include/pqxx/dbtransaction: -------------------------------------------------------------------------------- 1 | /** pqxx::dbtransaction abstract base class. 2 | * 3 | * pqxx::dbransaction defines a real transaction on the database. 4 | */ 5 | // Actual definitions in .hxx file so editors and such recognize file type. 6 | #include "pqxx/internal/header-pre.hxx" 7 | #include "pqxx/dbtransaction.hxx" 8 | #include "pqxx/internal/header-post.hxx" 9 | -------------------------------------------------------------------------------- /ext/libpqxx-7.7.3/include/pqxx/errorhandler: -------------------------------------------------------------------------------- 1 | /** pqxx::errorhandler class. 2 | * 3 | * Callbacks for handling errors and warnings. 4 | */ 5 | // Actual definitions in .hxx file so editors and such recognize file type. 6 | #include "pqxx/internal/header-pre.hxx" 7 | #include "pqxx/errorhandler.hxx" 8 | #include "pqxx/internal/header-post.hxx" 9 | -------------------------------------------------------------------------------- /ext/libpqxx-7.7.3/include/pqxx/except: -------------------------------------------------------------------------------- 1 | /** libpqxx exception classes. 2 | * 3 | * pqxx::sql_error, pqxx::broken_connection, pqxx::in_doubt_error, ... 4 | */ 5 | // Actual definitions in .hxx file so editors and such recognize file type. 6 | #include "pqxx/internal/header-pre.hxx" 7 | #include "pqxx/except.hxx" 8 | #include "pqxx/internal/header-post.hxx" 9 | -------------------------------------------------------------------------------- /ext/libpqxx-7.7.3/include/pqxx/field: -------------------------------------------------------------------------------- 1 | /** pqxx::field class. 2 | * 3 | * pqxx::field refers to a field in a query result. 4 | */ 5 | // Actual definitions in .hxx file so editors and such recognize file type. 6 | #include "pqxx/internal/header-pre.hxx" 7 | #include "pqxx/field.hxx" 8 | #include "pqxx/internal/header-post.hxx" 9 | -------------------------------------------------------------------------------- /ext/libpqxx-7.7.3/include/pqxx/internal/gates/connection-errorhandler.hxx: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | namespace pqxx 4 | { 5 | class connection; 6 | class errorhandler; 7 | } // namespace pqxx 8 | 9 | namespace pqxx::internal::gate 10 | { 11 | class PQXX_PRIVATE connection_errorhandler : callgate 12 | { 13 | friend class pqxx::errorhandler; 14 | 15 | connection_errorhandler(reference x) : super(x) {} 16 | 17 | void register_errorhandler(errorhandler *h) 18 | { 19 | home().register_errorhandler(h); 20 | } 21 | void unregister_errorhandler(errorhandler *h) 22 | { 23 | home().unregister_errorhandler(h); 24 | } 25 | }; 26 | } // namespace pqxx::internal::gate 27 | -------------------------------------------------------------------------------- /ext/libpqxx-7.7.3/include/pqxx/internal/gates/connection-notification_receiver.hxx: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | #include "pqxx/connection.hxx" 4 | 5 | 6 | namespace pqxx 7 | { 8 | class notification_receiver; 9 | } 10 | 11 | 12 | namespace pqxx::internal::gate 13 | { 14 | class PQXX_PRIVATE connection_notification_receiver : callgate 15 | { 16 | friend class pqxx::notification_receiver; 17 | 18 | connection_notification_receiver(reference x) : super(x) {} 19 | 20 | void add_receiver(notification_receiver *receiver) 21 | { 22 | home().add_receiver(receiver); 23 | } 24 | void remove_receiver(notification_receiver *receiver) noexcept 25 | { 26 | home().remove_receiver(receiver); 27 | } 28 | }; 29 | } // namespace pqxx::internal::gate 30 | -------------------------------------------------------------------------------- /ext/libpqxx-7.7.3/include/pqxx/internal/gates/connection-sql_cursor.hxx: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | namespace pqxx::internal 4 | { 5 | class sql_cursor; 6 | } 7 | 8 | 9 | namespace pqxx::internal::gate 10 | { 11 | class PQXX_PRIVATE connection_sql_cursor : callgate 12 | { 13 | friend class pqxx::internal::sql_cursor; 14 | 15 | connection_sql_cursor(reference x) : super(x) {} 16 | 17 | result exec(char const query[]) { return home().exec(query); } 18 | }; 19 | } // namespace pqxx::internal::gate 20 | -------------------------------------------------------------------------------- /ext/libpqxx-7.7.3/include/pqxx/internal/gates/connection-stream_from.hxx: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | #include "pqxx/connection.hxx" 4 | 5 | namespace pqxx::internal::gate 6 | { 7 | class PQXX_PRIVATE connection_stream_from : callgate 8 | { 9 | friend class pqxx::stream_from; 10 | 11 | connection_stream_from(reference x) : super{x} {} 12 | 13 | auto read_copy_line() { return home().read_copy_line(); } 14 | }; 15 | } // namespace pqxx::internal::gate 16 | -------------------------------------------------------------------------------- /ext/libpqxx-7.7.3/include/pqxx/internal/gates/connection-stream_to.hxx: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | #include "pqxx/stream_to.hxx" 4 | 5 | 6 | namespace pqxx::internal::gate 7 | { 8 | class PQXX_PRIVATE connection_stream_to : callgate 9 | { 10 | friend class pqxx::stream_to; 11 | 12 | connection_stream_to(reference x) : super(x) {} 13 | 14 | void write_copy_line(std::string_view line) { home().write_copy_line(line); } 15 | void end_copy_write() { home().end_copy_write(); } 16 | }; 17 | } // namespace pqxx::internal::gate 18 | -------------------------------------------------------------------------------- /ext/libpqxx-7.7.3/include/pqxx/internal/gates/errorhandler-connection.hxx: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | namespace pqxx::internal::gate 4 | { 5 | class PQXX_PRIVATE errorhandler_connection : callgate 6 | { 7 | friend class pqxx::connection; 8 | 9 | errorhandler_connection(reference x) : super(x) {} 10 | 11 | void unregister() noexcept { home().unregister(); } 12 | }; 13 | } // namespace pqxx::internal::gate 14 | -------------------------------------------------------------------------------- /ext/libpqxx-7.7.3/include/pqxx/internal/gates/icursor_iterator-icursorstream.hxx: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | namespace pqxx::internal::gate 4 | { 5 | class PQXX_PRIVATE icursor_iterator_icursorstream : callgate 6 | { 7 | friend class pqxx::icursorstream; 8 | 9 | icursor_iterator_icursorstream(reference x) : super(x) {} 10 | 11 | icursor_iterator::difference_type pos() const noexcept 12 | { 13 | return home().pos(); 14 | } 15 | 16 | icursor_iterator *get_prev() { return home().m_prev; } 17 | void set_prev(icursor_iterator *i) { home().m_prev = i; } 18 | 19 | icursor_iterator *get_next() { return home().m_next; } 20 | void set_next(icursor_iterator *i) { home().m_next = i; } 21 | 22 | void fill(result const &r) { home().fill(r); } 23 | }; 24 | } // namespace pqxx::internal::gate 25 | -------------------------------------------------------------------------------- /ext/libpqxx-7.7.3/include/pqxx/internal/gates/result-connection.hxx: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | namespace pqxx::internal::gate 4 | { 5 | class PQXX_PRIVATE result_connection : callgate 6 | { 7 | friend class pqxx::connection; 8 | 9 | result_connection(reference x) : super(x) {} 10 | 11 | operator bool() const { return bool(home()); } 12 | bool operator!() const { return not home(); } 13 | }; 14 | } // namespace pqxx::internal::gate 15 | -------------------------------------------------------------------------------- /ext/libpqxx-7.7.3/include/pqxx/internal/gates/result-creation.hxx: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | namespace pqxx::internal::gate 4 | { 5 | class PQXX_PRIVATE result_creation : callgate 6 | { 7 | friend class pqxx::connection; 8 | friend class pqxx::pipeline; 9 | 10 | result_creation(reference x) : super(x) {} 11 | 12 | static result create( 13 | internal::pq::PGresult *rhs, std::shared_ptr const &query, 14 | encoding_group enc) 15 | { 16 | return result(rhs, query, enc); 17 | } 18 | 19 | void check_status(std::string_view desc = ""sv) const 20 | { 21 | return home().check_status(desc); 22 | } 23 | }; 24 | } // namespace pqxx::internal::gate 25 | -------------------------------------------------------------------------------- /ext/libpqxx-7.7.3/include/pqxx/internal/gates/result-pipeline.hxx: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | namespace pqxx::internal::gate 4 | { 5 | class PQXX_PRIVATE result_pipeline : callgate 6 | { 7 | friend class pqxx::pipeline; 8 | 9 | result_pipeline(reference x) : super(x) {} 10 | 11 | std::shared_ptr query_ptr() const 12 | { 13 | return home().query_ptr(); 14 | } 15 | }; 16 | } // namespace pqxx::internal::gate 17 | -------------------------------------------------------------------------------- /ext/libpqxx-7.7.3/include/pqxx/internal/gates/result-sql_cursor.hxx: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | namespace pqxx::internal::gate 4 | { 5 | class PQXX_PRIVATE result_sql_cursor : callgate 6 | { 7 | friend class pqxx::internal::sql_cursor; 8 | 9 | result_sql_cursor(reference x) : super(x) {} 10 | 11 | char const *cmd_status() const noexcept { return home().cmd_status(); } 12 | }; 13 | } // namespace pqxx::internal::gate 14 | -------------------------------------------------------------------------------- /ext/libpqxx-7.7.3/include/pqxx/internal/gates/transaction-sql_cursor.hxx: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | namespace pqxx::internal::gate 4 | { 5 | class PQXX_PRIVATE transaction_sql_cursor : callgate 6 | { 7 | friend class pqxx::internal::sql_cursor; 8 | transaction_sql_cursor(reference x) : super(x) {} 9 | }; 10 | } // namespace pqxx::internal::gate 11 | -------------------------------------------------------------------------------- /ext/libpqxx-7.7.3/include/pqxx/internal/header-post.hxx: -------------------------------------------------------------------------------- 1 | /* Compiler deficiency workarounds for compiling libpqxx headers. 2 | * 3 | * To be included at the end of each libpqxx header, in order to restore the 4 | * client program's settings. 5 | * 6 | * Copyright (c) 2000-2022, Jeroen T. Vermeulen. 7 | * 8 | * See COPYING for copyright license. If you did not receive a file called 9 | * COPYING with this source code, please notify the distributor of this 10 | * mistake, or contact the author. 11 | */ 12 | // NO GUARDS HERE! This code should be executed every time! 13 | 14 | #if defined(_MSC_VER) 15 | # pragma warning(pop) // Restore compiler's warning state 16 | #endif 17 | 18 | #if !defined(PQXX_HEADER_PRE) 19 | # error "Include pqxx/internal/header-post.hxx AFTER its 'pre' counterpart." 20 | #endif 21 | 22 | #undef PQXX_HEADER_PRE 23 | -------------------------------------------------------------------------------- /ext/libpqxx-7.7.3/include/pqxx/internal/ignore-deprecated-post.hxx: -------------------------------------------------------------------------------- 1 | /// End a code block started by "ignore-deprecated-pre.hxx". 2 | 3 | #if !defined(PQXX_IGNORING_DEPRECATED) 4 | # error "Ended an 'ignore-deprecated' block while none was active." 5 | #endif 6 | 7 | #if defined(__GNUC__) 8 | # pragma GCC diagnostic pop 9 | #endif // __GNUC__ 10 | 11 | #ifdef _MSC_VER 12 | # pragma warning(pop) 13 | #endif 14 | 15 | #undef PQXX_IGNORING_DEPRECATED 16 | -------------------------------------------------------------------------------- /ext/libpqxx-7.7.3/include/pqxx/internal/wait.hxx: -------------------------------------------------------------------------------- 1 | #if !defined(PQXX_WAIT_HXX) 2 | # define PQXX_WAIT_HXX 3 | 4 | namespace pqxx::internal 5 | { 6 | /// Wait. 7 | /** This is normally `std::this_thread::sleep_for()`. But MinGW's `thread` 8 | * header doesn't work, so we must be careful about including it. 9 | */ 10 | void PQXX_LIBEXPORT wait_for(unsigned int microseconds); 11 | 12 | 13 | /// Wait for a socket to be ready for reading/writing, or timeout. 14 | PQXX_LIBEXPORT void wait_fd( 15 | int fd, bool for_read, bool for_write, unsigned seconds = 1, 16 | unsigned microseconds = 0); 17 | } // namespace pqxx::internal 18 | #endif 19 | -------------------------------------------------------------------------------- /ext/libpqxx-7.7.3/include/pqxx/isolation: -------------------------------------------------------------------------------- 1 | /** Transaction isolation levels. 2 | * 3 | * Policies and traits describing SQL transaction isolation levels 4 | */ 5 | // Actual definitions in .hxx file so editors and such recognize file type. 6 | #include "pqxx/internal/header-pre.hxx" 7 | #include "pqxx/isolation.hxx" 8 | #include "pqxx/internal/header-post.hxx" 9 | -------------------------------------------------------------------------------- /ext/libpqxx-7.7.3/include/pqxx/largeobject: -------------------------------------------------------------------------------- 1 | /** Large Objects interface. 2 | * 3 | * Supports direct access to large objects, as well as through I/O streams 4 | */ 5 | // Actual definitions in .hxx file so editors and such recognize file type. 6 | #include "pqxx/internal/header-pre.hxx" 7 | #include "pqxx/largeobject.hxx" 8 | #include "pqxx/internal/header-post.hxx" 9 | -------------------------------------------------------------------------------- /ext/libpqxx-7.7.3/include/pqxx/nontransaction: -------------------------------------------------------------------------------- 1 | /** pqxx::nontransaction class. 2 | * 3 | * pqxx::nontransaction provides nontransactional database access. 4 | */ 5 | // Actual definitions in .hxx file so editors and such recognize file type. 6 | #include "pqxx/internal/header-pre.hxx" 7 | #include "pqxx/nontransaction.hxx" 8 | #include "pqxx/internal/header-post.hxx" 9 | -------------------------------------------------------------------------------- /ext/libpqxx-7.7.3/include/pqxx/notification: -------------------------------------------------------------------------------- 1 | /** pqxx::notification_receiver functor interface. 2 | * 3 | * pqxx::notification_receiver handles incoming notifications. 4 | */ 5 | // Actual definitions in .hxx file so editors and such recognize file type. 6 | #include "pqxx/internal/header-pre.hxx" 7 | #include "pqxx/notification.hxx" 8 | #include "pqxx/internal/header-post.hxx" 9 | -------------------------------------------------------------------------------- /ext/libpqxx-7.7.3/include/pqxx/params: -------------------------------------------------------------------------------- 1 | /** Helper classes for passing statement parameters. 2 | * 3 | * Use these for prepared statements and parameterised statements. 4 | */ 5 | // Actual definitions in .hxx file so editors and such recognize file type. 6 | #include "pqxx/internal/header-pre.hxx" 7 | #include "pqxx/params.hxx" 8 | #include "pqxx/internal/header-post.hxx" 9 | -------------------------------------------------------------------------------- /ext/libpqxx-7.7.3/include/pqxx/pipeline: -------------------------------------------------------------------------------- 1 | /** pqxx::pipeline class. 2 | * 3 | * Throughput-optimized query interface. 4 | */ 5 | // Actual definitions in .hxx file so editors and such recognize file type. 6 | #include "pqxx/internal/header-pre.hxx" 7 | #include "pqxx/pipeline.hxx" 8 | #include "pqxx/internal/header-post.hxx" 9 | -------------------------------------------------------------------------------- /ext/libpqxx-7.7.3/include/pqxx/prepared_statement: -------------------------------------------------------------------------------- 1 | /// @deprecated Include @c instead. 2 | 3 | #include "params.hxx" 4 | -------------------------------------------------------------------------------- /ext/libpqxx-7.7.3/include/pqxx/prepared_statement.hxx: -------------------------------------------------------------------------------- 1 | /// @deprecated Include @c instead. 2 | 3 | #include "params.hxx" 4 | -------------------------------------------------------------------------------- /ext/libpqxx-7.7.3/include/pqxx/range: -------------------------------------------------------------------------------- 1 | /** Client-side support for SQL range types. 2 | */ 3 | // Actual definitions in .hxx file so editors and such recognize file type. 4 | #include "pqxx/internal/header-pre.hxx" 5 | #include "pqxx/range.hxx" 6 | #include "pqxx/internal/header-post.hxx" 7 | -------------------------------------------------------------------------------- /ext/libpqxx-7.7.3/include/pqxx/result: -------------------------------------------------------------------------------- 1 | /** pqxx::result class and support classes. 2 | * 3 | * pqxx::result represents the set of result rows from a database query. 4 | */ 5 | // Actual definitions in .hxx file so editors and such recognize file type. 6 | #include "pqxx/internal/header-pre.hxx" 7 | 8 | #include "pqxx/result.hxx" 9 | 10 | // Now include some types which depend on result, but which the user will 11 | // expect to see defined after including this header. 12 | #include "pqxx/internal/result_iterator.hxx" 13 | #include "pqxx/field.hxx" 14 | #include "pqxx/internal/result_iter.hxx" 15 | 16 | #include "pqxx/internal/header-post.hxx" 17 | -------------------------------------------------------------------------------- /ext/libpqxx-7.7.3/include/pqxx/robusttransaction: -------------------------------------------------------------------------------- 1 | /** pqxx::robusttransaction class. 2 | * 3 | * pqxx::robusttransaction is a slower but safer transaction class. 4 | */ 5 | // Actual definitions in .hxx file so editors and such recognize file type. 6 | #include "pqxx/internal/header-pre.hxx" 7 | #include "pqxx/robusttransaction.hxx" 8 | #include "pqxx/internal/header-post.hxx" 9 | -------------------------------------------------------------------------------- /ext/libpqxx-7.7.3/include/pqxx/row: -------------------------------------------------------------------------------- 1 | /** pqxx::row class. 2 | * 3 | * pqxx::row refers to a row in a result. 4 | */ 5 | // Actual definitions in .hxx file so editors and such recognize file type. 6 | #include "pqxx/internal/header-pre.hxx" 7 | 8 | #include "pqxx/result.hxx" 9 | #include "pqxx/row.hxx" 10 | 11 | #include "pqxx/internal/header-post.hxx" 12 | -------------------------------------------------------------------------------- /ext/libpqxx-7.7.3/include/pqxx/separated_list: -------------------------------------------------------------------------------- 1 | /** Helper similar to Python's @c str.join(). 2 | */ 3 | // Actual definitions in .hxx file so editors and such recognize file type. 4 | #include "pqxx/internal/header-pre.hxx" 5 | #include "pqxx/separated_list.hxx" 6 | #include "pqxx/internal/header-post.hxx" 7 | -------------------------------------------------------------------------------- /ext/libpqxx-7.7.3/include/pqxx/strconv: -------------------------------------------------------------------------------- 1 | /** String conversion definitions. 2 | */ 3 | // Actual definitions in .hxx file so editors and such recognize file type. 4 | #include "pqxx/internal/header-pre.hxx" 5 | #include "pqxx/strconv.hxx" 6 | #include "pqxx/internal/header-post.hxx" 7 | -------------------------------------------------------------------------------- /ext/libpqxx-7.7.3/include/pqxx/stream_from: -------------------------------------------------------------------------------- 1 | /** pqxx::stream_from class. 2 | * 3 | * pqxx::stream_from enables optimized batch reads from a database table. 4 | */ 5 | // Actual definitions in .hxx file so editors and such recognize file type. 6 | #include "pqxx/internal/header-pre.hxx" 7 | #include "pqxx/stream_from.hxx" 8 | #include "pqxx/internal/header-post.hxx" 9 | -------------------------------------------------------------------------------- /ext/libpqxx-7.7.3/include/pqxx/stream_to: -------------------------------------------------------------------------------- 1 | /** pqxx::stream_to class. 2 | * 3 | * pqxx::stream_to enables optimized batch updates to a database table. 4 | */ 5 | // Actual definitions in .hxx file so editors and such recognize file type. 6 | #include "pqxx/internal/header-pre.hxx" 7 | #include "pqxx/stream_to.hxx" 8 | #include "pqxx/internal/header-post.hxx" 9 | -------------------------------------------------------------------------------- /ext/libpqxx-7.7.3/include/pqxx/subtransaction: -------------------------------------------------------------------------------- 1 | /** pqxx::subtransaction class. 2 | * 3 | * pqxx::subtransaction is a nested transaction, i.e. one inside a transaction. 4 | */ 5 | // Actual definitions in .hxx file so editors and such recognize file type. 6 | #include "pqxx/internal/header-pre.hxx" 7 | #include "pqxx/subtransaction.hxx" 8 | #include "pqxx/internal/header-post.hxx" 9 | -------------------------------------------------------------------------------- /ext/libpqxx-7.7.3/include/pqxx/time: -------------------------------------------------------------------------------- 1 | /** Date/time string conversions. 2 | */ 3 | // Actual definitions in .hxx file so editors and such recognize file type. 4 | #include "pqxx/internal/header-pre.hxx" 5 | #include "pqxx/time.hxx" 6 | #include "pqxx/internal/header-post.hxx" 7 | -------------------------------------------------------------------------------- /ext/libpqxx-7.7.3/include/pqxx/transaction: -------------------------------------------------------------------------------- 1 | /** pqxx::transaction class. 2 | * 3 | * pqxx::transaction represents a standard database transaction. 4 | */ 5 | // Actual definitions in .hxx file so editors and such recognize file type. 6 | #include "pqxx/internal/header-pre.hxx" 7 | #include "pqxx/transaction.hxx" 8 | #include "pqxx/internal/header-post.hxx" 9 | -------------------------------------------------------------------------------- /ext/libpqxx-7.7.3/include/pqxx/transaction_base: -------------------------------------------------------------------------------- 1 | /** Base for the transaction classes. 2 | * 3 | * pqxx::transaction_base defines the interface for any abstract class that 4 | * represents a database transaction. 5 | */ 6 | // Actual definitions in .hxx file so editors and such recognize file type. 7 | #include "pqxx/internal/header-pre.hxx" 8 | #include "pqxx/transaction_base.hxx" 9 | #include "pqxx/internal/header-post.hxx" 10 | -------------------------------------------------------------------------------- /ext/libpqxx-7.7.3/include/pqxx/transaction_focus: -------------------------------------------------------------------------------- 1 | /** 2 | * Transaction focus: types which monopolise a transaction's attention. 3 | */ 4 | // Actual definitions in .hxx file so editors and such recognize file type. 5 | #include "pqxx/internal/header-pre.hxx" 6 | #include "pqxx/types.hxx" 7 | #include "pqxx/internal/header-post.hxx" 8 | -------------------------------------------------------------------------------- /ext/libpqxx-7.7.3/include/pqxx/transactor: -------------------------------------------------------------------------------- 1 | /** pqxx::transactor class. 2 | * 3 | * pqxx::transactor is a framework-style wrapper for safe transactions. 4 | */ 5 | // Actual definitions in .hxx file so editors and such recognize file type. 6 | #include "pqxx/internal/header-pre.hxx" 7 | #include "pqxx/transactor.hxx" 8 | #include "pqxx/internal/header-post.hxx" 9 | -------------------------------------------------------------------------------- /ext/libpqxx-7.7.3/include/pqxx/types: -------------------------------------------------------------------------------- 1 | /** 2 | * Basic typedefs and forward declarations. 3 | */ 4 | // Actual definitions in .hxx file so editors and such recognize file type. 5 | #include "pqxx/internal/header-pre.hxx" 6 | #include "pqxx/types.hxx" 7 | #include "pqxx/internal/header-post.hxx" 8 | -------------------------------------------------------------------------------- /ext/libpqxx-7.7.3/include/pqxx/util: -------------------------------------------------------------------------------- 1 | /** Various utility definitions for libpqxx. 2 | */ 3 | // Actual definitions in .hxx file so editors and such recognize file type 4 | #include "pqxx/internal/header-pre.hxx" 5 | #include "pqxx/util.hxx" 6 | #include "pqxx/internal/header-post.hxx" 7 | -------------------------------------------------------------------------------- /ext/libpqxx-7.7.3/include/pqxx/version: -------------------------------------------------------------------------------- 1 | /** libpqxx version info. 2 | */ 3 | // Actual definitions in .hxx file so editors and such recognize file type. 4 | #include "pqxx/internal/header-pre.hxx" 5 | #include "pqxx/version.hxx" 6 | #include "pqxx/internal/header-post.hxx" 7 | 8 | -------------------------------------------------------------------------------- /ext/libpqxx-7.7.3/include/pqxx/zview: -------------------------------------------------------------------------------- 1 | /** Zero-terminated string view class. 2 | */ 3 | // Actual definitions in .hxx file so editors and such recognize file type. 4 | #include "pqxx/internal/header-pre.hxx" 5 | #include "pqxx/zview.hxx" 6 | #include "pqxx/internal/header-post.hxx" 7 | -------------------------------------------------------------------------------- /ext/libpqxx-7.7.3/install/ubuntu22.04/amd64/include/pqxx/array: -------------------------------------------------------------------------------- 1 | /** Handling of SQL arrays. 2 | */ 3 | // Actual definitions in .hxx file so editors and such recognize file type. 4 | #include "pqxx/internal/header-pre.hxx" 5 | #include "pqxx/array.hxx" 6 | #include "pqxx/internal/header-post.hxx" 7 | -------------------------------------------------------------------------------- /ext/libpqxx-7.7.3/install/ubuntu22.04/amd64/include/pqxx/binarystring: -------------------------------------------------------------------------------- 1 | /** BYTEA (binary string) conversions. 2 | */ 3 | // Actual definitions in .hxx file so editors and such recognize file type. 4 | #include "pqxx/internal/header-pre.hxx" 5 | #include "pqxx/binarystring.hxx" 6 | #include "pqxx/internal/header-post.hxx" 7 | -------------------------------------------------------------------------------- /ext/libpqxx-7.7.3/install/ubuntu22.04/amd64/include/pqxx/blob: -------------------------------------------------------------------------------- 1 | /** Binary Large Objects interface. 2 | */ 3 | // Actual definitions in .hxx file so editors and such recognize file type. 4 | #include "pqxx/internal/header-pre.hxx" 5 | #include "pqxx/blob.hxx" 6 | #include "pqxx/internal/header-post.hxx" 7 | -------------------------------------------------------------------------------- /ext/libpqxx-7.7.3/install/ubuntu22.04/amd64/include/pqxx/composite: -------------------------------------------------------------------------------- 1 | /** Handling of SQL "composite types." 2 | */ 3 | // Actual definitions in .hxx file so editors and such recognize file type. 4 | #include "pqxx/internal/header-pre.hxx" 5 | #include "pqxx/composite.hxx" 6 | #include "pqxx/internal/header-post.hxx" 7 | -------------------------------------------------------------------------------- /ext/libpqxx-7.7.3/install/ubuntu22.04/amd64/include/pqxx/connection: -------------------------------------------------------------------------------- 1 | /** pqxx::connection class. 2 | * 3 | * pqxx::connection encapsulates a connection to a database. 4 | */ 5 | // Actual definitions in .hxx file so editors and such recognize file type. 6 | #include "pqxx/internal/header-pre.hxx" 7 | #include "pqxx/connection.hxx" 8 | #include "pqxx/internal/header-post.hxx" 9 | -------------------------------------------------------------------------------- /ext/libpqxx-7.7.3/install/ubuntu22.04/amd64/include/pqxx/cursor: -------------------------------------------------------------------------------- 1 | /** Definition of the iterator/container-style cursor classes. 2 | * 3 | * C++-style wrappers for SQL cursors 4 | */ 5 | // Actual definitions in .hxx file so editors and such recognize file type. 6 | #include "pqxx/internal/header-pre.hxx" 7 | #include "pqxx/cursor.hxx" 8 | #include "pqxx/internal/header-post.hxx" 9 | -------------------------------------------------------------------------------- /ext/libpqxx-7.7.3/install/ubuntu22.04/amd64/include/pqxx/dbtransaction: -------------------------------------------------------------------------------- 1 | /** pqxx::dbtransaction abstract base class. 2 | * 3 | * pqxx::dbransaction defines a real transaction on the database. 4 | */ 5 | // Actual definitions in .hxx file so editors and such recognize file type. 6 | #include "pqxx/internal/header-pre.hxx" 7 | #include "pqxx/dbtransaction.hxx" 8 | #include "pqxx/internal/header-post.hxx" 9 | -------------------------------------------------------------------------------- /ext/libpqxx-7.7.3/install/ubuntu22.04/amd64/include/pqxx/errorhandler: -------------------------------------------------------------------------------- 1 | /** pqxx::errorhandler class. 2 | * 3 | * Callbacks for handling errors and warnings. 4 | */ 5 | // Actual definitions in .hxx file so editors and such recognize file type. 6 | #include "pqxx/internal/header-pre.hxx" 7 | #include "pqxx/errorhandler.hxx" 8 | #include "pqxx/internal/header-post.hxx" 9 | -------------------------------------------------------------------------------- /ext/libpqxx-7.7.3/install/ubuntu22.04/amd64/include/pqxx/except: -------------------------------------------------------------------------------- 1 | /** libpqxx exception classes. 2 | * 3 | * pqxx::sql_error, pqxx::broken_connection, pqxx::in_doubt_error, ... 4 | */ 5 | // Actual definitions in .hxx file so editors and such recognize file type. 6 | #include "pqxx/internal/header-pre.hxx" 7 | #include "pqxx/except.hxx" 8 | #include "pqxx/internal/header-post.hxx" 9 | -------------------------------------------------------------------------------- /ext/libpqxx-7.7.3/install/ubuntu22.04/amd64/include/pqxx/field: -------------------------------------------------------------------------------- 1 | /** pqxx::field class. 2 | * 3 | * pqxx::field refers to a field in a query result. 4 | */ 5 | // Actual definitions in .hxx file so editors and such recognize file type. 6 | #include "pqxx/internal/header-pre.hxx" 7 | #include "pqxx/field.hxx" 8 | #include "pqxx/internal/header-post.hxx" 9 | -------------------------------------------------------------------------------- /ext/libpqxx-7.7.3/install/ubuntu22.04/amd64/include/pqxx/internal/gates/connection-errorhandler.hxx: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | namespace pqxx 4 | { 5 | class connection; 6 | class errorhandler; 7 | } // namespace pqxx 8 | 9 | namespace pqxx::internal::gate 10 | { 11 | class PQXX_PRIVATE connection_errorhandler : callgate 12 | { 13 | friend class pqxx::errorhandler; 14 | 15 | connection_errorhandler(reference x) : super(x) {} 16 | 17 | void register_errorhandler(errorhandler *h) 18 | { 19 | home().register_errorhandler(h); 20 | } 21 | void unregister_errorhandler(errorhandler *h) 22 | { 23 | home().unregister_errorhandler(h); 24 | } 25 | }; 26 | } // namespace pqxx::internal::gate 27 | -------------------------------------------------------------------------------- /ext/libpqxx-7.7.3/install/ubuntu22.04/amd64/include/pqxx/internal/gates/connection-notification_receiver.hxx: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | #include "pqxx/connection.hxx" 4 | 5 | 6 | namespace pqxx 7 | { 8 | class notification_receiver; 9 | } 10 | 11 | 12 | namespace pqxx::internal::gate 13 | { 14 | class PQXX_PRIVATE connection_notification_receiver : callgate 15 | { 16 | friend class pqxx::notification_receiver; 17 | 18 | connection_notification_receiver(reference x) : super(x) {} 19 | 20 | void add_receiver(notification_receiver *receiver) 21 | { 22 | home().add_receiver(receiver); 23 | } 24 | void remove_receiver(notification_receiver *receiver) noexcept 25 | { 26 | home().remove_receiver(receiver); 27 | } 28 | }; 29 | } // namespace pqxx::internal::gate 30 | -------------------------------------------------------------------------------- /ext/libpqxx-7.7.3/install/ubuntu22.04/amd64/include/pqxx/internal/gates/connection-sql_cursor.hxx: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | namespace pqxx::internal 4 | { 5 | class sql_cursor; 6 | } 7 | 8 | 9 | namespace pqxx::internal::gate 10 | { 11 | class PQXX_PRIVATE connection_sql_cursor : callgate 12 | { 13 | friend class pqxx::internal::sql_cursor; 14 | 15 | connection_sql_cursor(reference x) : super(x) {} 16 | 17 | result exec(char const query[]) { return home().exec(query); } 18 | }; 19 | } // namespace pqxx::internal::gate 20 | -------------------------------------------------------------------------------- /ext/libpqxx-7.7.3/install/ubuntu22.04/amd64/include/pqxx/internal/gates/connection-stream_from.hxx: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | #include "pqxx/connection.hxx" 4 | 5 | namespace pqxx::internal::gate 6 | { 7 | class PQXX_PRIVATE connection_stream_from : callgate 8 | { 9 | friend class pqxx::stream_from; 10 | 11 | connection_stream_from(reference x) : super{x} {} 12 | 13 | auto read_copy_line() { return home().read_copy_line(); } 14 | }; 15 | } // namespace pqxx::internal::gate 16 | -------------------------------------------------------------------------------- /ext/libpqxx-7.7.3/install/ubuntu22.04/amd64/include/pqxx/internal/gates/connection-stream_to.hxx: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | #include "pqxx/stream_to.hxx" 4 | 5 | 6 | namespace pqxx::internal::gate 7 | { 8 | class PQXX_PRIVATE connection_stream_to : callgate 9 | { 10 | friend class pqxx::stream_to; 11 | 12 | connection_stream_to(reference x) : super(x) {} 13 | 14 | void write_copy_line(std::string_view line) { home().write_copy_line(line); } 15 | void end_copy_write() { home().end_copy_write(); } 16 | }; 17 | } // namespace pqxx::internal::gate 18 | -------------------------------------------------------------------------------- /ext/libpqxx-7.7.3/install/ubuntu22.04/amd64/include/pqxx/internal/gates/errorhandler-connection.hxx: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | namespace pqxx::internal::gate 4 | { 5 | class PQXX_PRIVATE errorhandler_connection : callgate 6 | { 7 | friend class pqxx::connection; 8 | 9 | errorhandler_connection(reference x) : super(x) {} 10 | 11 | void unregister() noexcept { home().unregister(); } 12 | }; 13 | } // namespace pqxx::internal::gate 14 | -------------------------------------------------------------------------------- /ext/libpqxx-7.7.3/install/ubuntu22.04/amd64/include/pqxx/internal/gates/result-connection.hxx: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | namespace pqxx::internal::gate 4 | { 5 | class PQXX_PRIVATE result_connection : callgate 6 | { 7 | friend class pqxx::connection; 8 | 9 | result_connection(reference x) : super(x) {} 10 | 11 | operator bool() const { return bool(home()); } 12 | bool operator!() const { return not home(); } 13 | }; 14 | } // namespace pqxx::internal::gate 15 | -------------------------------------------------------------------------------- /ext/libpqxx-7.7.3/install/ubuntu22.04/amd64/include/pqxx/internal/gates/result-creation.hxx: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | namespace pqxx::internal::gate 4 | { 5 | class PQXX_PRIVATE result_creation : callgate 6 | { 7 | friend class pqxx::connection; 8 | friend class pqxx::pipeline; 9 | 10 | result_creation(reference x) : super(x) {} 11 | 12 | static result create( 13 | internal::pq::PGresult *rhs, std::shared_ptr const &query, 14 | encoding_group enc) 15 | { 16 | return result(rhs, query, enc); 17 | } 18 | 19 | void check_status(std::string_view desc = ""sv) const 20 | { 21 | return home().check_status(desc); 22 | } 23 | }; 24 | } // namespace pqxx::internal::gate 25 | -------------------------------------------------------------------------------- /ext/libpqxx-7.7.3/install/ubuntu22.04/amd64/include/pqxx/internal/gates/result-pipeline.hxx: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | namespace pqxx::internal::gate 4 | { 5 | class PQXX_PRIVATE result_pipeline : callgate 6 | { 7 | friend class pqxx::pipeline; 8 | 9 | result_pipeline(reference x) : super(x) {} 10 | 11 | std::shared_ptr query_ptr() const 12 | { 13 | return home().query_ptr(); 14 | } 15 | }; 16 | } // namespace pqxx::internal::gate 17 | -------------------------------------------------------------------------------- /ext/libpqxx-7.7.3/install/ubuntu22.04/amd64/include/pqxx/internal/gates/result-sql_cursor.hxx: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | namespace pqxx::internal::gate 4 | { 5 | class PQXX_PRIVATE result_sql_cursor : callgate 6 | { 7 | friend class pqxx::internal::sql_cursor; 8 | 9 | result_sql_cursor(reference x) : super(x) {} 10 | 11 | char const *cmd_status() const noexcept { return home().cmd_status(); } 12 | }; 13 | } // namespace pqxx::internal::gate 14 | -------------------------------------------------------------------------------- /ext/libpqxx-7.7.3/install/ubuntu22.04/amd64/include/pqxx/internal/gates/transaction-sql_cursor.hxx: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | namespace pqxx::internal::gate 4 | { 5 | class PQXX_PRIVATE transaction_sql_cursor : callgate 6 | { 7 | friend class pqxx::internal::sql_cursor; 8 | transaction_sql_cursor(reference x) : super(x) {} 9 | }; 10 | } // namespace pqxx::internal::gate 11 | -------------------------------------------------------------------------------- /ext/libpqxx-7.7.3/install/ubuntu22.04/amd64/include/pqxx/internal/ignore-deprecated-post.hxx: -------------------------------------------------------------------------------- 1 | /// End a code block started by "ignore-deprecated-pre.hxx". 2 | 3 | #if !defined(PQXX_IGNORING_DEPRECATED) 4 | # error "Ended an 'ignore-deprecated' block while none was active." 5 | #endif 6 | 7 | #if defined(__GNUC__) 8 | # pragma GCC diagnostic pop 9 | #endif // __GNUC__ 10 | 11 | #ifdef _MSC_VER 12 | # pragma warning(pop) 13 | #endif 14 | 15 | #undef PQXX_IGNORING_DEPRECATED 16 | -------------------------------------------------------------------------------- /ext/libpqxx-7.7.3/install/ubuntu22.04/amd64/include/pqxx/internal/wait.hxx: -------------------------------------------------------------------------------- 1 | #if !defined(PQXX_WAIT_HXX) 2 | # define PQXX_WAIT_HXX 3 | 4 | namespace pqxx::internal 5 | { 6 | /// Wait. 7 | /** This is normally `std::this_thread::sleep_for()`. But MinGW's `thread` 8 | * header doesn't work, so we must be careful about including it. 9 | */ 10 | void PQXX_LIBEXPORT wait_for(unsigned int microseconds); 11 | 12 | 13 | /// Wait for a socket to be ready for reading/writing, or timeout. 14 | PQXX_LIBEXPORT void wait_fd( 15 | int fd, bool for_read, bool for_write, unsigned seconds = 1, 16 | unsigned microseconds = 0); 17 | } // namespace pqxx::internal 18 | #endif 19 | -------------------------------------------------------------------------------- /ext/libpqxx-7.7.3/install/ubuntu22.04/amd64/include/pqxx/isolation: -------------------------------------------------------------------------------- 1 | /** Transaction isolation levels. 2 | * 3 | * Policies and traits describing SQL transaction isolation levels 4 | */ 5 | // Actual definitions in .hxx file so editors and such recognize file type. 6 | #include "pqxx/internal/header-pre.hxx" 7 | #include "pqxx/isolation.hxx" 8 | #include "pqxx/internal/header-post.hxx" 9 | -------------------------------------------------------------------------------- /ext/libpqxx-7.7.3/install/ubuntu22.04/amd64/include/pqxx/largeobject: -------------------------------------------------------------------------------- 1 | /** Large Objects interface. 2 | * 3 | * Supports direct access to large objects, as well as through I/O streams 4 | */ 5 | // Actual definitions in .hxx file so editors and such recognize file type. 6 | #include "pqxx/internal/header-pre.hxx" 7 | #include "pqxx/largeobject.hxx" 8 | #include "pqxx/internal/header-post.hxx" 9 | -------------------------------------------------------------------------------- /ext/libpqxx-7.7.3/install/ubuntu22.04/amd64/include/pqxx/nontransaction: -------------------------------------------------------------------------------- 1 | /** pqxx::nontransaction class. 2 | * 3 | * pqxx::nontransaction provides nontransactional database access. 4 | */ 5 | // Actual definitions in .hxx file so editors and such recognize file type. 6 | #include "pqxx/internal/header-pre.hxx" 7 | #include "pqxx/nontransaction.hxx" 8 | #include "pqxx/internal/header-post.hxx" 9 | -------------------------------------------------------------------------------- /ext/libpqxx-7.7.3/install/ubuntu22.04/amd64/include/pqxx/notification: -------------------------------------------------------------------------------- 1 | /** pqxx::notification_receiver functor interface. 2 | * 3 | * pqxx::notification_receiver handles incoming notifications. 4 | */ 5 | // Actual definitions in .hxx file so editors and such recognize file type. 6 | #include "pqxx/internal/header-pre.hxx" 7 | #include "pqxx/notification.hxx" 8 | #include "pqxx/internal/header-post.hxx" 9 | -------------------------------------------------------------------------------- /ext/libpqxx-7.7.3/install/ubuntu22.04/amd64/include/pqxx/params: -------------------------------------------------------------------------------- 1 | /** Helper classes for passing statement parameters. 2 | * 3 | * Use these for prepared statements and parameterised statements. 4 | */ 5 | // Actual definitions in .hxx file so editors and such recognize file type. 6 | #include "pqxx/internal/header-pre.hxx" 7 | #include "pqxx/params.hxx" 8 | #include "pqxx/internal/header-post.hxx" 9 | -------------------------------------------------------------------------------- /ext/libpqxx-7.7.3/install/ubuntu22.04/amd64/include/pqxx/pipeline: -------------------------------------------------------------------------------- 1 | /** pqxx::pipeline class. 2 | * 3 | * Throughput-optimized query interface. 4 | */ 5 | // Actual definitions in .hxx file so editors and such recognize file type. 6 | #include "pqxx/internal/header-pre.hxx" 7 | #include "pqxx/pipeline.hxx" 8 | #include "pqxx/internal/header-post.hxx" 9 | -------------------------------------------------------------------------------- /ext/libpqxx-7.7.3/install/ubuntu22.04/amd64/include/pqxx/prepared_statement: -------------------------------------------------------------------------------- 1 | /// @deprecated Include @c instead. 2 | 3 | #include "params.hxx" 4 | -------------------------------------------------------------------------------- /ext/libpqxx-7.7.3/install/ubuntu22.04/amd64/include/pqxx/prepared_statement.hxx: -------------------------------------------------------------------------------- 1 | /// @deprecated Include @c instead. 2 | 3 | #include "params.hxx" 4 | -------------------------------------------------------------------------------- /ext/libpqxx-7.7.3/install/ubuntu22.04/amd64/include/pqxx/range: -------------------------------------------------------------------------------- 1 | /** Client-side support for SQL range types. 2 | */ 3 | // Actual definitions in .hxx file so editors and such recognize file type. 4 | #include "pqxx/internal/header-pre.hxx" 5 | #include "pqxx/range.hxx" 6 | #include "pqxx/internal/header-post.hxx" 7 | -------------------------------------------------------------------------------- /ext/libpqxx-7.7.3/install/ubuntu22.04/amd64/include/pqxx/result: -------------------------------------------------------------------------------- 1 | /** pqxx::result class and support classes. 2 | * 3 | * pqxx::result represents the set of result rows from a database query. 4 | */ 5 | // Actual definitions in .hxx file so editors and such recognize file type. 6 | #include "pqxx/internal/header-pre.hxx" 7 | 8 | #include "pqxx/result.hxx" 9 | 10 | // Now include some types which depend on result, but which the user will 11 | // expect to see defined after including this header. 12 | #include "pqxx/internal/result_iterator.hxx" 13 | #include "pqxx/field.hxx" 14 | #include "pqxx/internal/result_iter.hxx" 15 | 16 | #include "pqxx/internal/header-post.hxx" 17 | -------------------------------------------------------------------------------- /ext/libpqxx-7.7.3/install/ubuntu22.04/amd64/include/pqxx/robusttransaction: -------------------------------------------------------------------------------- 1 | /** pqxx::robusttransaction class. 2 | * 3 | * pqxx::robusttransaction is a slower but safer transaction class. 4 | */ 5 | // Actual definitions in .hxx file so editors and such recognize file type. 6 | #include "pqxx/internal/header-pre.hxx" 7 | #include "pqxx/robusttransaction.hxx" 8 | #include "pqxx/internal/header-post.hxx" 9 | -------------------------------------------------------------------------------- /ext/libpqxx-7.7.3/install/ubuntu22.04/amd64/include/pqxx/row: -------------------------------------------------------------------------------- 1 | /** pqxx::row class. 2 | * 3 | * pqxx::row refers to a row in a result. 4 | */ 5 | // Actual definitions in .hxx file so editors and such recognize file type. 6 | #include "pqxx/internal/header-pre.hxx" 7 | 8 | #include "pqxx/result.hxx" 9 | #include "pqxx/row.hxx" 10 | 11 | #include "pqxx/internal/header-post.hxx" 12 | -------------------------------------------------------------------------------- /ext/libpqxx-7.7.3/install/ubuntu22.04/amd64/include/pqxx/separated_list: -------------------------------------------------------------------------------- 1 | /** Helper similar to Python's @c str.join(). 2 | */ 3 | // Actual definitions in .hxx file so editors and such recognize file type. 4 | #include "pqxx/internal/header-pre.hxx" 5 | #include "pqxx/separated_list.hxx" 6 | #include "pqxx/internal/header-post.hxx" 7 | -------------------------------------------------------------------------------- /ext/libpqxx-7.7.3/install/ubuntu22.04/amd64/include/pqxx/strconv: -------------------------------------------------------------------------------- 1 | /** String conversion definitions. 2 | */ 3 | // Actual definitions in .hxx file so editors and such recognize file type. 4 | #include "pqxx/internal/header-pre.hxx" 5 | #include "pqxx/strconv.hxx" 6 | #include "pqxx/internal/header-post.hxx" 7 | -------------------------------------------------------------------------------- /ext/libpqxx-7.7.3/install/ubuntu22.04/amd64/include/pqxx/stream_from: -------------------------------------------------------------------------------- 1 | /** pqxx::stream_from class. 2 | * 3 | * pqxx::stream_from enables optimized batch reads from a database table. 4 | */ 5 | // Actual definitions in .hxx file so editors and such recognize file type. 6 | #include "pqxx/internal/header-pre.hxx" 7 | #include "pqxx/stream_from.hxx" 8 | #include "pqxx/internal/header-post.hxx" 9 | -------------------------------------------------------------------------------- /ext/libpqxx-7.7.3/install/ubuntu22.04/amd64/include/pqxx/stream_to: -------------------------------------------------------------------------------- 1 | /** pqxx::stream_to class. 2 | * 3 | * pqxx::stream_to enables optimized batch updates to a database table. 4 | */ 5 | // Actual definitions in .hxx file so editors and such recognize file type. 6 | #include "pqxx/internal/header-pre.hxx" 7 | #include "pqxx/stream_to.hxx" 8 | #include "pqxx/internal/header-post.hxx" 9 | -------------------------------------------------------------------------------- /ext/libpqxx-7.7.3/install/ubuntu22.04/amd64/include/pqxx/subtransaction: -------------------------------------------------------------------------------- 1 | /** pqxx::subtransaction class. 2 | * 3 | * pqxx::subtransaction is a nested transaction, i.e. one inside a transaction. 4 | */ 5 | // Actual definitions in .hxx file so editors and such recognize file type. 6 | #include "pqxx/internal/header-pre.hxx" 7 | #include "pqxx/subtransaction.hxx" 8 | #include "pqxx/internal/header-post.hxx" 9 | -------------------------------------------------------------------------------- /ext/libpqxx-7.7.3/install/ubuntu22.04/amd64/include/pqxx/time: -------------------------------------------------------------------------------- 1 | /** Date/time string conversions. 2 | */ 3 | // Actual definitions in .hxx file so editors and such recognize file type. 4 | #include "pqxx/internal/header-pre.hxx" 5 | #include "pqxx/time.hxx" 6 | #include "pqxx/internal/header-post.hxx" 7 | -------------------------------------------------------------------------------- /ext/libpqxx-7.7.3/install/ubuntu22.04/amd64/include/pqxx/transaction: -------------------------------------------------------------------------------- 1 | /** pqxx::transaction class. 2 | * 3 | * pqxx::transaction represents a standard database transaction. 4 | */ 5 | // Actual definitions in .hxx file so editors and such recognize file type. 6 | #include "pqxx/internal/header-pre.hxx" 7 | #include "pqxx/transaction.hxx" 8 | #include "pqxx/internal/header-post.hxx" 9 | -------------------------------------------------------------------------------- /ext/libpqxx-7.7.3/install/ubuntu22.04/amd64/include/pqxx/transaction_base: -------------------------------------------------------------------------------- 1 | /** Base for the transaction classes. 2 | * 3 | * pqxx::transaction_base defines the interface for any abstract class that 4 | * represents a database transaction. 5 | */ 6 | // Actual definitions in .hxx file so editors and such recognize file type. 7 | #include "pqxx/internal/header-pre.hxx" 8 | #include "pqxx/transaction_base.hxx" 9 | #include "pqxx/internal/header-post.hxx" 10 | -------------------------------------------------------------------------------- /ext/libpqxx-7.7.3/install/ubuntu22.04/amd64/include/pqxx/transaction_focus: -------------------------------------------------------------------------------- 1 | /** 2 | * Transaction focus: types which monopolise a transaction's attention. 3 | */ 4 | // Actual definitions in .hxx file so editors and such recognize file type. 5 | #include "pqxx/internal/header-pre.hxx" 6 | #include "pqxx/types.hxx" 7 | #include "pqxx/internal/header-post.hxx" 8 | -------------------------------------------------------------------------------- /ext/libpqxx-7.7.3/install/ubuntu22.04/amd64/include/pqxx/transactor: -------------------------------------------------------------------------------- 1 | /** pqxx::transactor class. 2 | * 3 | * pqxx::transactor is a framework-style wrapper for safe transactions. 4 | */ 5 | // Actual definitions in .hxx file so editors and such recognize file type. 6 | #include "pqxx/internal/header-pre.hxx" 7 | #include "pqxx/transactor.hxx" 8 | #include "pqxx/internal/header-post.hxx" 9 | -------------------------------------------------------------------------------- /ext/libpqxx-7.7.3/install/ubuntu22.04/amd64/include/pqxx/types: -------------------------------------------------------------------------------- 1 | /** 2 | * Basic typedefs and forward declarations. 3 | */ 4 | // Actual definitions in .hxx file so editors and such recognize file type. 5 | #include "pqxx/internal/header-pre.hxx" 6 | #include "pqxx/types.hxx" 7 | #include "pqxx/internal/header-post.hxx" 8 | -------------------------------------------------------------------------------- /ext/libpqxx-7.7.3/install/ubuntu22.04/amd64/include/pqxx/util: -------------------------------------------------------------------------------- 1 | /** Various utility definitions for libpqxx. 2 | */ 3 | // Actual definitions in .hxx file so editors and such recognize file type 4 | #include "pqxx/internal/header-pre.hxx" 5 | #include "pqxx/util.hxx" 6 | #include "pqxx/internal/header-post.hxx" 7 | -------------------------------------------------------------------------------- /ext/libpqxx-7.7.3/install/ubuntu22.04/amd64/include/pqxx/version: -------------------------------------------------------------------------------- 1 | /** libpqxx version info. 2 | */ 3 | // Actual definitions in .hxx file so editors and such recognize file type. 4 | #include "pqxx/internal/header-pre.hxx" 5 | #include "pqxx/version.hxx" 6 | #include "pqxx/internal/header-post.hxx" 7 | 8 | -------------------------------------------------------------------------------- /ext/libpqxx-7.7.3/install/ubuntu22.04/amd64/include/pqxx/zview: -------------------------------------------------------------------------------- 1 | /** Zero-terminated string view class. 2 | */ 3 | // Actual definitions in .hxx file so editors and such recognize file type. 4 | #include "pqxx/internal/header-pre.hxx" 5 | #include "pqxx/zview.hxx" 6 | #include "pqxx/internal/header-post.hxx" 7 | -------------------------------------------------------------------------------- /ext/libpqxx-7.7.3/install/ubuntu22.04/amd64/lib/cmake/libpqxx/libpqxx-config.cmake: -------------------------------------------------------------------------------- 1 | include(CMakeFindDependencyMacro) 2 | find_dependency(PostgreSQL) 3 | 4 | include("${CMAKE_CURRENT_LIST_DIR}/libpqxx-targets.cmake") 5 | -------------------------------------------------------------------------------- /ext/libpqxx-7.7.3/install/ubuntu22.04/amd64/lib/libpqxx-7.7.a: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zerotier/ZeroTierOne/5232af0a61f7f6625ec6852d330c6c3520ae91de/ext/libpqxx-7.7.3/install/ubuntu22.04/amd64/lib/libpqxx-7.7.a -------------------------------------------------------------------------------- /ext/libpqxx-7.7.3/install/ubuntu22.04/amd64/lib/libpqxx.a: -------------------------------------------------------------------------------- 1 | libpqxx-7.7.a -------------------------------------------------------------------------------- /ext/libpqxx-7.7.3/install/ubuntu22.04/arm64/include/pqxx/array: -------------------------------------------------------------------------------- 1 | /** Handling of SQL arrays. 2 | */ 3 | // Actual definitions in .hxx file so editors and such recognize file type. 4 | #include "pqxx/internal/header-pre.hxx" 5 | #include "pqxx/array.hxx" 6 | #include "pqxx/internal/header-post.hxx" 7 | -------------------------------------------------------------------------------- /ext/libpqxx-7.7.3/install/ubuntu22.04/arm64/include/pqxx/binarystring: -------------------------------------------------------------------------------- 1 | /** BYTEA (binary string) conversions. 2 | */ 3 | // Actual definitions in .hxx file so editors and such recognize file type. 4 | #include "pqxx/internal/header-pre.hxx" 5 | #include "pqxx/binarystring.hxx" 6 | #include "pqxx/internal/header-post.hxx" 7 | -------------------------------------------------------------------------------- /ext/libpqxx-7.7.3/install/ubuntu22.04/arm64/include/pqxx/blob: -------------------------------------------------------------------------------- 1 | /** Binary Large Objects interface. 2 | */ 3 | // Actual definitions in .hxx file so editors and such recognize file type. 4 | #include "pqxx/internal/header-pre.hxx" 5 | #include "pqxx/blob.hxx" 6 | #include "pqxx/internal/header-post.hxx" 7 | -------------------------------------------------------------------------------- /ext/libpqxx-7.7.3/install/ubuntu22.04/arm64/include/pqxx/composite: -------------------------------------------------------------------------------- 1 | /** Handling of SQL "composite types." 2 | */ 3 | // Actual definitions in .hxx file so editors and such recognize file type. 4 | #include "pqxx/internal/header-pre.hxx" 5 | #include "pqxx/composite.hxx" 6 | #include "pqxx/internal/header-post.hxx" 7 | -------------------------------------------------------------------------------- /ext/libpqxx-7.7.3/install/ubuntu22.04/arm64/include/pqxx/connection: -------------------------------------------------------------------------------- 1 | /** pqxx::connection class. 2 | * 3 | * pqxx::connection encapsulates a connection to a database. 4 | */ 5 | // Actual definitions in .hxx file so editors and such recognize file type. 6 | #include "pqxx/internal/header-pre.hxx" 7 | #include "pqxx/connection.hxx" 8 | #include "pqxx/internal/header-post.hxx" 9 | -------------------------------------------------------------------------------- /ext/libpqxx-7.7.3/install/ubuntu22.04/arm64/include/pqxx/cursor: -------------------------------------------------------------------------------- 1 | /** Definition of the iterator/container-style cursor classes. 2 | * 3 | * C++-style wrappers for SQL cursors 4 | */ 5 | // Actual definitions in .hxx file so editors and such recognize file type. 6 | #include "pqxx/internal/header-pre.hxx" 7 | #include "pqxx/cursor.hxx" 8 | #include "pqxx/internal/header-post.hxx" 9 | -------------------------------------------------------------------------------- /ext/libpqxx-7.7.3/install/ubuntu22.04/arm64/include/pqxx/dbtransaction: -------------------------------------------------------------------------------- 1 | /** pqxx::dbtransaction abstract base class. 2 | * 3 | * pqxx::dbransaction defines a real transaction on the database. 4 | */ 5 | // Actual definitions in .hxx file so editors and such recognize file type. 6 | #include "pqxx/internal/header-pre.hxx" 7 | #include "pqxx/dbtransaction.hxx" 8 | #include "pqxx/internal/header-post.hxx" 9 | -------------------------------------------------------------------------------- /ext/libpqxx-7.7.3/install/ubuntu22.04/arm64/include/pqxx/errorhandler: -------------------------------------------------------------------------------- 1 | /** pqxx::errorhandler class. 2 | * 3 | * Callbacks for handling errors and warnings. 4 | */ 5 | // Actual definitions in .hxx file so editors and such recognize file type. 6 | #include "pqxx/internal/header-pre.hxx" 7 | #include "pqxx/errorhandler.hxx" 8 | #include "pqxx/internal/header-post.hxx" 9 | -------------------------------------------------------------------------------- /ext/libpqxx-7.7.3/install/ubuntu22.04/arm64/include/pqxx/except: -------------------------------------------------------------------------------- 1 | /** libpqxx exception classes. 2 | * 3 | * pqxx::sql_error, pqxx::broken_connection, pqxx::in_doubt_error, ... 4 | */ 5 | // Actual definitions in .hxx file so editors and such recognize file type. 6 | #include "pqxx/internal/header-pre.hxx" 7 | #include "pqxx/except.hxx" 8 | #include "pqxx/internal/header-post.hxx" 9 | -------------------------------------------------------------------------------- /ext/libpqxx-7.7.3/install/ubuntu22.04/arm64/include/pqxx/field: -------------------------------------------------------------------------------- 1 | /** pqxx::field class. 2 | * 3 | * pqxx::field refers to a field in a query result. 4 | */ 5 | // Actual definitions in .hxx file so editors and such recognize file type. 6 | #include "pqxx/internal/header-pre.hxx" 7 | #include "pqxx/field.hxx" 8 | #include "pqxx/internal/header-post.hxx" 9 | -------------------------------------------------------------------------------- /ext/libpqxx-7.7.3/install/ubuntu22.04/arm64/include/pqxx/internal/gates/connection-errorhandler.hxx: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | namespace pqxx 4 | { 5 | class connection; 6 | class errorhandler; 7 | } // namespace pqxx 8 | 9 | namespace pqxx::internal::gate 10 | { 11 | class PQXX_PRIVATE connection_errorhandler : callgate 12 | { 13 | friend class pqxx::errorhandler; 14 | 15 | connection_errorhandler(reference x) : super(x) {} 16 | 17 | void register_errorhandler(errorhandler *h) 18 | { 19 | home().register_errorhandler(h); 20 | } 21 | void unregister_errorhandler(errorhandler *h) 22 | { 23 | home().unregister_errorhandler(h); 24 | } 25 | }; 26 | } // namespace pqxx::internal::gate 27 | -------------------------------------------------------------------------------- /ext/libpqxx-7.7.3/install/ubuntu22.04/arm64/include/pqxx/internal/gates/connection-notification_receiver.hxx: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | #include "pqxx/connection.hxx" 4 | 5 | 6 | namespace pqxx 7 | { 8 | class notification_receiver; 9 | } 10 | 11 | 12 | namespace pqxx::internal::gate 13 | { 14 | class PQXX_PRIVATE connection_notification_receiver : callgate 15 | { 16 | friend class pqxx::notification_receiver; 17 | 18 | connection_notification_receiver(reference x) : super(x) {} 19 | 20 | void add_receiver(notification_receiver *receiver) 21 | { 22 | home().add_receiver(receiver); 23 | } 24 | void remove_receiver(notification_receiver *receiver) noexcept 25 | { 26 | home().remove_receiver(receiver); 27 | } 28 | }; 29 | } // namespace pqxx::internal::gate 30 | -------------------------------------------------------------------------------- /ext/libpqxx-7.7.3/install/ubuntu22.04/arm64/include/pqxx/internal/gates/connection-sql_cursor.hxx: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | namespace pqxx::internal 4 | { 5 | class sql_cursor; 6 | } 7 | 8 | 9 | namespace pqxx::internal::gate 10 | { 11 | class PQXX_PRIVATE connection_sql_cursor : callgate 12 | { 13 | friend class pqxx::internal::sql_cursor; 14 | 15 | connection_sql_cursor(reference x) : super(x) {} 16 | 17 | result exec(char const query[]) { return home().exec(query); } 18 | }; 19 | } // namespace pqxx::internal::gate 20 | -------------------------------------------------------------------------------- /ext/libpqxx-7.7.3/install/ubuntu22.04/arm64/include/pqxx/internal/gates/connection-stream_from.hxx: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | #include "pqxx/connection.hxx" 4 | 5 | namespace pqxx::internal::gate 6 | { 7 | class PQXX_PRIVATE connection_stream_from : callgate 8 | { 9 | friend class pqxx::stream_from; 10 | 11 | connection_stream_from(reference x) : super{x} {} 12 | 13 | auto read_copy_line() { return home().read_copy_line(); } 14 | }; 15 | } // namespace pqxx::internal::gate 16 | -------------------------------------------------------------------------------- /ext/libpqxx-7.7.3/install/ubuntu22.04/arm64/include/pqxx/internal/gates/connection-stream_to.hxx: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | #include "pqxx/stream_to.hxx" 4 | 5 | 6 | namespace pqxx::internal::gate 7 | { 8 | class PQXX_PRIVATE connection_stream_to : callgate 9 | { 10 | friend class pqxx::stream_to; 11 | 12 | connection_stream_to(reference x) : super(x) {} 13 | 14 | void write_copy_line(std::string_view line) { home().write_copy_line(line); } 15 | void end_copy_write() { home().end_copy_write(); } 16 | }; 17 | } // namespace pqxx::internal::gate 18 | -------------------------------------------------------------------------------- /ext/libpqxx-7.7.3/install/ubuntu22.04/arm64/include/pqxx/internal/gates/errorhandler-connection.hxx: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | namespace pqxx::internal::gate 4 | { 5 | class PQXX_PRIVATE errorhandler_connection : callgate 6 | { 7 | friend class pqxx::connection; 8 | 9 | errorhandler_connection(reference x) : super(x) {} 10 | 11 | void unregister() noexcept { home().unregister(); } 12 | }; 13 | } // namespace pqxx::internal::gate 14 | -------------------------------------------------------------------------------- /ext/libpqxx-7.7.3/install/ubuntu22.04/arm64/include/pqxx/internal/gates/result-connection.hxx: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | namespace pqxx::internal::gate 4 | { 5 | class PQXX_PRIVATE result_connection : callgate 6 | { 7 | friend class pqxx::connection; 8 | 9 | result_connection(reference x) : super(x) {} 10 | 11 | operator bool() const { return bool(home()); } 12 | bool operator!() const { return not home(); } 13 | }; 14 | } // namespace pqxx::internal::gate 15 | -------------------------------------------------------------------------------- /ext/libpqxx-7.7.3/install/ubuntu22.04/arm64/include/pqxx/internal/gates/result-creation.hxx: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | namespace pqxx::internal::gate 4 | { 5 | class PQXX_PRIVATE result_creation : callgate 6 | { 7 | friend class pqxx::connection; 8 | friend class pqxx::pipeline; 9 | 10 | result_creation(reference x) : super(x) {} 11 | 12 | static result create( 13 | internal::pq::PGresult *rhs, std::shared_ptr const &query, 14 | encoding_group enc) 15 | { 16 | return result(rhs, query, enc); 17 | } 18 | 19 | void check_status(std::string_view desc = ""sv) const 20 | { 21 | return home().check_status(desc); 22 | } 23 | }; 24 | } // namespace pqxx::internal::gate 25 | -------------------------------------------------------------------------------- /ext/libpqxx-7.7.3/install/ubuntu22.04/arm64/include/pqxx/internal/gates/result-pipeline.hxx: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | namespace pqxx::internal::gate 4 | { 5 | class PQXX_PRIVATE result_pipeline : callgate 6 | { 7 | friend class pqxx::pipeline; 8 | 9 | result_pipeline(reference x) : super(x) {} 10 | 11 | std::shared_ptr query_ptr() const 12 | { 13 | return home().query_ptr(); 14 | } 15 | }; 16 | } // namespace pqxx::internal::gate 17 | -------------------------------------------------------------------------------- /ext/libpqxx-7.7.3/install/ubuntu22.04/arm64/include/pqxx/internal/gates/result-sql_cursor.hxx: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | namespace pqxx::internal::gate 4 | { 5 | class PQXX_PRIVATE result_sql_cursor : callgate 6 | { 7 | friend class pqxx::internal::sql_cursor; 8 | 9 | result_sql_cursor(reference x) : super(x) {} 10 | 11 | char const *cmd_status() const noexcept { return home().cmd_status(); } 12 | }; 13 | } // namespace pqxx::internal::gate 14 | -------------------------------------------------------------------------------- /ext/libpqxx-7.7.3/install/ubuntu22.04/arm64/include/pqxx/internal/gates/transaction-sql_cursor.hxx: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | namespace pqxx::internal::gate 4 | { 5 | class PQXX_PRIVATE transaction_sql_cursor : callgate 6 | { 7 | friend class pqxx::internal::sql_cursor; 8 | transaction_sql_cursor(reference x) : super(x) {} 9 | }; 10 | } // namespace pqxx::internal::gate 11 | -------------------------------------------------------------------------------- /ext/libpqxx-7.7.3/install/ubuntu22.04/arm64/include/pqxx/internal/ignore-deprecated-post.hxx: -------------------------------------------------------------------------------- 1 | /// End a code block started by "ignore-deprecated-pre.hxx". 2 | 3 | #if !defined(PQXX_IGNORING_DEPRECATED) 4 | # error "Ended an 'ignore-deprecated' block while none was active." 5 | #endif 6 | 7 | #if defined(__GNUC__) 8 | # pragma GCC diagnostic pop 9 | #endif // __GNUC__ 10 | 11 | #ifdef _MSC_VER 12 | # pragma warning(pop) 13 | #endif 14 | 15 | #undef PQXX_IGNORING_DEPRECATED 16 | -------------------------------------------------------------------------------- /ext/libpqxx-7.7.3/install/ubuntu22.04/arm64/include/pqxx/internal/wait.hxx: -------------------------------------------------------------------------------- 1 | #if !defined(PQXX_WAIT_HXX) 2 | # define PQXX_WAIT_HXX 3 | 4 | namespace pqxx::internal 5 | { 6 | /// Wait. 7 | /** This is normally `std::this_thread::sleep_for()`. But MinGW's `thread` 8 | * header doesn't work, so we must be careful about including it. 9 | */ 10 | void PQXX_LIBEXPORT wait_for(unsigned int microseconds); 11 | 12 | 13 | /// Wait for a socket to be ready for reading/writing, or timeout. 14 | PQXX_LIBEXPORT void wait_fd( 15 | int fd, bool for_read, bool for_write, unsigned seconds = 1, 16 | unsigned microseconds = 0); 17 | } // namespace pqxx::internal 18 | #endif 19 | -------------------------------------------------------------------------------- /ext/libpqxx-7.7.3/install/ubuntu22.04/arm64/include/pqxx/isolation: -------------------------------------------------------------------------------- 1 | /** Transaction isolation levels. 2 | * 3 | * Policies and traits describing SQL transaction isolation levels 4 | */ 5 | // Actual definitions in .hxx file so editors and such recognize file type. 6 | #include "pqxx/internal/header-pre.hxx" 7 | #include "pqxx/isolation.hxx" 8 | #include "pqxx/internal/header-post.hxx" 9 | -------------------------------------------------------------------------------- /ext/libpqxx-7.7.3/install/ubuntu22.04/arm64/include/pqxx/largeobject: -------------------------------------------------------------------------------- 1 | /** Large Objects interface. 2 | * 3 | * Supports direct access to large objects, as well as through I/O streams 4 | */ 5 | // Actual definitions in .hxx file so editors and such recognize file type. 6 | #include "pqxx/internal/header-pre.hxx" 7 | #include "pqxx/largeobject.hxx" 8 | #include "pqxx/internal/header-post.hxx" 9 | -------------------------------------------------------------------------------- /ext/libpqxx-7.7.3/install/ubuntu22.04/arm64/include/pqxx/nontransaction: -------------------------------------------------------------------------------- 1 | /** pqxx::nontransaction class. 2 | * 3 | * pqxx::nontransaction provides nontransactional database access. 4 | */ 5 | // Actual definitions in .hxx file so editors and such recognize file type. 6 | #include "pqxx/internal/header-pre.hxx" 7 | #include "pqxx/nontransaction.hxx" 8 | #include "pqxx/internal/header-post.hxx" 9 | -------------------------------------------------------------------------------- /ext/libpqxx-7.7.3/install/ubuntu22.04/arm64/include/pqxx/notification: -------------------------------------------------------------------------------- 1 | /** pqxx::notification_receiver functor interface. 2 | * 3 | * pqxx::notification_receiver handles incoming notifications. 4 | */ 5 | // Actual definitions in .hxx file so editors and such recognize file type. 6 | #include "pqxx/internal/header-pre.hxx" 7 | #include "pqxx/notification.hxx" 8 | #include "pqxx/internal/header-post.hxx" 9 | -------------------------------------------------------------------------------- /ext/libpqxx-7.7.3/install/ubuntu22.04/arm64/include/pqxx/params: -------------------------------------------------------------------------------- 1 | /** Helper classes for passing statement parameters. 2 | * 3 | * Use these for prepared statements and parameterised statements. 4 | */ 5 | // Actual definitions in .hxx file so editors and such recognize file type. 6 | #include "pqxx/internal/header-pre.hxx" 7 | #include "pqxx/params.hxx" 8 | #include "pqxx/internal/header-post.hxx" 9 | -------------------------------------------------------------------------------- /ext/libpqxx-7.7.3/install/ubuntu22.04/arm64/include/pqxx/pipeline: -------------------------------------------------------------------------------- 1 | /** pqxx::pipeline class. 2 | * 3 | * Throughput-optimized query interface. 4 | */ 5 | // Actual definitions in .hxx file so editors and such recognize file type. 6 | #include "pqxx/internal/header-pre.hxx" 7 | #include "pqxx/pipeline.hxx" 8 | #include "pqxx/internal/header-post.hxx" 9 | -------------------------------------------------------------------------------- /ext/libpqxx-7.7.3/install/ubuntu22.04/arm64/include/pqxx/prepared_statement: -------------------------------------------------------------------------------- 1 | /// @deprecated Include @c instead. 2 | 3 | #include "params.hxx" 4 | -------------------------------------------------------------------------------- /ext/libpqxx-7.7.3/install/ubuntu22.04/arm64/include/pqxx/prepared_statement.hxx: -------------------------------------------------------------------------------- 1 | /// @deprecated Include @c instead. 2 | 3 | #include "params.hxx" 4 | -------------------------------------------------------------------------------- /ext/libpqxx-7.7.3/install/ubuntu22.04/arm64/include/pqxx/range: -------------------------------------------------------------------------------- 1 | /** Client-side support for SQL range types. 2 | */ 3 | // Actual definitions in .hxx file so editors and such recognize file type. 4 | #include "pqxx/internal/header-pre.hxx" 5 | #include "pqxx/range.hxx" 6 | #include "pqxx/internal/header-post.hxx" 7 | -------------------------------------------------------------------------------- /ext/libpqxx-7.7.3/install/ubuntu22.04/arm64/include/pqxx/result: -------------------------------------------------------------------------------- 1 | /** pqxx::result class and support classes. 2 | * 3 | * pqxx::result represents the set of result rows from a database query. 4 | */ 5 | // Actual definitions in .hxx file so editors and such recognize file type. 6 | #include "pqxx/internal/header-pre.hxx" 7 | 8 | #include "pqxx/result.hxx" 9 | 10 | // Now include some types which depend on result, but which the user will 11 | // expect to see defined after including this header. 12 | #include "pqxx/internal/result_iterator.hxx" 13 | #include "pqxx/field.hxx" 14 | #include "pqxx/internal/result_iter.hxx" 15 | 16 | #include "pqxx/internal/header-post.hxx" 17 | -------------------------------------------------------------------------------- /ext/libpqxx-7.7.3/install/ubuntu22.04/arm64/include/pqxx/robusttransaction: -------------------------------------------------------------------------------- 1 | /** pqxx::robusttransaction class. 2 | * 3 | * pqxx::robusttransaction is a slower but safer transaction class. 4 | */ 5 | // Actual definitions in .hxx file so editors and such recognize file type. 6 | #include "pqxx/internal/header-pre.hxx" 7 | #include "pqxx/robusttransaction.hxx" 8 | #include "pqxx/internal/header-post.hxx" 9 | -------------------------------------------------------------------------------- /ext/libpqxx-7.7.3/install/ubuntu22.04/arm64/include/pqxx/row: -------------------------------------------------------------------------------- 1 | /** pqxx::row class. 2 | * 3 | * pqxx::row refers to a row in a result. 4 | */ 5 | // Actual definitions in .hxx file so editors and such recognize file type. 6 | #include "pqxx/internal/header-pre.hxx" 7 | 8 | #include "pqxx/result.hxx" 9 | #include "pqxx/row.hxx" 10 | 11 | #include "pqxx/internal/header-post.hxx" 12 | -------------------------------------------------------------------------------- /ext/libpqxx-7.7.3/install/ubuntu22.04/arm64/include/pqxx/separated_list: -------------------------------------------------------------------------------- 1 | /** Helper similar to Python's @c str.join(). 2 | */ 3 | // Actual definitions in .hxx file so editors and such recognize file type. 4 | #include "pqxx/internal/header-pre.hxx" 5 | #include "pqxx/separated_list.hxx" 6 | #include "pqxx/internal/header-post.hxx" 7 | -------------------------------------------------------------------------------- /ext/libpqxx-7.7.3/install/ubuntu22.04/arm64/include/pqxx/strconv: -------------------------------------------------------------------------------- 1 | /** String conversion definitions. 2 | */ 3 | // Actual definitions in .hxx file so editors and such recognize file type. 4 | #include "pqxx/internal/header-pre.hxx" 5 | #include "pqxx/strconv.hxx" 6 | #include "pqxx/internal/header-post.hxx" 7 | -------------------------------------------------------------------------------- /ext/libpqxx-7.7.3/install/ubuntu22.04/arm64/include/pqxx/stream_from: -------------------------------------------------------------------------------- 1 | /** pqxx::stream_from class. 2 | * 3 | * pqxx::stream_from enables optimized batch reads from a database table. 4 | */ 5 | // Actual definitions in .hxx file so editors and such recognize file type. 6 | #include "pqxx/internal/header-pre.hxx" 7 | #include "pqxx/stream_from.hxx" 8 | #include "pqxx/internal/header-post.hxx" 9 | -------------------------------------------------------------------------------- /ext/libpqxx-7.7.3/install/ubuntu22.04/arm64/include/pqxx/stream_to: -------------------------------------------------------------------------------- 1 | /** pqxx::stream_to class. 2 | * 3 | * pqxx::stream_to enables optimized batch updates to a database table. 4 | */ 5 | // Actual definitions in .hxx file so editors and such recognize file type. 6 | #include "pqxx/internal/header-pre.hxx" 7 | #include "pqxx/stream_to.hxx" 8 | #include "pqxx/internal/header-post.hxx" 9 | -------------------------------------------------------------------------------- /ext/libpqxx-7.7.3/install/ubuntu22.04/arm64/include/pqxx/subtransaction: -------------------------------------------------------------------------------- 1 | /** pqxx::subtransaction class. 2 | * 3 | * pqxx::subtransaction is a nested transaction, i.e. one inside a transaction. 4 | */ 5 | // Actual definitions in .hxx file so editors and such recognize file type. 6 | #include "pqxx/internal/header-pre.hxx" 7 | #include "pqxx/subtransaction.hxx" 8 | #include "pqxx/internal/header-post.hxx" 9 | -------------------------------------------------------------------------------- /ext/libpqxx-7.7.3/install/ubuntu22.04/arm64/include/pqxx/time: -------------------------------------------------------------------------------- 1 | /** Date/time string conversions. 2 | */ 3 | // Actual definitions in .hxx file so editors and such recognize file type. 4 | #include "pqxx/internal/header-pre.hxx" 5 | #include "pqxx/time.hxx" 6 | #include "pqxx/internal/header-post.hxx" 7 | -------------------------------------------------------------------------------- /ext/libpqxx-7.7.3/install/ubuntu22.04/arm64/include/pqxx/transaction: -------------------------------------------------------------------------------- 1 | /** pqxx::transaction class. 2 | * 3 | * pqxx::transaction represents a standard database transaction. 4 | */ 5 | // Actual definitions in .hxx file so editors and such recognize file type. 6 | #include "pqxx/internal/header-pre.hxx" 7 | #include "pqxx/transaction.hxx" 8 | #include "pqxx/internal/header-post.hxx" 9 | -------------------------------------------------------------------------------- /ext/libpqxx-7.7.3/install/ubuntu22.04/arm64/include/pqxx/transaction_base: -------------------------------------------------------------------------------- 1 | /** Base for the transaction classes. 2 | * 3 | * pqxx::transaction_base defines the interface for any abstract class that 4 | * represents a database transaction. 5 | */ 6 | // Actual definitions in .hxx file so editors and such recognize file type. 7 | #include "pqxx/internal/header-pre.hxx" 8 | #include "pqxx/transaction_base.hxx" 9 | #include "pqxx/internal/header-post.hxx" 10 | -------------------------------------------------------------------------------- /ext/libpqxx-7.7.3/install/ubuntu22.04/arm64/include/pqxx/transaction_focus: -------------------------------------------------------------------------------- 1 | /** 2 | * Transaction focus: types which monopolise a transaction's attention. 3 | */ 4 | // Actual definitions in .hxx file so editors and such recognize file type. 5 | #include "pqxx/internal/header-pre.hxx" 6 | #include "pqxx/types.hxx" 7 | #include "pqxx/internal/header-post.hxx" 8 | -------------------------------------------------------------------------------- /ext/libpqxx-7.7.3/install/ubuntu22.04/arm64/include/pqxx/transactor: -------------------------------------------------------------------------------- 1 | /** pqxx::transactor class. 2 | * 3 | * pqxx::transactor is a framework-style wrapper for safe transactions. 4 | */ 5 | // Actual definitions in .hxx file so editors and such recognize file type. 6 | #include "pqxx/internal/header-pre.hxx" 7 | #include "pqxx/transactor.hxx" 8 | #include "pqxx/internal/header-post.hxx" 9 | -------------------------------------------------------------------------------- /ext/libpqxx-7.7.3/install/ubuntu22.04/arm64/include/pqxx/types: -------------------------------------------------------------------------------- 1 | /** 2 | * Basic typedefs and forward declarations. 3 | */ 4 | // Actual definitions in .hxx file so editors and such recognize file type. 5 | #include "pqxx/internal/header-pre.hxx" 6 | #include "pqxx/types.hxx" 7 | #include "pqxx/internal/header-post.hxx" 8 | -------------------------------------------------------------------------------- /ext/libpqxx-7.7.3/install/ubuntu22.04/arm64/include/pqxx/util: -------------------------------------------------------------------------------- 1 | /** Various utility definitions for libpqxx. 2 | */ 3 | // Actual definitions in .hxx file so editors and such recognize file type 4 | #include "pqxx/internal/header-pre.hxx" 5 | #include "pqxx/util.hxx" 6 | #include "pqxx/internal/header-post.hxx" 7 | -------------------------------------------------------------------------------- /ext/libpqxx-7.7.3/install/ubuntu22.04/arm64/include/pqxx/version: -------------------------------------------------------------------------------- 1 | /** libpqxx version info. 2 | */ 3 | // Actual definitions in .hxx file so editors and such recognize file type. 4 | #include "pqxx/internal/header-pre.hxx" 5 | #include "pqxx/version.hxx" 6 | #include "pqxx/internal/header-post.hxx" 7 | 8 | -------------------------------------------------------------------------------- /ext/libpqxx-7.7.3/install/ubuntu22.04/arm64/include/pqxx/zview: -------------------------------------------------------------------------------- 1 | /** Zero-terminated string view class. 2 | */ 3 | // Actual definitions in .hxx file so editors and such recognize file type. 4 | #include "pqxx/internal/header-pre.hxx" 5 | #include "pqxx/zview.hxx" 6 | #include "pqxx/internal/header-post.hxx" 7 | -------------------------------------------------------------------------------- /ext/libpqxx-7.7.3/install/ubuntu22.04/arm64/lib/cmake/libpqxx/libpqxx-config.cmake: -------------------------------------------------------------------------------- 1 | include(CMakeFindDependencyMacro) 2 | find_dependency(PostgreSQL) 3 | 4 | include("${CMAKE_CURRENT_LIST_DIR}/libpqxx-targets.cmake") 5 | -------------------------------------------------------------------------------- /ext/libpqxx-7.7.3/install/ubuntu22.04/arm64/lib/libpqxx-7.7.a: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zerotier/ZeroTierOne/5232af0a61f7f6625ec6852d330c6c3520ae91de/ext/libpqxx-7.7.3/install/ubuntu22.04/arm64/lib/libpqxx-7.7.a -------------------------------------------------------------------------------- /ext/libpqxx-7.7.3/install/ubuntu22.04/arm64/lib/libpqxx.a: -------------------------------------------------------------------------------- 1 | libpqxx-7.7.a -------------------------------------------------------------------------------- /ext/libpqxx-7.7.3/libpqxx.pc.in: -------------------------------------------------------------------------------- 1 | prefix=@prefix@ 2 | exec_prefix=@exec_prefix@ 3 | libdir=@libdir@ 4 | includedir=@includedir@ 5 | 6 | Name: libpqxx 7 | Description: C++ client API for the PostgreSQL database management system. 8 | Version: @VERSION@ 9 | Libs: -L${libdir} -lpqxx 10 | Cflags: -I${includedir} 11 | -------------------------------------------------------------------------------- /ext/libpqxx-7.7.3/requirements.json: -------------------------------------------------------------------------------- 1 | { 2 | "description": "Minimum versions needed of various things.", 3 | "c++": "17", 4 | "libpq": "9.6", 5 | "postgresql": "9.6", 6 | "gcc": "8", 7 | "clang": "11", 8 | "msvc": "2019" 9 | } 10 | -------------------------------------------------------------------------------- /ext/libpqxx-7.7.3/test/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | enable_testing() 2 | 3 | if(NOT PostgreSQL_FOUND) 4 | find_package(PostgreSQL REQUIRED) 5 | endif() 6 | 7 | file(GLOB TEST_SOURCES test*.cxx unit/test_*.cxx runner.cxx) 8 | 9 | add_executable(runner ${TEST_SOURCES}) 10 | target_link_libraries(runner PUBLIC pqxx) 11 | target_include_directories(runner PRIVATE ${PostgreSQL_INCLUDE_DIRS}) 12 | add_test( 13 | NAME runner 14 | WORKING_DIRECTORY ${CMAKE_RUNTIME_OUTPUT_DIRECTORY} 15 | COMMAND runner 16 | ) 17 | 18 | if(INSTALL_TEST) 19 | install( 20 | PROGRAMS runner 21 | TYPE BIN 22 | RENAME libpqxx-test-runner 23 | ) 24 | endif() 25 | -------------------------------------------------------------------------------- /ext/libpqxx-7.7.3/test/test17.cxx: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | #include 4 | #include 5 | #include 6 | 7 | #include "test_helpers.hxx" 8 | 9 | using namespace pqxx; 10 | 11 | 12 | // Simple test program for libpqxx. Open connection to database, start 13 | // a dummy transaction to gain nontransactional access, and perform a query. 14 | namespace 15 | { 16 | void test_017() 17 | { 18 | connection conn; 19 | perform([&conn] { 20 | nontransaction tx{conn}; 21 | auto const r{tx.exec("SELECT * FROM generate_series(1, 4)")}; 22 | PQXX_CHECK_EQUAL(std::size(r), 4, "Weird query result."); 23 | tx.commit(); 24 | }); 25 | } 26 | 27 | 28 | PQXX_REGISTER_TEST(test_017); 29 | } // namespace 30 | -------------------------------------------------------------------------------- /ext/libpqxx-7.7.3/test/test56.cxx: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | #include "test_helpers.hxx" 4 | 5 | using namespace pqxx; 6 | 7 | 8 | // Simple test program for libpqxx. Issue invalid query and handle error. 9 | namespace 10 | { 11 | void test_056() 12 | { 13 | connection conn; 14 | work tx{conn}; 15 | quiet_errorhandler d(conn); 16 | 17 | PQXX_CHECK_THROWS( 18 | tx.exec("DELIBERATELY INVALID TEST QUERY..."), sql_error, 19 | "SQL syntax error did not raise expected exception."); 20 | } 21 | 22 | 23 | PQXX_REGISTER_TEST(test_056); 24 | } // namespace 25 | -------------------------------------------------------------------------------- /ext/libpqxx-7.7.3/test/test77.cxx: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | #include "test_helpers.hxx" 4 | 5 | 6 | // Test program for libpqxx. Test result::swap() 7 | namespace 8 | { 9 | void test_077() 10 | { 11 | pqxx::connection conn; 12 | pqxx::nontransaction tx{conn}; 13 | 14 | auto RFalse{tx.exec("SELECT 1=0")}, RTrue{tx.exec("SELECT 1=1")}; 15 | auto f{pqxx::from_string(RFalse[0][0])}; 16 | auto t{pqxx::from_string(RTrue[0][0])}; 17 | PQXX_CHECK( 18 | not f and t, "Booleans converted incorrectly; can't trust this test."); 19 | 20 | RFalse.swap(RTrue); 21 | f = pqxx::from_string(RFalse[0][0]); 22 | t = pqxx::from_string(RTrue[0][0]); 23 | PQXX_CHECK(f and not t, "result::swap() is broken."); 24 | } 25 | } // namespace 26 | 27 | 28 | PQXX_REGISTER_TEST(test_077); 29 | -------------------------------------------------------------------------------- /ext/libpqxx-7.7.3/test/test90.cxx: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | #include "test_helpers.hxx" 4 | 5 | // Test program for libpqxx. Test adorn_name. 6 | 7 | namespace 8 | { 9 | void test_090() 10 | { 11 | pqxx::connection conn; 12 | 13 | // Test connection's adorn_name() function for uniqueness 14 | std::string const nametest{"basename"}; 15 | 16 | PQXX_CHECK_NOT_EQUAL( 17 | conn.adorn_name(nametest), conn.adorn_name(nametest), 18 | "\"Unique\" names are not unique."); 19 | } 20 | } // namespace 21 | 22 | 23 | PQXX_REGISTER_TEST(test_090); 24 | -------------------------------------------------------------------------------- /ext/libpqxx-7.7.3/test/unit/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | if(NOT PostgreSQL_FOUND) 2 | if(POLICY CMP0074) 3 | cmake_policy(PUSH) 4 | # CMP0074 is `OLD` by `cmake_minimum_required(VERSION 3.7)`, sets `NEW` 5 | # to enable support CMake variable `PostgreSQL_ROOT`. 6 | cmake_policy(SET CMP0074 NEW) 7 | endif() 8 | 9 | find_package(PostgreSQL REQUIRED) 10 | 11 | if(POLICY CMP0074) 12 | cmake_policy(POP) 13 | endif() 14 | endif() 15 | 16 | file(GLOB UNIT_TEST_SOURCES *.cxx) 17 | 18 | add_executable(unit_runner ${UNIT_TEST_SOURCES}) 19 | target_link_libraries(unit_runner PUBLIC pqxx) 20 | target_include_directories(unit_runner PRIVATE ${PostgreSQL_INCLUDE_DIRS}) 21 | add_test( 22 | NAME unit_runner 23 | WORKING_DIRECTORY ${CMAKE_RUNTIME_OUTPUT_DIRECTORY} 24 | COMMAND unit_runner 25 | ) 26 | -------------------------------------------------------------------------------- /ext/libpqxx-7.7.3/test/unit/test_cancel_query.cxx: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | 4 | #include "../test_helpers.hxx" 5 | 6 | namespace 7 | { 8 | void test_cancel_query() 9 | { 10 | pqxx::connection conn; 11 | pqxx::work tx{conn}; 12 | // Calling cancel_query() while none is in progress has no effect. 13 | conn.cancel_query(); 14 | 15 | // Nothing much is guaranteed about cancel_query, except that it doesn't make 16 | // the process die in flames. 17 | pqxx::pipeline p{tx, "test_cancel_query"}; 18 | p.retain(0); 19 | p.insert("SELECT pg_sleep(1)"); 20 | conn.cancel_query(); 21 | } 22 | 23 | 24 | PQXX_REGISTER_TEST(test_cancel_query); 25 | } // namespace 26 | -------------------------------------------------------------------------------- /ext/libpqxx-7.7.3/test/unit/test_nonblocking_connect.cxx: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | #include 4 | 5 | #include "../test_helpers.hxx" 6 | 7 | 8 | namespace 9 | { 10 | void test_nonblocking_connect() 11 | { 12 | pqxx::connecting nbc; 13 | while (not nbc.done()) 14 | { 15 | pqxx::internal::wait_fd( 16 | nbc.sock(), nbc.wait_to_read(), nbc.wait_to_write()); 17 | nbc.process(); 18 | } 19 | 20 | pqxx::connection conn{std::move(nbc).produce()}; 21 | pqxx::work tx{conn}; 22 | PQXX_CHECK_EQUAL(tx.query_value("SELECT 10"), 10, "Bad value!?"); 23 | } 24 | 25 | 26 | PQXX_REGISTER_TEST(test_nonblocking_connect); 27 | } // namespace 28 | -------------------------------------------------------------------------------- /ext/libpqxx-7.7.3/test/unit/test_read_transaction.cxx: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | #include "../test_helpers.hxx" 4 | 5 | namespace 6 | { 7 | void test_read_transaction() 8 | { 9 | pqxx::connection conn; 10 | pqxx::read_transaction tx{conn}; 11 | PQXX_CHECK_EQUAL( 12 | tx.exec("SELECT 1")[0][0].as(), 1, 13 | "Bad result from read transaction."); 14 | 15 | PQXX_CHECK_THROWS( 16 | tx.exec("CREATE TABLE should_not_exist(x integer)"), pqxx::sql_error, 17 | "Read-only transaction allows database to be modified."); 18 | } 19 | 20 | 21 | PQXX_REGISTER_TEST(test_read_transaction); 22 | } // namespace 23 | -------------------------------------------------------------------------------- /ext/libpqxx-7.7.3/test/unit/test_simultaneous_transactions.cxx: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | 4 | #include "../test_helpers.hxx" 5 | 6 | namespace 7 | { 8 | void test_simultaneous_transactions() 9 | { 10 | pqxx::connection conn; 11 | 12 | pqxx::nontransaction n1{conn}; 13 | PQXX_CHECK_THROWS( 14 | pqxx::nontransaction n2{conn}, std::logic_error, 15 | "Allowed to open simultaneous nontransactions."); 16 | } 17 | 18 | 19 | PQXX_REGISTER_TEST(test_simultaneous_transactions); 20 | } // namespace 21 | -------------------------------------------------------------------------------- /ext/libpqxx-7.7.3/test/unit/test_thread_safety_model.cxx: -------------------------------------------------------------------------------- 1 | #include "../test_helpers.hxx" 2 | 3 | #include 4 | 5 | namespace 6 | { 7 | void test_thread_safety_model() 8 | { 9 | auto const model{pqxx::describe_thread_safety()}; 10 | 11 | if (model.safe_libpq and model.safe_kerberos) 12 | PQXX_CHECK_EQUAL( 13 | model.description, "", 14 | "Thread-safety looks okay but model description is nonempty."); 15 | else 16 | PQXX_CHECK_NOT_EQUAL( 17 | model.description, "", 18 | "Thread-safety model is imperfect but lacks description."); 19 | } 20 | 21 | 22 | PQXX_REGISTER_TEST(test_thread_safety_model); 23 | } // namespace 24 | -------------------------------------------------------------------------------- /ext/libpqxx-7.7.3/test/unit/test_type_name.cxx: -------------------------------------------------------------------------------- 1 | #include "../test_helpers.hxx" 2 | 3 | namespace 4 | { 5 | void test_type_name() 6 | { 7 | // It's hard to test in more detail, because spellings may differ. 8 | // For instance, one compiler might call "const unsigned int*" what another 9 | // might call "unsigned const *". And Visual Studio prefixes "class" to 10 | // class types. 11 | std::string const i{pqxx::type_name}; 12 | PQXX_CHECK_LESS(std::size(i), 5u, "type_name is suspiciously long."); 13 | PQXX_CHECK_EQUAL( 14 | i.substr(0, 1), "i", "type_name does not start with 'i'."); 15 | } 16 | 17 | 18 | PQXX_REGISTER_TEST(test_type_name); 19 | } // namespace 20 | -------------------------------------------------------------------------------- /ext/libpqxx-7.7.3/test/unit/test_zview.cxx: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | #include "../test_helpers.hxx" 4 | 5 | 6 | namespace 7 | { 8 | void test_zview_literal() 9 | { 10 | using pqxx::operator"" _zv; 11 | 12 | PQXX_CHECK_EQUAL(("foo"_zv), pqxx::zview{"foo"}, "zview literal is broken."); 13 | } 14 | 15 | PQXX_REGISTER_TEST(test_zview_literal); 16 | } // namespace 17 | -------------------------------------------------------------------------------- /ext/libpqxx-7.7.3/tools/Makefile.am: -------------------------------------------------------------------------------- 1 | EXTRA_DIST = \ 2 | extract_version \ 3 | lint \ 4 | rmlo.cxx \ 5 | splitconfig \ 6 | template2mak.py \ 7 | pqxxthreadsafety.cxx 8 | 9 | AM_CPPFLAGS=-I$(top_builddir)/include -I$(top_srcdir)/include ${POSTGRES_INCLUDE} 10 | # Override automatically generated list of default includes. It contains only 11 | # unnecessary entries, and incorrectly mentions include/pqxx directly. 12 | DEFAULT_INCLUDES= 13 | 14 | noinst_PROGRAMS = rmlo pqxxthreadsafety 15 | 16 | rmlo_SOURCES = rmlo.cxx 17 | rmlo_LDADD = $(top_builddir)/src/libpqxx.la ${POSTGRES_LIB} 18 | 19 | pqxxthreadsafety_SOURCES = pqxxthreadsafety.cxx 20 | pqxxthreadsafety_LDADD = $(top_builddir)/src/libpqxx.la ${POSTGRES_LIB} 21 | -------------------------------------------------------------------------------- /ext/libpqxx-7.7.3/tools/deprecations: -------------------------------------------------------------------------------- 1 | #! /bin/sh 2 | set -eu 3 | 4 | MARKER='include.*ignore-deprecated-pre' 5 | FILES="src include tools/*.cxx test config-tests" 6 | grep -Ircl $MARKER $FILES | sort 7 | -------------------------------------------------------------------------------- /ext/libpqxx-7.7.3/tools/format: -------------------------------------------------------------------------------- 1 | #! /bin/bash 2 | # 3 | # Reformat source code using clang-format. 4 | # 5 | # This script is not portable: as of Ubuntu 21.04, virtualenv's "activate" 6 | # seems to rely on a non-POSIX variable, $OSTYPE. 7 | 8 | set -C -u -e 9 | 10 | # Reformat C++ files. 11 | find -name \*.cxx -o -name \*.hxx | xargs clang-format -i 12 | 13 | 14 | # Reformat CMake files. 15 | WORKDIR=$(mktemp -d) 16 | virtualenv -q --python=$(which python3) "$WORKDIR/venv" 17 | . "$WORKDIR/venv/bin/activate" 18 | pip install -q six pyaml cmake-format 19 | (find -name CMakeLists.txt | xargs cmake-format -i) || /bin/true 20 | rm -rf "$WORKDIR" 21 | -------------------------------------------------------------------------------- /ext/libpqxx-7.7.3/tools/pqxxthreadsafety.cxx: -------------------------------------------------------------------------------- 1 | // Print thread-safety information for present libpqxx build. 2 | #include 3 | 4 | #include "pqxx/util" 5 | 6 | 7 | int main() 8 | { 9 | std::cout << pqxx::describe_thread_safety().description << std::endl; 10 | } 11 | -------------------------------------------------------------------------------- /ext/libpqxx-7.7.3/tools/todo: -------------------------------------------------------------------------------- 1 | #! /bin/bash 2 | # 3 | # List "TODO" and "XXX" items in the given files, or throughout the source 4 | # code. 5 | 6 | set -e -u -o pipefail 7 | 8 | # TODO: Make location-independent? 9 | find_source() { 10 | echo configure.ac 11 | find . -name \*.cxx -o -name \*.hxx | sed -e 's|^\./||' | sort 12 | for f in $(ls tools) 13 | do 14 | echo tools/$f 15 | done 16 | } 17 | 18 | 19 | FILES=${*:-$(find_source)} 20 | 21 | 22 | # Search for "$1:" in files $2. 23 | # (This function adds the colon. That way, the search statement itself won't 24 | # show up in the search.) 25 | search_for() { 26 | grep $1: $2 27 | } 28 | 29 | 30 | search_for XXX "$FILES" || true 31 | search_for TODO "$FILES" || true 32 | -------------------------------------------------------------------------------- /ext/miniupnpc/VERSION: -------------------------------------------------------------------------------- 1 | 2.0 2 | -------------------------------------------------------------------------------- /ext/miniupnpc/connecthostport.h: -------------------------------------------------------------------------------- 1 | /* $Id: connecthostport.h,v 1.3 2012/09/27 15:42:10 nanard Exp $ */ 2 | /* Project: miniupnp 3 | * http://miniupnp.free.fr/ 4 | * Author: Thomas Bernard 5 | * Copyright (c) 2010-2012 Thomas Bernard 6 | * This software is subjects to the conditions detailed 7 | * in the LICENCE file provided within this distribution */ 8 | #ifndef CONNECTHOSTPORT_H_INCLUDED 9 | #define CONNECTHOSTPORT_H_INCLUDED 10 | 11 | /* connecthostport() 12 | * return a socket connected (TCP) to the host and port 13 | * or -1 in case of error */ 14 | int connecthostport(const char * host, unsigned short port, 15 | unsigned int scope_id); 16 | 17 | #endif 18 | 19 | -------------------------------------------------------------------------------- /ext/miniupnpc/minisoap.h: -------------------------------------------------------------------------------- 1 | /* $Id: minisoap.h,v 1.5 2012/09/27 15:42:10 nanard Exp $ */ 2 | /* Project : miniupnp 3 | * Author : Thomas Bernard 4 | * Copyright (c) 2005 Thomas Bernard 5 | * This software is subject to the conditions detailed in the 6 | * LICENCE file provided in this distribution. */ 7 | #ifndef MINISOAP_H_INCLUDED 8 | #define MINISOAP_H_INCLUDED 9 | 10 | /*int httpWrite(int, const char *, int, const char *);*/ 11 | int soapPostSubmit(int, const char *, const char *, unsigned short, 12 | const char *, const char *, const char *); 13 | 14 | #endif 15 | 16 | -------------------------------------------------------------------------------- /ext/miniupnpc/miniupnpc_declspec.h: -------------------------------------------------------------------------------- 1 | #ifndef MINIUPNPC_DECLSPEC_H_INCLUDED 2 | #define MINIUPNPC_DECLSPEC_H_INCLUDED 3 | 4 | #if defined(_WIN32) && !defined(MINIUPNP_STATICLIB) 5 | /* for windows dll */ 6 | #ifdef MINIUPNP_EXPORTS 7 | #define MINIUPNP_LIBSPEC __declspec(dllexport) 8 | #else 9 | #define MINIUPNP_LIBSPEC __declspec(dllimport) 10 | #endif 11 | #else 12 | #if defined(__GNUC__) && __GNUC__ >= 4 13 | /* fix dynlib for OS X 10.9.2 and Apple LLVM version 5.0 */ 14 | #define MINIUPNP_LIBSPEC __attribute__ ((visibility ("default"))) 15 | #else 16 | #define MINIUPNP_LIBSPEC 17 | #endif 18 | #endif 19 | 20 | #endif /* MINIUPNPC_DECLSPEC_H_INCLUDED */ 21 | 22 | -------------------------------------------------------------------------------- /ext/miniupnpc/miniupnpcstrings.h.in: -------------------------------------------------------------------------------- 1 | /* $Id: miniupnpcstrings.h.in,v 1.6 2014/11/04 22:31:55 nanard Exp $ */ 2 | /* Project: miniupnp 3 | * http://miniupnp.free.fr/ or http://miniupnp.tuxfamily.org/ 4 | * Author: Thomas Bernard 5 | * Copyright (c) 2005-2014 Thomas Bernard 6 | * This software is subjects to the conditions detailed 7 | * in the LICENCE file provided within this distribution */ 8 | #ifndef MINIUPNPCSTRINGS_H_INCLUDED 9 | #define MINIUPNPCSTRINGS_H_INCLUDED 10 | 11 | #define OS_STRING "OS/version" 12 | #define MINIUPNPC_VERSION_STRING "version" 13 | 14 | #if 0 15 | /* according to "UPnP Device Architecture 1.0" */ 16 | #define UPNP_VERSION_STRING "UPnP/1.0" 17 | #else 18 | /* according to "UPnP Device Architecture 1.1" */ 19 | #define UPNP_VERSION_STRING "UPnP/1.1" 20 | #endif 21 | 22 | #endif 23 | 24 | -------------------------------------------------------------------------------- /ext/miniupnpc/miniupnpctypes.h: -------------------------------------------------------------------------------- 1 | /* $Id: miniupnpctypes.h,v 1.2 2012/09/27 15:42:10 nanard Exp $ */ 2 | /* Miniupnp project : http://miniupnp.free.fr/ or http://miniupnp.tuxfamily.org 3 | * Author : Thomas Bernard 4 | * Copyright (c) 2011 Thomas Bernard 5 | * This software is subject to the conditions detailed in the 6 | * LICENCE file provided within this distribution */ 7 | #ifndef MINIUPNPCTYPES_H_INCLUDED 8 | #define MINIUPNPCTYPES_H_INCLUDED 9 | 10 | #if (defined __STDC_VERSION__ && __STDC_VERSION__ >= 199901L) 11 | #define UNSIGNED_INTEGER unsigned long long 12 | #define STRTOUI strtoull 13 | #else 14 | #define UNSIGNED_INTEGER unsigned int 15 | #define STRTOUI strtoul 16 | #endif 17 | 18 | #endif 19 | 20 | -------------------------------------------------------------------------------- /ext/miniupnpc/receivedata.h: -------------------------------------------------------------------------------- 1 | /* $Id: receivedata.h,v 1.4 2012/09/27 15:42:10 nanard Exp $ */ 2 | /* Project: miniupnp 3 | * http://miniupnp.free.fr/ or http://miniupnp.tuxfamily.org/ 4 | * Author: Thomas Bernard 5 | * Copyright (c) 2011-2012 Thomas Bernard 6 | * This software is subjects to the conditions detailed 7 | * in the LICENCE file provided within this distribution */ 8 | #ifndef RECEIVEDATA_H_INCLUDED 9 | #define RECEIVEDATA_H_INCLUDED 10 | 11 | /* Reads data from the specified socket. 12 | * Returns the number of bytes read if successful, zero if no bytes were 13 | * read or if we timed out. Returns negative if there was an error. */ 14 | int receivedata(int socket, 15 | char * data, int length, 16 | int timeout, unsigned int * scope_id); 17 | 18 | #endif 19 | 20 | -------------------------------------------------------------------------------- /ext/miniupnpc/upnpdev.c: -------------------------------------------------------------------------------- 1 | /* $Id: upnpdev.c,v 1.1 2015/08/28 12:14:19 nanard Exp $ */ 2 | /* Project : miniupnp 3 | * Web : http://miniupnp.free.fr/ 4 | * Author : Thomas BERNARD 5 | * copyright (c) 2005-2015 Thomas Bernard 6 | * This software is subjet to the conditions detailed in the 7 | * provided LICENSE file. */ 8 | #include 9 | #include "upnpdev.h" 10 | 11 | /* freeUPNPDevlist() should be used to 12 | * free the chained list returned by upnpDiscover() */ 13 | void freeUPNPDevlist(struct UPNPDev * devlist) 14 | { 15 | struct UPNPDev * next; 16 | while(devlist) 17 | { 18 | next = devlist->pNext; 19 | free(devlist); 20 | devlist = next; 21 | } 22 | } 23 | 24 | -------------------------------------------------------------------------------- /ext/miniupnpc/upnperrors.h: -------------------------------------------------------------------------------- 1 | /* $Id: upnperrors.h,v 1.6 2015/07/21 13:16:55 nanard Exp $ */ 2 | /* (c) 2007-2015 Thomas Bernard 3 | * All rights reserved. 4 | * MiniUPnP Project. 5 | * http://miniupnp.free.fr/ or http://miniupnp.tuxfamily.org/ 6 | * This software is subjet to the conditions detailed in the 7 | * provided LICENCE file. */ 8 | #ifndef UPNPERRORS_H_INCLUDED 9 | #define UPNPERRORS_H_INCLUDED 10 | 11 | #include "miniupnpc_declspec.h" 12 | 13 | #ifdef __cplusplus 14 | extern "C" { 15 | #endif 16 | 17 | /* strupnperror() 18 | * Return a string description of the UPnP error code 19 | * or NULL for undefinded errors */ 20 | MINIUPNP_LIBSPEC const char * strupnperror(int err); 21 | 22 | #ifdef __cplusplus 23 | } 24 | #endif 25 | 26 | #endif 27 | -------------------------------------------------------------------------------- /ext/misc/linux-old-glibc-compat.c: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | #include 4 | 5 | __asm__(".symver memcpy,memcpy@GLIBC_2.2.5"); 6 | 7 | #ifdef __cplusplus 8 | extern "C" { 9 | #endif 10 | 11 | extern void *__wrap_memcpy(void *dest,const void *src,size_t n) 12 | { 13 | return memcpy(dest,src,n); 14 | } 15 | 16 | #ifdef __cplusplus 17 | } 18 | #endif 19 | -------------------------------------------------------------------------------- /ext/prometheus-cpp-lite-1.0/.gitignore: -------------------------------------------------------------------------------- 1 | .vs 2 | bin/ 3 | out/ -------------------------------------------------------------------------------- /ext/prometheus-cpp-lite-1.0/3rdparty/http-client-lite/examples/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | cmake_minimum_required(VERSION 3.3 FATAL_ERROR) 2 | project(http-client-lite-examples) 3 | 4 | add_executable(${PROJECT_NAME}_simple_request simple_request.cpp) 5 | target_link_libraries(${PROJECT_NAME}_simple_request PRIVATE http_client_lite) 6 | -------------------------------------------------------------------------------- /ext/prometheus-cpp-lite-1.0/core/include/prometheus/client_metric.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zerotier/ZeroTierOne/5232af0a61f7f6625ec6852d330c6c3520ae91de/ext/prometheus-cpp-lite-1.0/core/include/prometheus/client_metric.h -------------------------------------------------------------------------------- /ext/prometheus-cpp-lite-1.0/core/include/prometheus/collectable.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | 5 | #include "prometheus/metric_family.h" 6 | 7 | namespace prometheus { 8 | 9 | /// @brief Interface implemented by anything that can be used by Prometheus to 10 | /// collect metrics. 11 | /// 12 | /// A Collectable has to be registered for collection. See Registry. 13 | class Collectable { 14 | 15 | public: 16 | 17 | //Collectable() = default; 18 | 19 | virtual ~Collectable() = default; 20 | 21 | using MetricFamilies = std::vector; 22 | 23 | /// \brief Returns a list of metrics and their samples. 24 | virtual MetricFamilies Collect() const = 0; 25 | }; 26 | 27 | } // namespace prometheus 28 | -------------------------------------------------------------------------------- /ext/prometheus-cpp-lite-1.0/core/include/prometheus/metric.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | 5 | #include "client_metric.h" 6 | 7 | namespace prometheus { 8 | 9 | class Metric { 10 | 11 | public: 12 | enum class Type { 13 | Counter, 14 | Gauge, 15 | Summary, 16 | Histogram, 17 | Untyped, 18 | }; 19 | 20 | Type type; 21 | 22 | Metric (Type type_) : type(type_) {} 23 | virtual ~Metric() = default; 24 | 25 | virtual ClientMetric Collect() const = 0; 26 | 27 | }; 28 | 29 | } // namespace prometheus 30 | -------------------------------------------------------------------------------- /ext/prometheus-cpp-lite-1.0/core/include/prometheus/metric_family.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | #include 5 | 6 | #include "metric.h" 7 | #include "prometheus/client_metric.h" 8 | 9 | namespace prometheus { 10 | 11 | struct MetricFamily { 12 | Metric::Type type; 13 | std::string name; 14 | std::string help; 15 | std::vector metric; 16 | }; 17 | 18 | } // namespace prometheus 19 | -------------------------------------------------------------------------------- /ext/prometheus-cpp-lite-1.0/simpleapi/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | project(prometheus-cpp-simpleapi) 2 | cmake_minimum_required(VERSION 3.2) 3 | 4 | add_library (${PROJECT_NAME} STATIC "./src/simpleapi.cpp" ) 5 | target_sources (${PROJECT_NAME} PUBLIC "${CMAKE_CURRENT_SOURCE_DIR}/include/prometheus/simpleapi.h") 6 | target_include_directories(${PROJECT_NAME} PUBLIC "${CMAKE_CURRENT_SOURCE_DIR}/include") 7 | target_link_libraries (${PROJECT_NAME} PUBLIC prometheus-cpp-lite-core) 8 | -------------------------------------------------------------------------------- /ext/prometheus-cpp-lite-1.0/simpleapi/src/simpleapi.cpp: -------------------------------------------------------------------------------- 1 | #include "prometheus/simpleapi.h" 2 | 3 | #include 4 | 5 | namespace prometheus { 6 | namespace simpleapi { 7 | 8 | std::shared_ptr registry_ptr = std::make_shared(); 9 | Registry& registry = *registry_ptr; 10 | SaveToFile saver(registry_ptr, std::chrono::seconds(5), std::string("./metrics.prom")); 11 | 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /ext/redis-plus-plus-1.1.1/.gitignore: -------------------------------------------------------------------------------- 1 | # Prerequisites 2 | *.d 3 | 4 | # Compiled Object files 5 | *.slo 6 | *.lo 7 | *.o 8 | *.obj 9 | 10 | # Precompiled Headers 11 | *.gch 12 | *.pch 13 | 14 | # Compiled Dynamic libraries 15 | *.so 16 | *.dylib 17 | *.dll 18 | 19 | # Fortran module files 20 | *.mod 21 | *.smod 22 | 23 | # Compiled Static libraries 24 | *.lai 25 | *.la 26 | *.a 27 | *.lib 28 | 29 | # Executables 30 | *.exe 31 | *.out 32 | *.app 33 | -------------------------------------------------------------------------------- /ext/redis-plus-plus-1.1.1/install/centos8/lib/libredis++.a: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zerotier/ZeroTierOne/5232af0a61f7f6625ec6852d330c6c3520ae91de/ext/redis-plus-plus-1.1.1/install/centos8/lib/libredis++.a -------------------------------------------------------------------------------- /ext/redis-plus-plus-1.1.1/install/macos/lib/libredis++.a: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zerotier/ZeroTierOne/5232af0a61f7f6625ec6852d330c6c3520ae91de/ext/redis-plus-plus-1.1.1/install/macos/lib/libredis++.a -------------------------------------------------------------------------------- /ext/redis-plus-plus-1.3.3/.github/ISSUE_TEMPLATE/bug_report.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: Bug report 3 | about: Create a report to help us improve 4 | title: "[BUG]" 5 | labels: '' 6 | assignees: '' 7 | 8 | --- 9 | 10 | **Describe the bug** 11 | A clear and concise description of what the bug is. 12 | 13 | **To Reproduce** 14 | Minimal code to reproduce the bug. 15 | 16 | **Expected behavior** 17 | A clear and concise description of what you expected to happen. 18 | 19 | **Environment:** 20 | - OS: [e.g. ubuntu] 21 | - Compiler: [e.g. gcc 7.3.1, clang 3.9.1] 22 | - hiredis version: [e.g. v1.0.0, master] 23 | - redis-plus-plus version: [e.g. 1.3.2, master, commit b0a42e] 24 | 25 | **Additional context** 26 | Add any other context about the problem here. 27 | -------------------------------------------------------------------------------- /ext/redis-plus-plus-1.3.3/.github/ISSUE_TEMPLATE/feature_request.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: Feature request 3 | about: Suggest an idea for this project 4 | title: "[FEATURE]" 5 | labels: '' 6 | assignees: '' 7 | 8 | --- 9 | 10 | **Is your feature request related to a problem? Please describe.** 11 | A clear and concise description of what the problem is. Ex. I'm always frustrated when [...] 12 | 13 | **Describe the solution you'd like** 14 | A clear and concise description of what you want to happen. 15 | 16 | **Describe alternatives you've considered** 17 | A clear and concise description of any alternative solutions or features you've considered. 18 | 19 | **Additional context** 20 | Add any other context or screenshots about the feature request here. 21 | -------------------------------------------------------------------------------- /ext/redis-plus-plus-1.3.3/.gitignore: -------------------------------------------------------------------------------- 1 | # Prerequisites 2 | *.d 3 | 4 | # Compiled Object files 5 | *.slo 6 | *.lo 7 | *.o 8 | *.obj 9 | 10 | # Precompiled Headers 11 | *.gch 12 | *.pch 13 | 14 | # Compiled Dynamic libraries 15 | *.so 16 | *.dylib 17 | *.dll 18 | 19 | # Fortran module files 20 | *.mod 21 | *.smod 22 | 23 | # Compiled Static libraries 24 | *.lai 25 | *.la 26 | *.a 27 | *.lib 28 | 29 | # Executables 30 | *.exe 31 | *.out 32 | *.app 33 | -------------------------------------------------------------------------------- /ext/redis-plus-plus-1.3.3/cmake/redis++-config.cmake.in: -------------------------------------------------------------------------------- 1 | @PACKAGE_INIT@ 2 | 3 | include(CMakeFindDependencyMacro) 4 | 5 | string(REPLACE "," ";" REDIS_PLUS_PLUS_DEPENDS_LIST @REDIS_PLUS_PLUS_DEPENDS@) 6 | foreach(REDIS_PLUS_PLUS_DEP ${REDIS_PLUS_PLUS_DEPENDS_LIST}) 7 | find_dependency(${REDIS_PLUS_PLUS_DEP} REQUIRED) 8 | endforeach() 9 | 10 | include("${CMAKE_CURRENT_LIST_DIR}/redis++-targets.cmake") 11 | 12 | check_required_components(redis++) 13 | -------------------------------------------------------------------------------- /ext/redis-plus-plus-1.3.3/cmake/redis++.pc.in: -------------------------------------------------------------------------------- 1 | prefix=@CMAKE_INSTALL_PREFIX@ 2 | exec_prefix=${prefix} 3 | libdir=${exec_prefix}/lib 4 | includedir=${prefix}/include 5 | 6 | Name: redis++ 7 | Description: This is a Redis client, based on hiredis and written in C++11. It supports scritpting, pub/sub, pipeline, transaction, Redis Cluster, Redis Sentinel, connection pool, ACL, SSL and thread safety. 8 | Version: @PROJECT_VERSION@ 9 | URL: https://github.com/sewenew/redis-plus-plus 10 | Requires: @REDIS_PLUS_PLUS_DEPENDS@ 11 | Cflags: -I${includedir} 12 | Libs: -L${libdir} -lredis++ 13 | -------------------------------------------------------------------------------- /ext/redis-plus-plus-1.3.3/install/ubuntu22.04/amd64/lib/libredis++.a: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zerotier/ZeroTierOne/5232af0a61f7f6625ec6852d330c6c3520ae91de/ext/redis-plus-plus-1.3.3/install/ubuntu22.04/amd64/lib/libredis++.a -------------------------------------------------------------------------------- /ext/redis-plus-plus-1.3.3/install/ubuntu22.04/amd64/lib/pkgconfig/redis++.pc: -------------------------------------------------------------------------------- 1 | prefix=/home/grant/dev/ZeroTierOne/ext/redis-plus-plus-1.3.3/install/ubuntu22.04 2 | exec_prefix=${prefix} 3 | libdir=${exec_prefix}/lib 4 | includedir=${prefix}/include 5 | 6 | Name: redis++ 7 | Description: This is a Redis client, based on hiredis and written in C++11. It supports scritpting, pub/sub, pipeline, transaction, Redis Cluster, Redis Sentinel, connection pool, ACL, SSL and thread safety. 8 | Version: 1.3.3 9 | URL: https://github.com/sewenew/redis-plus-plus 10 | Requires: hiredis 11 | Cflags: -I${includedir} 12 | Libs: -L${libdir} -lredis++ 13 | -------------------------------------------------------------------------------- /ext/redis-plus-plus-1.3.3/install/ubuntu22.04/arm64/lib/libredis++.a: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zerotier/ZeroTierOne/5232af0a61f7f6625ec6852d330c6c3520ae91de/ext/redis-plus-plus-1.3.3/install/ubuntu22.04/arm64/lib/libredis++.a -------------------------------------------------------------------------------- /ext/redis-plus-plus-1.3.3/install/ubuntu22.04/arm64/lib/pkgconfig/redis++.pc: -------------------------------------------------------------------------------- 1 | prefix=/home/grant/dev/ZeroTierOne/ext/redis-plus-plus-1.3.3/install/ubuntu22.04/arm64 2 | exec_prefix=${prefix} 3 | libdir=${exec_prefix}/lib 4 | includedir=${prefix}/include 5 | 6 | Name: redis++ 7 | Description: This is a Redis client, based on hiredis and written in C++11. It supports scritpting, pub/sub, pipeline, transaction, Redis Cluster, Redis Sentinel, connection pool, ACL, SSL and thread safety. 8 | Version: 1.3.3 9 | URL: https://github.com/sewenew/redis-plus-plus 10 | Requires: hiredis 11 | Cflags: -I${includedir} 12 | Libs: -L${libdir} -lredis++ 13 | -------------------------------------------------------------------------------- /ext/x64-salsa2012-asm/README.md: -------------------------------------------------------------------------------- 1 | Blazingly fast X64 ASM implementation of Salsa20/12 2 | ====== 3 | 4 | This is ripped from the [cnacl](https://github.com/cjdelisle/cnacl) source. The actual code is by Danial J. Bernstein and is in the public domain. 5 | 6 | This is included on Linux and Mac 64-bit builds and is significantly faster than the SSE intrinsics or C versions. It's used for packet encode/decode only since its use differs a bit from the regular Salsa20 C++ class. Specifically it lacks the ability to be called on multiple blocks, preferring instead to take a key and a single stream to encrypt and that's it. 7 | -------------------------------------------------------------------------------- /ext/x64-salsa2012-asm/salsa2012.h: -------------------------------------------------------------------------------- 1 | #ifndef ZT_X64_SALSA2012_ASM 2 | #define ZT_X64_SALSA2012_ASM 3 | 4 | #ifdef __cplusplus 5 | extern "C" { 6 | #endif 7 | 8 | // Generates Salsa20/12 key stream 9 | // output, outlen, nonce, key (256-bit / 32-byte) 10 | extern int zt_salsa2012_amd64_xmm6(unsigned char *, unsigned long long, const unsigned char *, const unsigned char *); 11 | 12 | #ifdef __cplusplus 13 | } 14 | #endif 15 | 16 | #endif 17 | -------------------------------------------------------------------------------- /include/README.md: -------------------------------------------------------------------------------- 1 | ZeroTier Node API 2 | ====== 3 | 4 | This is the externally facing plain C API, which wraps the Node class in the node/ folder. It provides a platform-agnostic interface to the core ZeroTier network virtualization engine. 5 | -------------------------------------------------------------------------------- /java/README.md: -------------------------------------------------------------------------------- 1 | ZeroTier One SDK - Android JNI Wrapper 2 | ===== 3 | 4 | 5 | Building 6 | ----- 7 | 8 | Requires: 9 | 10 | * JDK 11 | * ANT 12 | * Android NDK 13 | 14 | Required Environment Variables: 15 | 16 | * NDK\_BUILD\_LOC - Path do the ndk-build script in the Android NDK 17 | * ANDROID\_PLATFORM - path to the directory android.jar lives (on Windows: C:\Users\\AppData\Local\Android\sdk\platforms\android-21) 18 | -------------------------------------------------------------------------------- /osdep/MacDNSHelper.hpp: -------------------------------------------------------------------------------- 1 | #ifndef MAC_DNS_HELPER 2 | #define MAC_DNS_HELPER 3 | 4 | #include "../node/InetAddress.hpp" 5 | #include "../node/MAC.hpp" 6 | 7 | #include 8 | 9 | namespace ZeroTier { 10 | 11 | class MacDNSHelper { 12 | public: 13 | static void setDNS(uint64_t nwid, const char* domain, const std::vector& servers); 14 | static void removeDNS(uint64_t nwid); 15 | static bool addIps4(uint64_t nwid, const MAC mac, const char* dev, const std::vector& addrs); 16 | static bool addIps6(uint64_t nwid, const MAC mac, const char* dev, const std::vector& addrs); 17 | static bool removeIps4(uint64_t nwid); 18 | static bool removeIps6(uint64_t nwid); 19 | }; 20 | 21 | } // namespace ZeroTier 22 | 23 | #endif 24 | -------------------------------------------------------------------------------- /osdep/README.md: -------------------------------------------------------------------------------- 1 | OS-Dependent and OS-Interface Things 2 | ====== 3 | 4 | This folder contains stuff that interfaces with the base operating system 5 | like Phy for network access and the various OS-specific Ethernet tap 6 | drivers. 7 | -------------------------------------------------------------------------------- /osdep/WinDNSHelper.hpp: -------------------------------------------------------------------------------- 1 | #ifndef WIN_DNS_HELPER_H_ 2 | #define WIN_DNS_HELPER_H_ 3 | 4 | #include "../node/InetAddress.hpp" 5 | 6 | #include 7 | #include 8 | 9 | namespace ZeroTier { 10 | 11 | class WinDNSHelper { 12 | public: 13 | static void setDNS(uint64_t nwid, const char* domain, const std::vector& servers); 14 | static void removeDNS(uint64_t nwid); 15 | 16 | private: 17 | static std::pair hasDNSConfig(uint64_t nwid); 18 | }; 19 | 20 | } // namespace ZeroTier 21 | 22 | #endif -------------------------------------------------------------------------------- /pkg/README.md: -------------------------------------------------------------------------------- 1 | Third-party packaging 2 | ===== 3 | 4 | For package documentation see the `Devices` section here: [docs.zerotier.com](https://docs.zerotier.com/) 5 | -------------------------------------------------------------------------------- /pkg/asustor/Dockerfile: -------------------------------------------------------------------------------- 1 | # vim: ft=dockerfile 2 | 3 | FROM ubuntu:20.04 4 | 5 | RUN apt-get update -qq && apt-get install python2.7 -y 6 | 7 | COPY apkg-tools.py /apkg-tools.py 8 | 9 | COPY entrypoint.sh /entrypoint.sh 10 | ENTRYPOINT ["/entrypoint.sh"] 11 | -------------------------------------------------------------------------------- /pkg/asustor/build.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | build_packages() 4 | { 5 | sudo docker run -v $(pwd):/zto ztasustor 6 | } 7 | 8 | build_container() 9 | { 10 | sudo docker build -t ztasustor . --load 11 | } 12 | 13 | "$@" 14 | -------------------------------------------------------------------------------- /pkg/asustor/zerotier/CONTROL/config.json: -------------------------------------------------------------------------------- 1 | { 2 | "general": { 3 | "package": "zerotier", 4 | "name": "ZeroTier", 5 | "version": "1.8.6", 6 | "depends": [], 7 | "conflicts": [], 8 | "developer": "ZeroTier, Inc.", 9 | "maintainer": "ZeroTier, Inc.", 10 | "email": "support@zerotier.com", 11 | "website": "http://www.zerotier.com/", 12 | "architecture": "any", 13 | "firmware": "2.1.0" 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /pkg/asustor/zerotier/CONTROL/description.txt: -------------------------------------------------------------------------------- 1 | Securely connect any device, anywhere. 2 | -------------------------------------------------------------------------------- /pkg/asustor/zerotier/CONTROL/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zerotier/ZeroTierOne/5232af0a61f7f6625ec6852d330c6c3520ae91de/pkg/asustor/zerotier/CONTROL/icon.png -------------------------------------------------------------------------------- /pkg/asustor/zerotier/CONTROL/post-install.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | APKG_PKG_DIR=/usr/local/AppCentral/zerotier 4 | 5 | case "$APKG_PKG_STATUS" in 6 | 7 | install) 8 | modprobe tun 9 | mkdir -p /usr/local/bin 10 | mv ${APKG_PKG_DIR}/bin/zerotier-one.${AS_NAS_ARCH} ${APKG_PKG_DIR}/bin/zerotier-one 11 | ln -s ${APKG_PKG_DIR}/bin/zerotier-one /usr/local/bin/zerotier-cli 12 | ln -s ${APKG_PKG_DIR}/bin/zerotier-one /usr/local/bin/zerotier-idtool 13 | ln -s $APKG_PKG_DIR/data /var/lib/zerotier-one 14 | ;; 15 | upgrade) 16 | # post upgrade script here (restore data) 17 | # cp -af $APKG_TEMP_DIR/* $APKG_PKG_DIR/etc/. 18 | ;; 19 | *) 20 | ;; 21 | 22 | esac 23 | 24 | exit 0 25 | -------------------------------------------------------------------------------- /pkg/asustor/zerotier/CONTROL/post-uninstall.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | rm -rf /var/lib/zerotier-one/ 4 | -------------------------------------------------------------------------------- /pkg/asustor/zerotier/CONTROL/pre-install.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zerotier/ZeroTierOne/5232af0a61f7f6625ec6852d330c6c3520ae91de/pkg/asustor/zerotier/CONTROL/pre-install.sh -------------------------------------------------------------------------------- /pkg/asustor/zerotier/CONTROL/pre-uninstall.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zerotier/ZeroTierOne/5232af0a61f7f6625ec6852d330c6c3520ae91de/pkg/asustor/zerotier/CONTROL/pre-uninstall.sh -------------------------------------------------------------------------------- /pkg/asustor/zerotier/CONTROL/start-stop.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | . /etc/script/lib/command.sh 4 | 5 | APKG_PKG_DIR=/usr/local/AppCentral/zerotier 6 | 7 | case $1 in 8 | 9 | start) 10 | modprobe tun 11 | # start script here 12 | $APKG_PKG_DIR/bin/zerotier-one $APKG_PKG_DIR/data -d 13 | ;; 14 | 15 | stop) 16 | # stop script here 17 | pkill zerotier 18 | ;; 19 | 20 | *) 21 | echo "usage: $0 {start|stop}" 22 | exit 1 23 | ;; 24 | esac 25 | 26 | exit 0 27 | -------------------------------------------------------------------------------- /pkg/asustor/zerotier/apkg-version: -------------------------------------------------------------------------------- 1 | 2.0 2 | -------------------------------------------------------------------------------- /pkg/config.json: -------------------------------------------------------------------------------- 1 | { 2 | "version": "1.8.7", 3 | "rev": "1", 4 | "desc": "Securely connect any device, anywhere.", 5 | "email": "support@zerotier.com" 6 | } 7 | -------------------------------------------------------------------------------- /pkg/qnap/Dockerfile: -------------------------------------------------------------------------------- 1 | # vim: ft=dockerfile 2 | 3 | FROM ubuntu:20.04 4 | 5 | # COPY zerotier/qbuild /qbuild 6 | 7 | COPY entrypoint.sh /entrypoint.sh 8 | ENTRYPOINT ["/entrypoint.sh"] 9 | -------------------------------------------------------------------------------- /pkg/qnap/build.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | build_packages() 4 | { 5 | sudo docker run -v $(pwd):/zto ztqnap 6 | } 7 | 8 | build_container() 9 | { 10 | sudo docker build -t ztqnap . --load 11 | } 12 | 13 | "$@" 14 | -------------------------------------------------------------------------------- /pkg/qnap/qdk.conf: -------------------------------------------------------------------------------- 1 | QDK_VERSION=2.3.11 2 | QDK_PATH_P=`pwd | awk 'BEGIN { FS = "QDK" } ; { print $1 }'` 3 | QDK_PATH="${QDK_PATH_P}/QDK" 4 | -------------------------------------------------------------------------------- /pkg/qnap/zerotier/Makefile: -------------------------------------------------------------------------------- 1 | .PHONY: all 2 | 3 | all: 4 | @$(CC) -o qpkg_encrypt qpkg_encrypt.c 5 | 6 | clean: 7 | rm -rf /bin/qpkg_encrypt 8 | -------------------------------------------------------------------------------- /pkg/qnap/zerotier/arm_64/.gitkeep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zerotier/ZeroTierOne/5232af0a61f7f6625ec6852d330c6c3520ae91de/pkg/qnap/zerotier/arm_64/.gitkeep -------------------------------------------------------------------------------- /pkg/qnap/zerotier/arm_x09/.gitkeep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zerotier/ZeroTierOne/5232af0a61f7f6625ec6852d330c6c3520ae91de/pkg/qnap/zerotier/arm_x09/.gitkeep -------------------------------------------------------------------------------- /pkg/qnap/zerotier/arm_x10/.gitkeep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zerotier/ZeroTierOne/5232af0a61f7f6625ec6852d330c6c3520ae91de/pkg/qnap/zerotier/arm_x10/.gitkeep -------------------------------------------------------------------------------- /pkg/qnap/zerotier/arm_x12/.gitkeep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zerotier/ZeroTierOne/5232af0a61f7f6625ec6852d330c6c3520ae91de/pkg/qnap/zerotier/arm_x12/.gitkeep -------------------------------------------------------------------------------- /pkg/qnap/zerotier/arm_x19/.gitkeep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zerotier/ZeroTierOne/5232af0a61f7f6625ec6852d330c6c3520ae91de/pkg/qnap/zerotier/arm_x19/.gitkeep -------------------------------------------------------------------------------- /pkg/qnap/zerotier/arm_x31/.gitkeep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zerotier/ZeroTierOne/5232af0a61f7f6625ec6852d330c6c3520ae91de/pkg/qnap/zerotier/arm_x31/.gitkeep -------------------------------------------------------------------------------- /pkg/qnap/zerotier/arm_x41/.gitkeep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zerotier/ZeroTierOne/5232af0a61f7f6625ec6852d330c6c3520ae91de/pkg/qnap/zerotier/arm_x41/.gitkeep -------------------------------------------------------------------------------- /pkg/qnap/zerotier/config/.gitkeep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zerotier/ZeroTierOne/5232af0a61f7f6625ec6852d330c6c3520ae91de/pkg/qnap/zerotier/config/.gitkeep -------------------------------------------------------------------------------- /pkg/qnap/zerotier/icons/.gitkeep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zerotier/ZeroTierOne/5232af0a61f7f6625ec6852d330c6c3520ae91de/pkg/qnap/zerotier/icons/.gitkeep -------------------------------------------------------------------------------- /pkg/qnap/zerotier/icons/ZeroTier.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zerotier/ZeroTierOne/5232af0a61f7f6625ec6852d330c6c3520ae91de/pkg/qnap/zerotier/icons/ZeroTier.gif -------------------------------------------------------------------------------- /pkg/qnap/zerotier/icons/ZeroTier_80.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zerotier/ZeroTierOne/5232af0a61f7f6625ec6852d330c6c3520ae91de/pkg/qnap/zerotier/icons/ZeroTier_80.gif -------------------------------------------------------------------------------- /pkg/qnap/zerotier/icons/ZeroTier_gray.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zerotier/ZeroTierOne/5232af0a61f7f6625ec6852d330c6c3520ae91de/pkg/qnap/zerotier/icons/ZeroTier_gray.gif -------------------------------------------------------------------------------- /pkg/qnap/zerotier/shared/.gitkeep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zerotier/ZeroTierOne/5232af0a61f7f6625ec6852d330c6c3520ae91de/pkg/qnap/zerotier/shared/.gitkeep -------------------------------------------------------------------------------- /pkg/qnap/zerotier/shared/.qpkg_icon.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zerotier/ZeroTierOne/5232af0a61f7f6625ec6852d330c6c3520ae91de/pkg/qnap/zerotier/shared/.qpkg_icon.gif -------------------------------------------------------------------------------- /pkg/qnap/zerotier/shared/.qpkg_icon_80.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zerotier/ZeroTierOne/5232af0a61f7f6625ec6852d330c6c3520ae91de/pkg/qnap/zerotier/shared/.qpkg_icon_80.gif -------------------------------------------------------------------------------- /pkg/qnap/zerotier/shared/.qpkg_icon_gray.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zerotier/ZeroTierOne/5232af0a61f7f6625ec6852d330c6c3520ae91de/pkg/qnap/zerotier/shared/.qpkg_icon_gray.gif -------------------------------------------------------------------------------- /pkg/qnap/zerotier/x86/.gitkeep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zerotier/ZeroTierOne/5232af0a61f7f6625ec6852d330c6c3520ae91de/pkg/qnap/zerotier/x86/.gitkeep -------------------------------------------------------------------------------- /pkg/qnap/zerotier/x86_64/.gitkeep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zerotier/ZeroTierOne/5232af0a61f7f6625ec6852d330c6c3520ae91de/pkg/qnap/zerotier/x86_64/.gitkeep -------------------------------------------------------------------------------- /pkg/qnap/zerotier/x86_ce53xx/.gitkeep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zerotier/ZeroTierOne/5232af0a61f7f6625ec6852d330c6c3520ae91de/pkg/qnap/zerotier/x86_ce53xx/.gitkeep -------------------------------------------------------------------------------- /pkg/synology/Dockerfile.spksrc: -------------------------------------------------------------------------------- 1 | # vim: ft=dockerfile 2 | 3 | FROM debian:buster 4 | 5 | ENV LANG C.UTF-8 6 | 7 | # Manage i386 arch 8 | RUN dpkg --add-architecture i386 9 | 10 | RUN apt-get update && apt-get install --no-install-recommends -y make imagemagick curl jq wget procps intltool 11 | 12 | RUN apt-get clean && rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* 13 | 14 | # Volume pointing to spksrc sources 15 | VOLUME /spksrc 16 | 17 | WORKDIR /spksrc 18 | 19 | COPY syn-pkg-entrypoint.sh /syn-pkg-entrypoint.sh 20 | ENTRYPOINT ["/syn-pkg-entrypoint.sh"] 21 | -------------------------------------------------------------------------------- /pkg/synology/README.md: -------------------------------------------------------------------------------- 1 | ## Package for Synology's DSM 6 2 | 3 | Documentation and downloads: [docs.zerotier.com/devices/synology](https://docs.zerotier.com/devices/synology) 4 | 5 | 6 | ``` 7 | ./build.sh build 8 | ``` 9 | -------------------------------------------------------------------------------- /pkg/synology/dsm6-pkg/PACKAGE_ICON.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zerotier/ZeroTierOne/5232af0a61f7f6625ec6852d330c6c3520ae91de/pkg/synology/dsm6-pkg/PACKAGE_ICON.png -------------------------------------------------------------------------------- /pkg/synology/dsm6-pkg/PACKAGE_ICON_256.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zerotier/ZeroTierOne/5232af0a61f7f6625ec6852d330c6c3520ae91de/pkg/synology/dsm6-pkg/PACKAGE_ICON_256.png -------------------------------------------------------------------------------- /pkg/synology/dsm6-pkg/scripts/postinst: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | exit 0 4 | -------------------------------------------------------------------------------- /pkg/synology/dsm6-pkg/scripts/postuninst: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | exit 0 4 | -------------------------------------------------------------------------------- /pkg/synology/dsm6-pkg/scripts/postupgrade: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | exit 0 3 | -------------------------------------------------------------------------------- /pkg/synology/dsm6-pkg/scripts/preinst: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | exit 0 3 | -------------------------------------------------------------------------------- /pkg/synology/dsm6-pkg/scripts/preuninst: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | exit 0 4 | -------------------------------------------------------------------------------- /pkg/synology/dsm6-pkg/scripts/preupgrade: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | exit 0 3 | -------------------------------------------------------------------------------- /pkg/synology/dsm6-pkg/service-setup.sh: -------------------------------------------------------------------------------- 1 | 2 | service_postinst() 3 | { 4 | exit 0 5 | } 6 | 7 | service_postuninst() 8 | { 9 | exit 0 10 | } 11 | 12 | service_postupgrade() 13 | { 14 | exit 0 15 | } 16 | 17 | service_preinst() 18 | { 19 | exit 0 20 | } 21 | 22 | service_preuninst() 23 | { 24 | exit 0 25 | } 26 | 27 | service_preupgrade() 28 | { 29 | exit 0 30 | } 31 | -------------------------------------------------------------------------------- /pkg/synology/dsm7-docker/README.md: -------------------------------------------------------------------------------- 1 | ## Docker image for Synology's DSM7 2 | 3 | Documentation: [docs.zerotier.com/devices/synology](https://docs.zerotier.com/devices/synology) 4 | 5 | ### Build & Push changes to DockerHub 6 | ```shell 7 | ./build.sh build 8 | ``` 9 | -------------------------------------------------------------------------------- /pkg/synology/dsm7-docker/build.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | ZTO_VER=$(git describe --tags $(git rev-list --tags --max-count=1)) 4 | ZTO_COMMIT=$(git rev-parse HEAD) 5 | 6 | build() { 7 | sudo docker login --username=${DOCKERHUB_USERNAME} 8 | 9 | sudo docker buildx build \ 10 | --push \ 11 | --platform linux/arm/v7,linux/arm64/v8,linux/amd64 \ 12 | --tag zerotier/zerotier-synology:${ZTO_VER} \ 13 | --tag zerotier/zerotier-synology:latest \ 14 | --build-arg ZTO_COMMIT=${ZTO_COMMIT} \ 15 | --build-arg ZTO_VER=${ZTO_VER} \ 16 | . 17 | } 18 | 19 | "$@" 20 | -------------------------------------------------------------------------------- /pkg/wd/Dockerfile: -------------------------------------------------------------------------------- 1 | # vim: ft=dockerfile 2 | 3 | FROM ubuntu:20.04 4 | 5 | COPY mksapkg-OS5 /mksapkg-OS5 6 | 7 | COPY entrypoint.sh /entrypoint.sh 8 | ENTRYPOINT ["/entrypoint.sh"] 9 | 10 | -------------------------------------------------------------------------------- /pkg/wd/build.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | build_packages() 4 | { 5 | sudo docker run -v $(pwd):/zto ztwd 6 | } 7 | 8 | build_container() 9 | { 10 | sudo docker build -t ztwd . --load 11 | } 12 | 13 | "$@" 14 | -------------------------------------------------------------------------------- /pkg/wd/zerotier/apkg.rc: -------------------------------------------------------------------------------- 1 | Package: zerotier 2 | Section: Apps 3 | Version: 1.8.8 4 | Packager: ZeroTier, Inc. 5 | Email: contact@zerotier.com 6 | Homepage: http://www.zerotier.com 7 | Description: Securely connect any device, anywhere. 8 | AddonShowName: ZeroTier 9 | Icon: zerotier.png 10 | AddonIndexPage: index.html 11 | AddonUsedPort: 9993 12 | InstDepend: 13 | InstConflict: 14 | StartDepend: 15 | StartConflict: 16 | CenterType:1 17 | UserControl:0 18 | MinFWVer: 19 | MaxFWVer: 20 | IndividualFlag: 21 | 22 | -------------------------------------------------------------------------------- /pkg/wd/zerotier/clean.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | rm -f /usr/bin/zerotier-one 2> /dev/null 4 | rm -f /usr/sbin/zerotier-one 2> /dev/null 5 | 6 | rm -f /usr/bin/zerotier-cli 2> /dev/null 7 | rm -f /usr/sbin/zerotier-cli 2> /dev/null 8 | -------------------------------------------------------------------------------- /pkg/wd/zerotier/init.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | install_path=$1 4 | 5 | ln -s $install_path/bin/zerotier-one /usr/sbin/zerotier-one 6 | ln -s $install_path/bin/zerotier-one /usr/sbin/zerotier-cli 7 | ln -s $install_path/bin/zerotier-one /usr/bin/zerotier-one 8 | ln -s $install_path/bin/zerotier-one /usr/bin/zerotier-cli 9 | 10 | ln -s $install_path/ /var/lib/zerotier-one 11 | 12 | APKG_PATH=$(readlink -f $1) 13 | WEBPATH="/var/www/apps/zerotier/" 14 | mkdir -p $WEBPATH 15 | ln -sf ${APKG_PATH}/web/* $WEBPATH -------------------------------------------------------------------------------- /pkg/wd/zerotier/install.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | path_src=$1 4 | path_des=$2 5 | mv $path_src $path_des 6 | -------------------------------------------------------------------------------- /pkg/wd/zerotier/preinst.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | -------------------------------------------------------------------------------- /pkg/wd/zerotier/remove.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | path=$1 4 | rm -f /usr/bin/zerotier-one 2> /dev/null 5 | rm -f /usr/sbin/zerotier-one 2> /dev/null 6 | 7 | rm -f /usr/bin/zerotier-cli 2> /dev/null 8 | rm -f /usr/sbin/zerotier-cli 2> /dev/null 9 | 10 | rm -rf $path 11 | -------------------------------------------------------------------------------- /pkg/wd/zerotier/start.sh: -------------------------------------------------------------------------------- 1 | #! /bin/sh 2 | 3 | /usr/bin/zerotier-one -d -------------------------------------------------------------------------------- /pkg/wd/zerotier/stop.sh: -------------------------------------------------------------------------------- 1 | #! /bin/sh 2 | 3 | killall zerotier-one 4 | -------------------------------------------------------------------------------- /pkg/wd/zerotier/web/zerotier.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zerotier/ZeroTierOne/5232af0a61f7f6625ec6852d330c6c3520ae91de/pkg/wd/zerotier/web/zerotier.png -------------------------------------------------------------------------------- /pkg/wd/zerotier/zerotier.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zerotier/ZeroTierOne/5232af0a61f7f6625ec6852d330c6c3520ae91de/pkg/wd/zerotier/zerotier.png -------------------------------------------------------------------------------- /rule-compiler/README.md: -------------------------------------------------------------------------------- 1 | ZeroTier Rules Compiler 2 | ====== 3 | 4 | This script converts ZeroTier rules in human-readable format into rules suitable for import into a ZeroTier network controller. It's the script that is used in the rules editor on [ZeroTier Central](https://my.zerotier.com/). 5 | 6 | A command line interface is included that may be invoked as: `node cli.js `. 7 | 8 | See the [manual](https://www.zerotier.com/manual.shtml) for information about the rules engine and rules script syntax. 9 | -------------------------------------------------------------------------------- /rule-compiler/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "zerotier-rule-compiler", 3 | "version": "1.2.2-2", 4 | "description": "ZeroTier Rule Script Compiler", 5 | "main": "cli.js", 6 | "scripts": { 7 | "test": "echo \"Error: no test specified\" && exit 1" 8 | }, 9 | "repository": { 10 | "type": "git", 11 | "url": "https://github.com/zerotier/ZeroTierOne/rule-compiler" 12 | }, 13 | "keywords": [ 14 | "ZeroTier" 15 | ], 16 | "author": "ZeroTier, Inc. ", 17 | "license": "GPL-2.0" 18 | } 19 | -------------------------------------------------------------------------------- /rustybits/Cargo.toml: -------------------------------------------------------------------------------- 1 | [workspace] 2 | resolver = "2" 3 | members = ["smeeclient", "zeroidc"] 4 | 5 | [profile.release] 6 | strip = "debuginfo" 7 | -------------------------------------------------------------------------------- /rustybits/rustfmt.toml: -------------------------------------------------------------------------------- 1 | #unstable_features = true 2 | max_width = 120 3 | #use_small_heuristics = "Max" 4 | edition = "2021" 5 | #empty_item_single_line = true 6 | newline_style = "Unix" 7 | struct_lit_width = 60 8 | tab_spaces = 4 9 | use_small_heuristics = "Default" 10 | #fn_single_line = true 11 | #hex_literal_case = "Lower" 12 | #merge_imports = true 13 | #group_imports = "StdExternalCrate" 14 | single_line_if_else_max_width = 0 15 | use_try_shorthand = true 16 | -------------------------------------------------------------------------------- /rustybits/smeeclient/Cargo.toml: -------------------------------------------------------------------------------- 1 | [package] 2 | name = "smeeclient" 3 | version = "0.1.0" 4 | edition = "2021" 5 | 6 | [lib] 7 | crate-type = ["staticlib", "rlib"] 8 | 9 | # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html 10 | 11 | [dependencies] 12 | serde = { version = "1", features = ["derive"] } 13 | temporal-sdk = { git = "https://github.com/temporalio/sdk-core", branch = "master" } 14 | temporal-client = { git = "https://github.com/temporalio/sdk-core", branch = "master", features = ["telemetry"] } 15 | temporal-sdk-core-protos = { git = "https://github.com/temporalio/sdk-core", branch = "master" } 16 | tokio = { version = "1.43", features = ["full"] } 17 | url = { version = "2" } 18 | uuid = { version = "1.4", features = ["v4"] } 19 | 20 | [build-dependencies] 21 | cbindgen = "0.20" 22 | -------------------------------------------------------------------------------- /rustybits/smeeclient/rustfmt.toml: -------------------------------------------------------------------------------- 1 | ../rustfmt.toml -------------------------------------------------------------------------------- /rustybits/zeroidc/.cargo/config.toml: -------------------------------------------------------------------------------- 1 | [target.x86_64-apple-darwin] 2 | rustflags=["-C", "link-arg=-mmacosx-version-min=10.13"] 3 | 4 | [target.aarch64-apple-darwin] 5 | rustflags=["-C", "link-arg=-mmacosx-version-min=10.13"] 6 | 7 | [target.x86_64-pc-windows-msvc] 8 | rustflags = ["-C", "target-feature=+crt-static"] 9 | 10 | [target.i686-pc-windows-msvc] 11 | rustflags = ["-C", "target-feature=+crt-static"] 12 | -------------------------------------------------------------------------------- /rustybits/zeroidc/.gitattributes: -------------------------------------------------------------------------------- 1 | # disable autocrlf because it doesn't mix well with 2 | # vendored rust packages 3 | * text=false 4 | -------------------------------------------------------------------------------- /rustybits/zeroidc/Cargo.toml: -------------------------------------------------------------------------------- 1 | [package] 2 | name = "zeroidc" 3 | version = "0.1.0" 4 | edition = "2021" 5 | build = "build.rs" 6 | publish = false 7 | 8 | [lib] 9 | crate-type = ["staticlib", "rlib"] 10 | 11 | [dependencies] 12 | openidconnect = { version = "3.4", default-features = false, features = [ 13 | "reqwest", 14 | "native-tls", 15 | "accept-rfc3339-timestamps", 16 | ] } 17 | base64 = "0.21" 18 | url = "2.3" 19 | reqwest = "0.11" 20 | jwt = { version = "0.16", git = "https://github.com/glimberg/rust-jwt" } 21 | serde = "1.0" 22 | time = { version = "~0.3", features = ["formatting"] } 23 | bytes = "1.3" 24 | thiserror = "1" 25 | tokio = { version = ">=1.24" } 26 | 27 | [build-dependencies] 28 | cbindgen = "0.20" 29 | -------------------------------------------------------------------------------- /rustybits/zeroidc/rustfmt.toml: -------------------------------------------------------------------------------- 1 | ../rustfmt.toml -------------------------------------------------------------------------------- /tcp-proxy/Makefile: -------------------------------------------------------------------------------- 1 | CXX=$(shell which clang++ g++ c++ 2>/dev/null | head -n 1) 2 | 3 | INCLUDES?=-I../ext/prometheus-cpp-lite-1.0/core/include -I../ext/prometheus-cpp-lite-1.0/simpleapi/include 4 | 5 | all: 6 | $(CXX) -O3 -fno-rtti $(INCLUDES) -std=c++11 -pthread -frtti -o tcp-proxy tcp-proxy.cpp ../node/Metrics.cpp 7 | 8 | clean: 9 | rm -f *.o tcp-proxy *.dSYM 10 | -------------------------------------------------------------------------------- /tcp-proxy/zerotier-proxy.service: -------------------------------------------------------------------------------- 1 | [Unit] 2 | Description=ZeroTier TCP Proxy sample unit 3 | 4 | [Service] 5 | ExecStart=/var/lib/zerotier-one/tcp-proxy 6 | Restart=on-failure 7 | 8 | # The zerotier-one install script creates this user/group 9 | User=zerotier-one 10 | Group=zerotier-one 11 | 12 | 13 | [Install] 14 | WantedBy=multi-user.target 15 | -------------------------------------------------------------------------------- /update_controllers.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | if [ -z "$1" ] 4 | then 5 | echo "Usage: $0 " 6 | echo " k8s_namesapce is set to default if not specified" 7 | exit 1 8 | fi 9 | 10 | if [ -z "$2" ] 11 | then 12 | NAMESPACE=default 13 | else 14 | NAMESPACE=$2 15 | fi 16 | 17 | TAG=$1 18 | 19 | CONTROLLERS=`kubectl get pods -o=name --namespace=${NAMESPACE} | grep controller | sed "s/^.\{4\}//" | cut -d '-' -f 2` 20 | 21 | for c in ${CONTROLLERS[@]} 22 | do 23 | kubectl set image deployment --namespace=${NAMESPACE} controller-${c} ztcentral-controller=docker.zerotier.com/zerotier-central/ztcentral-controller:${TAG} 24 | echo "Sleeping for 1 minute" 25 | sleep 60 26 | done 27 | -------------------------------------------------------------------------------- /windows-clean.bat: -------------------------------------------------------------------------------- 1 | DEL "ZeroTier One.msi" 2 | DEL zt1_update*.exe 3 | RMDIR /Q /S windows\Build 4 | RMDIR /Q /S windows\x64 5 | RMDIR /Q /S windows\ARM64 6 | RMDIR /Q /S windows\Release 7 | RMDIR /Q /S windows\copyutil\bin 8 | RMDIR /Q /S windows\copyutil\obj 9 | RMDIR /Q /S windows\ZeroTierOne\Release 10 | RMDIR /Q /S windows\ZeroTierOne\x64 11 | RMDIR /Q /S zeroidc\x64 12 | RMDIR /Q /S zeroidc\target 13 | -------------------------------------------------------------------------------- /windows/TapDriver6/config.h: -------------------------------------------------------------------------------- 1 | #define PRODUCT_NAME "ZeroTier Virtual Port" 2 | #define PRODUCT_VERSION "3.0.0" 3 | #define PRODUCT_VERSION_RESOURCE 3,0,0,1 4 | #define PRODUCT_TAP_WIN_COMPONENT_ID "zttap300" 5 | #define PRODUCT_TAP_WIN_MAJOR 3 6 | #define PRODUCT_TAP_WIN_MINOR 0 7 | #define PRODUCT_TAP_WIN_PROVIDER "ZeroTier" 8 | #define PRODUCT_TAP_WIN_DEVICE_DESCRIPTION PRODUCT_NAME 9 | #define PRODUCT_TAP_WIN_RELDATE "11/24/2020" 10 | -------------------------------------------------------------------------------- /windows/ZeroTierOne/ZeroTierOne.aps: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zerotier/ZeroTierOne/5232af0a61f7f6625ec6852d330c6c3520ae91de/windows/ZeroTierOne/ZeroTierOne.aps -------------------------------------------------------------------------------- /windows/ZeroTierOne/ZeroTierOne.rc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zerotier/ZeroTierOne/5232af0a61f7f6625ec6852d330c6c3520ae91de/windows/ZeroTierOne/ZeroTierOne.rc -------------------------------------------------------------------------------- /windows/ZeroTierOne/resource.h: -------------------------------------------------------------------------------- 1 | //{{NO_DEPENDENCIES}} 2 | // Microsoft Visual C++ generated include file. 3 | // Used by ZeroTierOne.rc 4 | 5 | // Next default values for new objects 6 | // 7 | #ifdef APSTUDIO_INVOKED 8 | #ifndef APSTUDIO_READONLY_SYMBOLS 9 | #define _APS_NEXT_RESOURCE_VALUE 101 10 | #define _APS_NEXT_COMMAND_VALUE 40001 11 | #define _APS_NEXT_CONTROL_VALUE 1001 12 | #define _APS_NEXT_SYMED_VALUE 101 13 | #endif 14 | #endif 15 | -------------------------------------------------------------------------------- /windows/ZeroTierOneSDK/dllmain.cpp: -------------------------------------------------------------------------------- 1 | // dllmain.cpp : Defines the entry point for the DLL application. 2 | #define WIN32_LEAN_AND_MEAN // Exclude rarely-used stuff from Windows headers 3 | // Windows Header Files: 4 | #include 5 | #include "targetver.h" 6 | 7 | BOOL APIENTRY DllMain( HMODULE hModule, 8 | DWORD ul_reason_for_call, 9 | LPVOID lpReserved 10 | ) 11 | { 12 | switch (ul_reason_for_call) 13 | { 14 | case DLL_PROCESS_ATTACH: 15 | case DLL_THREAD_ATTACH: 16 | case DLL_THREAD_DETACH: 17 | case DLL_PROCESS_DETACH: 18 | break; 19 | } 20 | return TRUE; 21 | } 22 | 23 | -------------------------------------------------------------------------------- /windows/ZeroTierOneSDK/targetver.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | // Including SDKDDKVer.h defines the highest available Windows platform. 4 | 5 | // If you wish to build your application for a previous Windows platform, include WinSDKVer.h and 6 | // set the _WIN32_WINNT macro to the platform you wish to support before including SDKDDKVer.h. 7 | 8 | #include 9 | -------------------------------------------------------------------------------- /windows/packages/.gitignore: -------------------------------------------------------------------------------- 1 | * 2 | !repositories.config 3 | !.gitignore -------------------------------------------------------------------------------- /windows/packages/repositories.config: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | --------------------------------------------------------------------------------