├── .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 |
--------------------------------------------------------------------------------