The response has been limited to 50k tokens of the smallest files in the repo. You can remove this limitation by removing the max tokens filter.
├── .clang-format
├── .clangd
├── .dockerignore
├── .drone.jsonnet
├── .drone.yml
├── .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
├── .kick
├── AUTHORS.md
├── 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
    ├── WinUI
    │   ├── APIHandler.cs
    │   ├── AboutView.xaml
    │   ├── AboutView.xaml.cs
    │   ├── App.config
    │   ├── App.xaml
    │   ├── App.xaml.cs
    │   ├── CentralAPI.cs
    │   ├── CentralLogin.cs
    │   ├── CentralNetwork.cs
    │   ├── CentralServer.cs
    │   ├── CentralToken.cs
    │   ├── CentralUser.cs
    │   ├── Fonts
    │   │   ├── segoeui.ttf
    │   │   ├── segoeuib.ttf
    │   │   ├── segoeuii.ttf
    │   │   └── segoeuiz.ttf
    │   ├── ISwitchable.cs
    │   ├── JoinNetworkView.xaml
    │   ├── JoinNetworkView.xaml.cs
    │   ├── MainWindow.xaml.cs
    │   ├── NetworkInfoView.xaml
    │   ├── NetworkInfoView.xaml.cs
    │   ├── NetworkListView.xaml
    │   ├── NetworkListView.xaml.cs
    │   ├── NetworkMonitor.cs
    │   ├── NetworkNameGenerator.cs
    │   ├── NetworkRoute.cs
    │   ├── NetworksPage.xaml
    │   ├── NetworksPage.xaml.cs
    │   ├── PeersPage.xaml
    │   ├── PeersPage.xaml.cs
    │   ├── PreferencesView.xaml
    │   ├── PreferencesView.xaml.cs
    │   ├── Properties
    │   │   ├── AssemblyInfo.cs
    │   │   ├── Resources.Designer.cs
    │   │   ├── Resources.resx
    │   │   ├── Settings.Designer.cs
    │   │   └── Settings.settings
    │   ├── Resources
    │   │   └── ZeroTierIcon.ico
    │   ├── Simple Styles.xaml
    │   ├── Themes
    │   │   └── Generic.xaml
    │   ├── ToolbarItem.xaml
    │   ├── ToolbarItem.xaml.cs
    │   ├── WinUI.csproj
    │   ├── ZeroTierIcon.ico
    │   ├── ZeroTierNetwork.cs
    │   ├── ZeroTierPeer.cs
    │   ├── ZeroTierPeerPhysicalPath.cs
    │   ├── ZeroTierStatus.cs
    │   ├── app.manifest
    │   └── packages.config
    ├── 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
    ├── macui
    │   ├── ZeroTier One.xcodeproj
    │   │   ├── project.pbxproj
    │   │   └── project.xcworkspace
    │   │   │   ├── contents.xcworkspacedata
    │   │   │   └── xcshareddata
    │   │   │       └── IDEWorkspaceChecks.plist
    │   └── ZeroTier One
    │   │   ├── AboutViewController.h
    │   │   ├── AboutViewController.m
    │   │   ├── AboutViewController.xib
    │   │   ├── AppDelegate.h
    │   │   ├── AppDelegate.m
    │   │   ├── Assets.xcassets
    │   │       ├── AppIcon.appiconset
    │   │       │   ├── Contents.json
    │   │       │   └── ZeroTierIcon512x512.png
    │   │       ├── Contents.json
    │   │       ├── MenuBarIconMac.imageset
    │   │       │   ├── Contents.json
    │   │       │   ├── MenuBar@2x.png
    │   │       │   └── Menubar.png
    │   │       └── MenuBarIconMacWhite.imageset
    │   │       │   ├── Contents.json
    │   │       │   ├── MenubarWhite.png
    │   │       │   └── MenubarWhite@2x.png
    │   │   ├── AuthtokenCopy.h
    │   │   ├── AuthtokenCopy.m
    │   │   ├── Base.lproj
    │   │       └── MainMenu.xib
    │   │   ├── Info.plist
    │   │   ├── JoinNetworkViewController.h
    │   │   ├── JoinNetworkViewController.m
    │   │   ├── JoinNetworkViewController.xib
    │   │   ├── Network.h
    │   │   ├── Network.m
    │   │   ├── NetworkInfoCell.h
    │   │   ├── NetworkInfoCell.m
    │   │   ├── NetworkMonitor.h
    │   │   ├── NetworkMonitor.m
    │   │   ├── NodeStatus.h
    │   │   ├── NodeStatus.m
    │   │   ├── PreferencesViewController.h
    │   │   ├── PreferencesViewController.m
    │   │   ├── PreferencesViewController.xib
    │   │   ├── ServiceCom.h
    │   │   ├── ServiceCom.m
    │   │   ├── ShowNetworksViewController.h
    │   │   ├── ShowNetworksViewController.m
    │   │   ├── ShowNetworksViewController.xib
    │   │   ├── ZeroTier One.entitlements
    │   │   ├── ZeroTierIcon.icns
    │   │   ├── about.html
    │   │   └── main.m
    └── 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
    │   ├── 3rdpatry
    │   │   └── 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
    ├── C25519.cpp
    ├── C25519.hpp
    ├── Capability.cpp
    ├── Capability.hpp
    ├── CertificateOfMembership.cpp
    ├── CertificateOfMembership.hpp
    ├── CertificateOfOwnership.cpp
    ├── CertificateOfOwnership.hpp
    ├── Constants.hpp
    ├── Credential.hpp
    ├── DNS.hpp
    ├── Dictionary.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
    ├── 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 | 


--------------------------------------------------------------------------------
/.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 | 


--------------------------------------------------------------------------------
/.kick:
--------------------------------------------------------------------------------
 1 | kick
 2 | kick
 3 | kick
 4 | kick
 5 | kick
 6 | kick
 7 | kick
 8 | kick
 9 | kick
10 | kick
11 | kick
12 | kick
13 | kick
14 | kick
15 | 


--------------------------------------------------------------------------------
/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 BSL 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/226bb1d4ef0b93dbd1e467f952d23e0ff99e976b/artwork/AppIcon.png


--------------------------------------------------------------------------------
/artwork/AppIcon@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zerotier/ZeroTierOne/226bb1d4ef0b93dbd1e467f952d23e0ff99e976b/artwork/AppIcon@2x.png


--------------------------------------------------------------------------------
/artwork/AppIcon@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zerotier/ZeroTierOne/226bb1d4ef0b93dbd1e467f952d23e0ff99e976b/artwork/AppIcon@3x.png


--------------------------------------------------------------------------------
/artwork/AppIcon_1024x1024.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zerotier/ZeroTierOne/226bb1d4ef0b93dbd1e467f952d23e0ff99e976b/artwork/AppIcon_1024x1024.png


--------------------------------------------------------------------------------
/artwork/AppIcon_20x20.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zerotier/ZeroTierOne/226bb1d4ef0b93dbd1e467f952d23e0ff99e976b/artwork/AppIcon_20x20.png


--------------------------------------------------------------------------------
/artwork/AppIcon_29x29.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zerotier/ZeroTierOne/226bb1d4ef0b93dbd1e467f952d23e0ff99e976b/artwork/AppIcon_29x29.png


--------------------------------------------------------------------------------
/artwork/AppIcon_40x40.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zerotier/ZeroTierOne/226bb1d4ef0b93dbd1e467f952d23e0ff99e976b/artwork/AppIcon_40x40.png


--------------------------------------------------------------------------------
/artwork/AppIcon_58x58.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zerotier/ZeroTierOne/226bb1d4ef0b93dbd1e467f952d23e0ff99e976b/artwork/AppIcon_58x58.png


--------------------------------------------------------------------------------
/artwork/AppIcon_60x60.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zerotier/ZeroTierOne/226bb1d4ef0b93dbd1e467f952d23e0ff99e976b/artwork/AppIcon_60x60.png


--------------------------------------------------------------------------------
/artwork/AppIcon_80x80.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zerotier/ZeroTierOne/226bb1d4ef0b93dbd1e467f952d23e0ff99e976b/artwork/AppIcon_80x80.png


--------------------------------------------------------------------------------
/artwork/AppIcon_87x87.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zerotier/ZeroTierOne/226bb1d4ef0b93dbd1e467f952d23e0ff99e976b/artwork/AppIcon_87x87.png


--------------------------------------------------------------------------------
/artwork/AppIcon_90x90.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zerotier/ZeroTierOne/226bb1d4ef0b93dbd1e467f952d23e0ff99e976b/artwork/AppIcon_90x90.png


--------------------------------------------------------------------------------
/artwork/AppIcon_iPad@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zerotier/ZeroTierOne/226bb1d4ef0b93dbd1e467f952d23e0ff99e976b/artwork/AppIcon_iPad@2x.png


--------------------------------------------------------------------------------
/artwork/AppIcon_iPadPro@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zerotier/ZeroTierOne/226bb1d4ef0b93dbd1e467f952d23e0ff99e976b/artwork/AppIcon_iPadPro@2x.png


--------------------------------------------------------------------------------
/artwork/ZeroTierIcon-WithBorder.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zerotier/ZeroTierOne/226bb1d4ef0b93dbd1e467f952d23e0ff99e976b/artwork/ZeroTierIcon-WithBorder.png


--------------------------------------------------------------------------------
/artwork/ZeroTierIcon.icns:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zerotier/ZeroTierOne/226bb1d4ef0b93dbd1e467f952d23e0ff99e976b/artwork/ZeroTierIcon.icns


--------------------------------------------------------------------------------
/artwork/ZeroTierIcon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zerotier/ZeroTierOne/226bb1d4ef0b93dbd1e467f952d23e0ff99e976b/artwork/ZeroTierIcon.ico


--------------------------------------------------------------------------------
/artwork/ZeroTierIcon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zerotier/ZeroTierOne/226bb1d4ef0b93dbd1e467f952d23e0ff99e976b/artwork/ZeroTierIcon.png


--------------------------------------------------------------------------------
/artwork/ZeroTierIcon32x32.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zerotier/ZeroTierOne/226bb1d4ef0b93dbd1e467f952d23e0ff99e976b/artwork/ZeroTierIcon32x32.png


--------------------------------------------------------------------------------
/artwork/ZeroTierIcon512x512.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zerotier/ZeroTierOne/226bb1d4ef0b93dbd1e467f952d23e0ff99e976b/artwork/ZeroTierIcon512x512.png


--------------------------------------------------------------------------------
/attic/WinUI/App.config:
--------------------------------------------------------------------------------
1 | <?xml version="1.0" encoding="utf-8" ?>
2 | <configuration>
3 |     <startup> 
4 |         <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" />
5 |     </startup>
6 | </configuration>


--------------------------------------------------------------------------------
/attic/WinUI/App.xaml:
--------------------------------------------------------------------------------
 1 | <Application x:Class="WinUI.App"
 2 |              xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
 3 |              xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
 4 |              StartupUri="ToolbarItem.xaml">
 5 |     <Application.Resources>
 6 |          
 7 |     	<ResourceDictionary>
 8 |     		<ResourceDictionary.MergedDictionaries>
 9 |     			<ResourceDictionary Source="Simple Styles.xaml"/>
10 |     		</ResourceDictionary.MergedDictionaries>
11 |     	</ResourceDictionary>
12 |          
13 |     </Application.Resources>
14 | </Application>
15 | 


--------------------------------------------------------------------------------
/attic/WinUI/App.xaml.cs:
--------------------------------------------------------------------------------
 1 | using System;
 2 | using System.Collections.Generic;
 3 | using System.Configuration;
 4 | using System.Data;
 5 | using System.Linq;
 6 | using System.Threading.Tasks;
 7 | using System.Windows;
 8 | using Hardcodet.Wpf.TaskbarNotification;
 9 | 
10 | namespace WinUI
11 | {
12 |     /// <summary>
13 |     /// Interaction logic for App.xaml
14 |     /// </summary>
15 |     public partial class App : Application
16 |     {
17 |         private TaskbarIcon tb;
18 | 
19 |         private void InitApplication()
20 |         {
21 |             tb = (TaskbarIcon)FindResource("NotifyIcon");
22 |             tb.Visibility = Visibility.Visible;
23 |         }
24 |     }
25 | }
26 | 


--------------------------------------------------------------------------------
/attic/WinUI/CentralLogin.cs:
--------------------------------------------------------------------------------
 1 | using System;
 2 | using System.Collections.Generic;
 3 | using System.Linq;
 4 | using System.Text;
 5 | using System.Threading.Tasks;
 6 | using Newtonsoft.Json;
 7 | 
 8 | namespace WinUI
 9 | {
10 |     class CentralLogin
11 |     {
12 | 
13 | 
14 |         public CentralLogin(string email, string password, bool isNew)
15 |         {
16 |             Login = email;
17 |             Password = password;
18 |             IsNew = isNew;
19 |         }
20 | 
21 |         [JsonProperty("login")]
22 |         public string Login { get; set; }
23 | 
24 |         [JsonProperty("password")]
25 |         public string Password { get; set; }
26 | 
27 |         [JsonProperty("register")]
28 |         public bool IsNew { get; set; }
29 |     }
30 | }
31 | 


--------------------------------------------------------------------------------
/attic/WinUI/CentralServer.cs:
--------------------------------------------------------------------------------
 1 | using System;
 2 | using System.Collections.Generic;
 3 | using System.Linq;
 4 | using System.Text;
 5 | using System.Threading.Tasks;
 6 | using Newtonsoft.Json;
 7 | 
 8 | namespace WinUI
 9 | {
10 |     class CentralServer
11 |     {
12 |         public CentralServer()
13 |         {
14 |             ServerURL = "https://my.zerotier.com";
15 |         }
16 | 
17 |         [JsonProperty("server_url")]
18 |         public string ServerURL { get; set; }
19 | 
20 |         [JsonProperty("api_key")]
21 |         public string APIKey { get; set; }
22 |     }
23 | }
24 | 


--------------------------------------------------------------------------------
/attic/WinUI/CentralToken.cs:
--------------------------------------------------------------------------------
 1 | using System;
 2 | using System.Collections.Generic;
 3 | using System.Linq;
 4 | using System.Text;
 5 | using System.Threading.Tasks;
 6 | using Newtonsoft.Json;
 7 | 
 8 | namespace WinUI
 9 | {
10 |     class CentralToken
11 |     {
12 |         [JsonProperty("token")]
13 |         public string Token { get; set; }
14 | 
15 |         [JsonProperty("clock")]
16 |         public UInt64 Clock { get; set; }
17 | 
18 |         [JsonProperty("raw")]
19 |         public string Raw { get; set; }
20 |     }
21 | }
22 | 


--------------------------------------------------------------------------------
/attic/WinUI/Fonts/segoeui.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zerotier/ZeroTierOne/226bb1d4ef0b93dbd1e467f952d23e0ff99e976b/attic/WinUI/Fonts/segoeui.ttf


--------------------------------------------------------------------------------
/attic/WinUI/Fonts/segoeuib.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zerotier/ZeroTierOne/226bb1d4ef0b93dbd1e467f952d23e0ff99e976b/attic/WinUI/Fonts/segoeuib.ttf


--------------------------------------------------------------------------------
/attic/WinUI/Fonts/segoeuii.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zerotier/ZeroTierOne/226bb1d4ef0b93dbd1e467f952d23e0ff99e976b/attic/WinUI/Fonts/segoeuii.ttf


--------------------------------------------------------------------------------
/attic/WinUI/Fonts/segoeuiz.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zerotier/ZeroTierOne/226bb1d4ef0b93dbd1e467f952d23e0ff99e976b/attic/WinUI/Fonts/segoeuiz.ttf


--------------------------------------------------------------------------------
/attic/WinUI/ISwitchable.cs:
--------------------------------------------------------------------------------
 1 | using System;
 2 | using System.Collections.Generic;
 3 | using System.Linq;
 4 | using System.Text;
 5 | using System.Threading.Tasks;
 6 | 
 7 | namespace WinUI
 8 | {
 9 |     interface ISwitchable
10 |     {
11 |         void UtilizeState(object state);
12 |     }
13 | }
14 | 


--------------------------------------------------------------------------------
/attic/WinUI/Properties/Settings.settings:
--------------------------------------------------------------------------------
1 | <?xml version='1.0' encoding='utf-8'?>
2 | <SettingsFile xmlns="uri:settings" CurrentProfile="(Default)">
3 |   <Profiles>
4 |     <Profile Name="(Default)" />
5 |   </Profiles>
6 |   <Settings />
7 | </SettingsFile>


--------------------------------------------------------------------------------
/attic/WinUI/Resources/ZeroTierIcon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zerotier/ZeroTierOne/226bb1d4ef0b93dbd1e467f952d23e0ff99e976b/attic/WinUI/Resources/ZeroTierIcon.ico


--------------------------------------------------------------------------------
/attic/WinUI/Themes/Generic.xaml:
--------------------------------------------------------------------------------
1 | <ResourceDictionary
2 |     xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
3 |     xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
4 |     xmlns:local="clr-namespace:WinUI">
5 | 
6 | </ResourceDictionary>
7 | 


--------------------------------------------------------------------------------
/attic/WinUI/ZeroTierIcon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zerotier/ZeroTierOne/226bb1d4ef0b93dbd1e467f952d23e0ff99e976b/attic/WinUI/ZeroTierIcon.ico


--------------------------------------------------------------------------------
/attic/WinUI/ZeroTierPeerPhysicalPath.cs:
--------------------------------------------------------------------------------
 1 | using System;
 2 | using System.Collections.Generic;
 3 | using System.Linq;
 4 | using System.Text;
 5 | using System.Threading.Tasks;
 6 | using Newtonsoft.Json;
 7 | 
 8 | namespace WinUI
 9 | {
10 |     public class ZeroTierPeerPhysicalPath
11 |     {
12 |         [JsonProperty("address")]
13 |         public string Address { get; set; }
14 | 
15 |         [JsonProperty("lastSend")]
16 |         public UInt64 LastSend { get; set; }
17 | 
18 |         [JsonProperty("lastReceive")]
19 |         public UInt64 LastReceive { get; set; }
20 | 
21 |         [JsonProperty("fixed")]
22 |         public bool Fixed { get; set; }
23 | 
24 |         [JsonProperty("preferred")]
25 |         public bool Preferred { get; set; }
26 |     }
27 | }
28 | 


--------------------------------------------------------------------------------
/attic/WinUI/packages.config:
--------------------------------------------------------------------------------
1 | <?xml version="1.0" encoding="utf-8"?>
2 | <packages>
3 |   <package id="Hardcodet.NotifyIcon.Wpf" version="1.0.8" targetFramework="net45" />
4 |   <package id="Newtonsoft.Json" version="9.0.1" targetFramework="net45" />
5 | </packages>


--------------------------------------------------------------------------------
/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/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/macui/ZeroTier One.xcodeproj/project.xcworkspace/contents.xcworkspacedata:
--------------------------------------------------------------------------------
1 | <?xml version="1.0" encoding="UTF-8"?>
2 | <Workspace
3 |    version = "1.0">
4 |    <FileRef
5 |       location = "self:ZeroTier One.xcodeproj">
6 |    </FileRef>
7 | </Workspace>
8 | 


--------------------------------------------------------------------------------
/attic/macui/ZeroTier One.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist:
--------------------------------------------------------------------------------
1 | <?xml version="1.0" encoding="UTF-8"?>
2 | <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
3 | <plist version="1.0">
4 | <dict>
5 | 	<key>IDEDidComputeMac32BitWarning</key>
6 | 	<true/>
7 | </dict>
8 | </plist>
9 | 


--------------------------------------------------------------------------------
/attic/macui/ZeroTier One/Assets.xcassets/AppIcon.appiconset/ZeroTierIcon512x512.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zerotier/ZeroTierOne/226bb1d4ef0b93dbd1e467f952d23e0ff99e976b/attic/macui/ZeroTier One/Assets.xcassets/AppIcon.appiconset/ZeroTierIcon512x512.png


--------------------------------------------------------------------------------
/attic/macui/ZeroTier One/Assets.xcassets/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 |   "info" : {
3 |     "version" : 1,
4 |     "author" : "xcode"
5 |   }
6 | }


--------------------------------------------------------------------------------
/attic/macui/ZeroTier One/Assets.xcassets/MenuBarIconMac.imageset/Contents.json:
--------------------------------------------------------------------------------
 1 | {
 2 |   "images" : [
 3 |     {
 4 |       "idiom" : "mac",
 5 |       "filename" : "Menubar.png",
 6 |       "scale" : "1x"
 7 |     },
 8 |     {
 9 |       "idiom" : "mac",
10 |       "filename" : "MenuBar@2x.png",
11 |       "scale" : "2x"
12 |     }
13 |   ],
14 |   "info" : {
15 |     "version" : 1,
16 |     "author" : "xcode"
17 |   },
18 |   "properties" : {
19 |     "template-rendering-intent" : "template"
20 |   }
21 | }


--------------------------------------------------------------------------------
/attic/macui/ZeroTier One/Assets.xcassets/MenuBarIconMac.imageset/MenuBar@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zerotier/ZeroTierOne/226bb1d4ef0b93dbd1e467f952d23e0ff99e976b/attic/macui/ZeroTier One/Assets.xcassets/MenuBarIconMac.imageset/MenuBar@2x.png


--------------------------------------------------------------------------------
/attic/macui/ZeroTier One/Assets.xcassets/MenuBarIconMac.imageset/Menubar.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zerotier/ZeroTierOne/226bb1d4ef0b93dbd1e467f952d23e0ff99e976b/attic/macui/ZeroTier One/Assets.xcassets/MenuBarIconMac.imageset/Menubar.png


--------------------------------------------------------------------------------
/attic/macui/ZeroTier One/Assets.xcassets/MenuBarIconMacWhite.imageset/Contents.json:
--------------------------------------------------------------------------------
 1 | {
 2 |   "images" : [
 3 |     {
 4 |       "idiom" : "mac",
 5 |       "filename" : "MenubarWhite.png",
 6 |       "scale" : "1x"
 7 |     },
 8 |     {
 9 |       "idiom" : "mac",
10 |       "filename" : "MenubarWhite@2x.png",
11 |       "scale" : "2x"
12 |     }
13 |   ],
14 |   "info" : {
15 |     "version" : 1,
16 |     "author" : "xcode"
17 |   },
18 |   "properties" : {
19 |     "template-rendering-intent" : "template"
20 |   }
21 | }


--------------------------------------------------------------------------------
/attic/macui/ZeroTier One/Assets.xcassets/MenuBarIconMacWhite.imageset/MenubarWhite.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zerotier/ZeroTierOne/226bb1d4ef0b93dbd1e467f952d23e0ff99e976b/attic/macui/ZeroTier One/Assets.xcassets/MenuBarIconMacWhite.imageset/MenubarWhite.png


--------------------------------------------------------------------------------
/attic/macui/ZeroTier One/Assets.xcassets/MenuBarIconMacWhite.imageset/MenubarWhite@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zerotier/ZeroTierOne/226bb1d4ef0b93dbd1e467f952d23e0ff99e976b/attic/macui/ZeroTier One/Assets.xcassets/MenuBarIconMacWhite.imageset/MenubarWhite@2x.png


--------------------------------------------------------------------------------
/attic/macui/ZeroTier One/ZeroTier One.entitlements:
--------------------------------------------------------------------------------
1 | <?xml version="1.0" encoding="UTF-8"?>
2 | <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
3 | <plist version="1.0">
4 | <dict/>
5 | </plist>
6 | 


--------------------------------------------------------------------------------
/attic/macui/ZeroTier One/ZeroTierIcon.icns:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zerotier/ZeroTierOne/226bb1d4ef0b93dbd1e467f952d23e0ff99e976b/attic/macui/ZeroTier One/ZeroTierIcon.icns


--------------------------------------------------------------------------------
/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/226bb1d4ef0b93dbd1e467f952d23e0ff99e976b/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 | 


--------------------------------------------------------------------------------
/controller/CtlUtil.hpp:
--------------------------------------------------------------------------------
 1 | #ifndef ZT_CTLUTIL_HPP
 2 | #define ZT_CTLUTIL_HPP
 3 | 
 4 | #include <string>
 5 | #include <vector>
 6 | 
 7 | namespace ZeroTier {
 8 | 
 9 | const char* _timestr();
10 | 
11 | std::vector<std::string> 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 <string>
 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 <adam.ierymenko@zerotier.com>
 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 <adam.ierymenko@zerotier.com>
 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 <adam.ierymenko@zerotier.com>"
 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/bin/tap-windows-ndis6/arm64/zttap300.cat:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zerotier/ZeroTierOne/226bb1d4ef0b93dbd1e467f952d23e0ff99e976b/ext/bin/tap-windows-ndis6/arm64/zttap300.cat


--------------------------------------------------------------------------------
/ext/bin/tap-windows-ndis6/arm64/zttap300.sys:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zerotier/ZeroTierOne/226bb1d4ef0b93dbd1e467f952d23e0ff99e976b/ext/bin/tap-windows-ndis6/arm64/zttap300.sys


--------------------------------------------------------------------------------
/ext/bin/tap-windows-ndis6/x64/zttap300.cat:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zerotier/ZeroTierOne/226bb1d4ef0b93dbd1e467f952d23e0ff99e976b/ext/bin/tap-windows-ndis6/x64/zttap300.cat


--------------------------------------------------------------------------------
/ext/bin/tap-windows-ndis6/x64/zttap300.sys:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zerotier/ZeroTierOne/226bb1d4ef0b93dbd1e467f952d23e0ff99e976b/ext/bin/tap-windows-ndis6/x64/zttap300.sys


--------------------------------------------------------------------------------
/ext/bin/tap-windows-ndis6/x86/zttap300.cat:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zerotier/ZeroTierOne/226bb1d4ef0b93dbd1e467f952d23e0ff99e976b/ext/bin/tap-windows-ndis6/x86/zttap300.cat


--------------------------------------------------------------------------------
/ext/bin/tap-windows-ndis6/x86/zttap300.sys:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zerotier/ZeroTierOne/226bb1d4ef0b93dbd1e467f952d23e0ff99e976b/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 <string.h>
 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 <adapters/qt.h>
 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/226bb1d4ef0b93dbd1e467f952d23e0ff99e976b/ext/hiredis-0.14.1/lib/centos8/libhiredis.a


--------------------------------------------------------------------------------
/ext/hiredis-0.14.1/lib/macos/libhiredis.a:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zerotier/ZeroTierOne/226bb1d4ef0b93dbd1e467f952d23e0ff99e976b/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/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/226bb1d4ef0b93dbd1e467f952d23e0ff99e976b/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/226bb1d4ef0b93dbd1e467f952d23e0ff99e976b/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 | <?xml version="1.0" encoding="UTF-8"?>
 2 | <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
 3 | <plist version="1.0">
 4 | <dict>
 5 | 	<key>Label</key>
 6 | 	<string>com.zerotier.one</string>
 7 | 	<key>UserName</key>
 8 | 	<string>root</string>
 9 | 	<key>ProgramArguments</key>
10 | 	<array>
11 | 		<string>/Library/Application Support/ZeroTier/One/launch.sh</string>
12 | 	</array>
13 | 	<key>WorkingDirectory</key>
14 | 	<string>/Library/Application Support/ZeroTier/One</string>
15 | 	<key>StandardOutPath</key>
16 | 	<string>/dev/null</string>
17 | 	<key>StandardErrorPath</key>
18 | 	<string>/dev/null</string>
19 | 	<key>KeepAlive</key>
20 | 	<true/>
21 | </dict>
22 | </plist>
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/226bb1d4ef0b93dbd1e467f952d23e0ff99e976b/ext/libnatpmp/msvc/libnatpmp.vcproj


--------------------------------------------------------------------------------
/ext/libnatpmp/msvc/natpmpc-static.vcproj:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zerotier/ZeroTierOne/226bb1d4ef0b93dbd1e467f952d23e0ff99e976b/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 <public port> <private port> <protocol> [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 
lt; $@
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 <charconv>
 3 | #include <iterator>
 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 <charconv>
 3 | #include <iterator>
 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 <utility>
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 <iostream>
 3 | #include <ranges>
 4 | #include <vector>
 5 | 
 6 | 
 7 | template<typename T>
 8 | concept Foo = std::ranges::input_range<T>;
 9 | 
10 | 
11 | template<Foo F> 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<int> 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 <cstdlib>
 3 | #include <cstring>
 4 | #include <stdexcept>
 5 | #include <typeinfo>
 6 | 
 7 | #include <cxxabi.h>
 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 <filesystem>
 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 <filesystem> header means that we have
 4 | // support for the basics of std::filesystem.  This check will succeed if
 5 | // either there is no <filesystem> 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 <iostream>
10 | 
11 | #if __has_include(<filesystem>)
12 | #  include <filesystem>
13 | #endif
14 | 
15 | 
16 | int main()
17 | {
18 | #if __has_include(<filesystem>)
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 <poll.h>
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 <span>
3 | 
4 | int main(int argc, char **argv)
5 | {
6 |   std::span<char *> args{argv, static_cast<std::size_t>(argc)};
7 |   return static_cast<int>(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 <cstring>
 6 | #include <type_traits>
 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 <cstring>
 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 <iostream>
 3 | #include <sstream>
 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 <chrono>
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/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 <pqxx/internal/callgate.hxx>
 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<connection>
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 <pqxx/internal/callgate.hxx>
 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<connection>
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 <pqxx/internal/callgate.hxx>
 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<connection>
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 <pqxx/internal/callgate.hxx>
 2 | 
 3 | #include "pqxx/connection.hxx"
 4 | 
 5 | namespace pqxx::internal::gate
 6 | {
 7 | class PQXX_PRIVATE connection_stream_from : callgate<connection>
 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 <pqxx/internal/callgate.hxx>
 2 | 
 3 | #include "pqxx/stream_to.hxx"
 4 | 
 5 | 
 6 | namespace pqxx::internal::gate
 7 | {
 8 | class PQXX_PRIVATE connection_stream_to : callgate<connection>
 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 <pqxx/internal/callgate.hxx>
 2 | 
 3 | namespace pqxx::internal::gate
 4 | {
 5 | class PQXX_PRIVATE errorhandler_connection : callgate<errorhandler>
 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/result-connection.hxx:
--------------------------------------------------------------------------------
 1 | #include <pqxx/internal/callgate.hxx>
 2 | 
 3 | namespace pqxx::internal::gate
 4 | {
 5 | class PQXX_PRIVATE result_connection : callgate<result const>
 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 <pqxx/internal/callgate.hxx>
 2 | 
 3 | namespace pqxx::internal::gate
 4 | {
 5 | class PQXX_PRIVATE result_creation : callgate<result const>
 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<std::string> 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 <pqxx/internal/callgate.hxx>
 2 | 
 3 | namespace pqxx::internal::gate
 4 | {
 5 | class PQXX_PRIVATE result_pipeline : callgate<result const>
 6 | {
 7 |   friend class pqxx::pipeline;
 8 | 
 9 |   result_pipeline(reference x) : super(x) {}
10 | 
11 |   std::shared_ptr<std::string const> 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 <pqxx/internal/callgate.hxx>
 2 | 
 3 | namespace pqxx::internal::gate
 4 | {
 5 | class PQXX_PRIVATE result_sql_cursor : callgate<result const>
 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 <pqxx/internal/callgate.hxx>
 2 | 
 3 | namespace pqxx::internal::gate
 4 | {
 5 | class PQXX_PRIVATE transaction_sql_cursor : callgate<transaction_base>
 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/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 <pqxx/params> instead.
2 | 
3 | #include "params.hxx"
4 | 


--------------------------------------------------------------------------------
/ext/libpqxx-7.7.3/include/pqxx/prepared_statement.hxx:
--------------------------------------------------------------------------------
1 | /// @deprecated Include @c <pqxx/params> 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 <pqxx/internal/callgate.hxx>
 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<connection>
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-sql_cursor.hxx:
--------------------------------------------------------------------------------
 1 | #include <pqxx/internal/callgate.hxx>
 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<connection>
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 <pqxx/internal/callgate.hxx>
 2 | 
 3 | #include "pqxx/connection.hxx"
 4 | 
 5 | namespace pqxx::internal::gate
 6 | {
 7 | class PQXX_PRIVATE connection_stream_from : callgate<connection>
 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 <pqxx/internal/callgate.hxx>
 2 | 
 3 | #include "pqxx/stream_to.hxx"
 4 | 
 5 | 
 6 | namespace pqxx::internal::gate
 7 | {
 8 | class PQXX_PRIVATE connection_stream_to : callgate<connection>
 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 <pqxx/internal/callgate.hxx>
 2 | 
 3 | namespace pqxx::internal::gate
 4 | {
 5 | class PQXX_PRIVATE errorhandler_connection : callgate<errorhandler>
 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 <pqxx/internal/callgate.hxx>
 2 | 
 3 | namespace pqxx::internal::gate
 4 | {
 5 | class PQXX_PRIVATE result_connection : callgate<result const>
 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 <pqxx/internal/callgate.hxx>
 2 | 
 3 | namespace pqxx::internal::gate
 4 | {
 5 | class PQXX_PRIVATE result_creation : callgate<result const>
 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<std::string> 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 <pqxx/internal/callgate.hxx>
 2 | 
 3 | namespace pqxx::internal::gate
 4 | {
 5 | class PQXX_PRIVATE result_pipeline : callgate<result const>
 6 | {
 7 |   friend class pqxx::pipeline;
 8 | 
 9 |   result_pipeline(reference x) : super(x) {}
10 | 
11 |   std::shared_ptr<std::string const> 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 <pqxx/internal/callgate.hxx>
 2 | 
 3 | namespace pqxx::internal::gate
 4 | {
 5 | class PQXX_PRIVATE result_sql_cursor : callgate<result const>
 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 <pqxx/internal/callgate.hxx>
 2 | 
 3 | namespace pqxx::internal::gate
 4 | {
 5 | class PQXX_PRIVATE transaction_sql_cursor : callgate<transaction_base>
 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 <pqxx/params> 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 <pqxx/params> 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/226bb1d4ef0b93dbd1e467f952d23e0ff99e976b/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 <pqxx/internal/callgate.hxx>
 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<connection>
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-sql_cursor.hxx:
--------------------------------------------------------------------------------
 1 | #include <pqxx/internal/callgate.hxx>
 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<connection>
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 <pqxx/internal/callgate.hxx>
 2 | 
 3 | #include "pqxx/connection.hxx"
 4 | 
 5 | namespace pqxx::internal::gate
 6 | {
 7 | class PQXX_PRIVATE connection_stream_from : callgate<connection>
 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 <pqxx/internal/callgate.hxx>
 2 | 
 3 | #include "pqxx/stream_to.hxx"
 4 | 
 5 | 
 6 | namespace pqxx::internal::gate
 7 | {
 8 | class PQXX_PRIVATE connection_stream_to : callgate<connection>
 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 <pqxx/internal/callgate.hxx>
 2 | 
 3 | namespace pqxx::internal::gate
 4 | {
 5 | class PQXX_PRIVATE errorhandler_connection : callgate<errorhandler>
 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 <pqxx/internal/callgate.hxx>
 2 | 
 3 | namespace pqxx::internal::gate
 4 | {
 5 | class PQXX_PRIVATE result_connection : callgate<result const>
 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 <pqxx/internal/callgate.hxx>
 2 | 
 3 | namespace pqxx::internal::gate
 4 | {
 5 | class PQXX_PRIVATE result_creation : callgate<result const>
 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<std::string> 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 <pqxx/internal/callgate.hxx>
 2 | 
 3 | namespace pqxx::internal::gate
 4 | {
 5 | class PQXX_PRIVATE result_pipeline : callgate<result const>
 6 | {
 7 |   friend class pqxx::pipeline;
 8 | 
 9 |   result_pipeline(reference x) : super(x) {}
10 | 
11 |   std::shared_ptr<std::string const> 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 <pqxx/internal/callgate.hxx>
 2 | 
 3 | namespace pqxx::internal::gate
 4 | {
 5 | class PQXX_PRIVATE result_sql_cursor : callgate<result const>
 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 <pqxx/internal/callgate.hxx>
 2 | 
 3 | namespace pqxx::internal::gate
 4 | {
 5 | class PQXX_PRIVATE transaction_sql_cursor : callgate<transaction_base>
 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 <pqxx/params> 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 <pqxx/params> 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/226bb1d4ef0b93dbd1e467f952d23e0ff99e976b/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 <iostream>
 2 | 
 3 | #include <pqxx/connection>
 4 | #include <pqxx/nontransaction>
 5 | #include <pqxx/transactor>
 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 <pqxx/transaction>
 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/test90.cxx:
--------------------------------------------------------------------------------
 1 | #include <pqxx/connection>
 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/test_cancel_query.cxx:
--------------------------------------------------------------------------------
 1 | #include <pqxx/pipeline>
 2 | #include <pqxx/transaction>
 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 <pqxx/transaction>
 2 | 
 3 | #include <pqxx/internal/wait.hxx>
 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<int>("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 <pqxx/transaction>
 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<int>(), 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 <pqxx/nontransaction>
 2 | #include <pqxx/subtransaction>
 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 <pqxx/util>
 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<int>};
12 |   PQXX_CHECK_LESS(std::size(i), 5u, "type_name<int> is suspiciously long.");
13 |   PQXX_CHECK_EQUAL(
14 |     i.substr(0, 1), "i", "type_name<int> 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 <pqxx/zview>
 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 <iostream>
 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/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/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 <stdlib.h>
 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 <stdint.h>
 2 | #include <stdlib.h>
 3 | #include <string.h>
 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/3rdpatry/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/226bb1d4ef0b93dbd1e467f952d23e0ff99e976b/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 <vector>
 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<MetricFamily>;
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 <stdint.h>
 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 <string>
 4 | #include <vector>
 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<ClientMetric> 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 <memory>
 4 | 
 5 | namespace prometheus {
 6 |   namespace simpleapi {
 7 | 
 8 |     std::shared_ptr<Registry> registry_ptr = std::make_shared<Registry>();
 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/226bb1d4ef0b93dbd1e467f952d23e0ff99e976b/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/226bb1d4ef0b93dbd1e467f952d23e0ff99e976b/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/226bb1d4ef0b93dbd1e467f952d23e0ff99e976b/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/226bb1d4ef0b93dbd1e467f952d23e0ff99e976b/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\<username>\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 <vector>
 8 | 
 9 | namespace ZeroTier {
10 | 
11 | class MacDNSHelper {
12 |   public:
13 | 	static void setDNS(uint64_t nwid, const char* domain, const std::vector<InetAddress>& servers);
14 | 	static void removeDNS(uint64_t nwid);
15 | 	static bool addIps4(uint64_t nwid, const MAC mac, const char* dev, const std::vector<InetAddress>& addrs);
16 | 	static bool addIps6(uint64_t nwid, const MAC mac, const char* dev, const std::vector<InetAddress>& 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 <cstdint>
 7 | #include <vector>
 8 | 
 9 | namespace ZeroTier {
10 | 
11 | class WinDNSHelper {
12 |   public:
13 | 	static void setDNS(uint64_t nwid, const char* domain, const std::vector<InetAddress>& servers);
14 | 	static void removeDNS(uint64_t nwid);
15 | 
16 |   private:
17 | 	static std::pair<bool, std::string> 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/226bb1d4ef0b93dbd1e467f952d23e0ff99e976b/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/226bb1d4ef0b93dbd1e467f952d23e0ff99e976b/pkg/asustor/zerotier/CONTROL/pre-install.sh


--------------------------------------------------------------------------------
/pkg/asustor/zerotier/CONTROL/pre-uninstall.sh:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zerotier/ZeroTierOne/226bb1d4ef0b93dbd1e467f952d23e0ff99e976b/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/226bb1d4ef0b93dbd1e467f952d23e0ff99e976b/pkg/qnap/zerotier/arm_64/.gitkeep


--------------------------------------------------------------------------------
/pkg/qnap/zerotier/arm_x09/.gitkeep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zerotier/ZeroTierOne/226bb1d4ef0b93dbd1e467f952d23e0ff99e976b/pkg/qnap/zerotier/arm_x09/.gitkeep


--------------------------------------------------------------------------------
/pkg/qnap/zerotier/arm_x10/.gitkeep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zerotier/ZeroTierOne/226bb1d4ef0b93dbd1e467f952d23e0ff99e976b/pkg/qnap/zerotier/arm_x10/.gitkeep


--------------------------------------------------------------------------------
/pkg/qnap/zerotier/arm_x12/.gitkeep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zerotier/ZeroTierOne/226bb1d4ef0b93dbd1e467f952d23e0ff99e976b/pkg/qnap/zerotier/arm_x12/.gitkeep


--------------------------------------------------------------------------------
/pkg/qnap/zerotier/arm_x19/.gitkeep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zerotier/ZeroTierOne/226bb1d4ef0b93dbd1e467f952d23e0ff99e976b/pkg/qnap/zerotier/arm_x19/.gitkeep


--------------------------------------------------------------------------------
/pkg/qnap/zerotier/arm_x31/.gitkeep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zerotier/ZeroTierOne/226bb1d4ef0b93dbd1e467f952d23e0ff99e976b/pkg/qnap/zerotier/arm_x31/.gitkeep


--------------------------------------------------------------------------------
/pkg/qnap/zerotier/arm_x41/.gitkeep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zerotier/ZeroTierOne/226bb1d4ef0b93dbd1e467f952d23e0ff99e976b/pkg/qnap/zerotier/arm_x41/.gitkeep


--------------------------------------------------------------------------------
/pkg/qnap/zerotier/config/.gitkeep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zerotier/ZeroTierOne/226bb1d4ef0b93dbd1e467f952d23e0ff99e976b/pkg/qnap/zerotier/config/.gitkeep


--------------------------------------------------------------------------------
/pkg/qnap/zerotier/icons/.gitkeep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zerotier/ZeroTierOne/226bb1d4ef0b93dbd1e467f952d23e0ff99e976b/pkg/qnap/zerotier/icons/.gitkeep


--------------------------------------------------------------------------------
/pkg/qnap/zerotier/icons/ZeroTier.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zerotier/ZeroTierOne/226bb1d4ef0b93dbd1e467f952d23e0ff99e976b/pkg/qnap/zerotier/icons/ZeroTier.gif


--------------------------------------------------------------------------------
/pkg/qnap/zerotier/icons/ZeroTier_80.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zerotier/ZeroTierOne/226bb1d4ef0b93dbd1e467f952d23e0ff99e976b/pkg/qnap/zerotier/icons/ZeroTier_80.gif


--------------------------------------------------------------------------------
/pkg/qnap/zerotier/icons/ZeroTier_gray.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zerotier/ZeroTierOne/226bb1d4ef0b93dbd1e467f952d23e0ff99e976b/pkg/qnap/zerotier/icons/ZeroTier_gray.gif


--------------------------------------------------------------------------------
/pkg/qnap/zerotier/shared/.gitkeep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zerotier/ZeroTierOne/226bb1d4ef0b93dbd1e467f952d23e0ff99e976b/pkg/qnap/zerotier/shared/.gitkeep


--------------------------------------------------------------------------------
/pkg/qnap/zerotier/shared/.qpkg_icon.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zerotier/ZeroTierOne/226bb1d4ef0b93dbd1e467f952d23e0ff99e976b/pkg/qnap/zerotier/shared/.qpkg_icon.gif


--------------------------------------------------------------------------------
/pkg/qnap/zerotier/shared/.qpkg_icon_80.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zerotier/ZeroTierOne/226bb1d4ef0b93dbd1e467f952d23e0ff99e976b/pkg/qnap/zerotier/shared/.qpkg_icon_80.gif


--------------------------------------------------------------------------------
/pkg/qnap/zerotier/shared/.qpkg_icon_gray.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zerotier/ZeroTierOne/226bb1d4ef0b93dbd1e467f952d23e0ff99e976b/pkg/qnap/zerotier/shared/.qpkg_icon_gray.gif


--------------------------------------------------------------------------------
/pkg/qnap/zerotier/x86/.gitkeep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zerotier/ZeroTierOne/226bb1d4ef0b93dbd1e467f952d23e0ff99e976b/pkg/qnap/zerotier/x86/.gitkeep


--------------------------------------------------------------------------------
/pkg/qnap/zerotier/x86_64/.gitkeep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zerotier/ZeroTierOne/226bb1d4ef0b93dbd1e467f952d23e0ff99e976b/pkg/qnap/zerotier/x86_64/.gitkeep


--------------------------------------------------------------------------------
/pkg/qnap/zerotier/x86_ce53xx/.gitkeep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zerotier/ZeroTierOne/226bb1d4ef0b93dbd1e467f952d23e0ff99e976b/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/226bb1d4ef0b93dbd1e467f952d23e0ff99e976b/pkg/synology/dsm6-pkg/PACKAGE_ICON.png


--------------------------------------------------------------------------------
/pkg/synology/dsm6-pkg/PACKAGE_ICON_256.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zerotier/ZeroTierOne/226bb1d4ef0b93dbd1e467f952d23e0ff99e976b/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/226bb1d4ef0b93dbd1e467f952d23e0ff99e976b/pkg/wd/zerotier/web/zerotier.png


--------------------------------------------------------------------------------
/pkg/wd/zerotier/zerotier.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zerotier/ZeroTierOne/226bb1d4ef0b93dbd1e467f952d23e0ff99e976b/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 <rules script>`.
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. <contact@zerotier.com>",
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/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 <docker_tag> <k8s_namespace>"
 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/226bb1d4ef0b93dbd1e467f952d23e0ff99e976b/windows/ZeroTierOne/ZeroTierOne.aps


--------------------------------------------------------------------------------
/windows/ZeroTierOne/ZeroTierOne.rc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zerotier/ZeroTierOne/226bb1d4ef0b93dbd1e467f952d23e0ff99e976b/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 <windows.h>
 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 <SDKDDKVer.h>
9 | 


--------------------------------------------------------------------------------
/windows/packages/.gitignore:
--------------------------------------------------------------------------------
1 | *
2 | !repositories.config
3 | !.gitignore


--------------------------------------------------------------------------------
/windows/packages/repositories.config:
--------------------------------------------------------------------------------
1 | <?xml version="1.0" encoding="utf-8"?>
2 | <repositories>
3 |   <repository path="..\WinUI\packages.config" />
4 | </repositories>


--------------------------------------------------------------------------------