Compare commits

...

1380 Commits
root ... 1.10.6

Author SHA1 Message Date
d831fd10d5 1.10.6 AIP for Windows. 2023-03-23 13:37:03 -04:00
57626f0900 1.10.6 2023-03-22 15:06:44 -04:00
b0aae380e9 Merge branch 'dev' of github.com:/zerotier/ZeroTierOne into dev 2023-03-21 15:30:01 -04:00
314099a267 fix binding temporary ipv6 addresses on macos (#1910)
The check code wasn't running.

I don't know why !defined(TARGET_OS_IOS) would exclude code on
desktop macOS. I did a quick search and changed it to defined(TARGET_OS_MAC).
Not 100% sure what the most correct solution there is.

You can verify the old and new versions with

`ifconfig | grep temporary`

plus

`zerotier-cli info -j` -> listeningOn
2023-03-21 15:25:01 -04:00
8c983046fc Merge branch 'dev' of github.com:/zerotier/ZeroTierOne into dev 2023-03-21 13:18:34 -04:00
ce9330e9bb Prevent path-learning loops (#1914)
* Prevent path-learning loops

* Only allow new overwrite if not bonded
2023-03-21 13:18:21 -04:00
f9941a035e Merge branch 'dev' of github.com:/zerotier/ZeroTierOne into dev 2023-03-10 11:45:35 -05:00
b2a981f353 1.10.5 (#1905)
* 1.10.5 bump

* 1.10.5 for Windows

* 1.10.5
2023-03-10 11:45:15 -05:00
534eaf6f12 1.10.5 bump 2023-03-10 11:10:22 -05:00
a372619fee Fix addIp being called with applied ips (#1897)
This was getting called outside of the check for existing ips
Because of the added ifdef and a brace getting moved to the
wrong place.

```
if (! n.tap()->addIp(*ip)) {
	fprintf(stderr, "ERROR: unable to add ip address %s" ZT_EOL_S, ip->toString(ipbuf));
}
WinFWHelper::newICMPRule(*ip, n.config().nwid);

```
2023-03-10 10:57:54 -05:00
12cdf39165 actual fix for ANDROID-56: crash inside newNetworkConfig
cast all arguments to varargs functions as good style
2023-03-09 06:51:29 -05:00
19c5343a0a Revert "temp fix for ANDROID-56: crash inside newNetworkConfig from too many args"
This reverts commit dd627cd7f4.
2023-03-09 06:51:29 -05:00
4a4c8f84d5 Merge branch 'dev' of http://git.int.zerotier.com/zerotier/ZeroTierOne into dev 2023-03-07 17:50:01 -05:00
f94208f493 Windows 1.10.4 Advanced Installer bump 2023-03-07 17:49:35 -05:00
f2cb9b36b2 Merge branch 'dev' 2023-03-07 16:51:02 -05:00
1c5897895b 1.10.4 merge into main (#1893)
* add note about forceTcpRelay

* Create a sample systemd unit for tcp proxy

* set gitattributes for rust & cargo so hashes dont conflict on Windows

* Revert "set gitattributes for rust & cargo so hashes dont conflict on Windows"

This reverts commit 032dc5c108.

* Turn off autocrlf for rust source

Doesn't appear to play nice well when it comes to git and vendored cargo package hashes

* Fix #1883 (#1886)

Still unknown as to why, but the call to `nc->GetProperties()` can fail
when setting a friendly name on the Windows virtual ethernet adapter.
Ensure that `ncp` is not null before continuing and accessing the device
GUID.

* Don't vendor packages for zeroidc (#1885)

* Added docker environment way to join networks (#1871)

* add StringUtils

* fix headers
use recommended headers and remove unused headers

* move extern "C"
only JNI functions need to be exported

* cleanup

* fix ANDROID-50: RESULT_ERROR_BAD_PARAMETER typo

* fix typo in log message

* fix typos in JNI method signatures

* fix typo

* fix ANDROID-51: fieldName is uninitialized

* fix ANDROID-35: memory leak

* fix missing DeleteLocalRef in loops

* update to use unique error codes

* add GETENV macro

* add LOG_TAG defines

* ANDROID-48: add ZT_jnicache.cpp

* ANDROID-48: use ZT_jnicache.cpp and remove ZT_jnilookup.cpp and ZT_jniarray.cpp

* add Event.fromInt

* add PeerRole.fromInt

* add ResultCode.fromInt

* fix ANDROID-36: issues with ResultCode

* add VirtualNetworkConfigOperation.fromInt

* fix ANDROID-40: VirtualNetworkConfigOperation out-of-sync with ZT_VirtualNetworkConfigOperation enum

* add VirtualNetworkStatus.fromInt

* fix ANDROID-37: VirtualNetworkStatus out-of-sync with ZT_VirtualNetworkStatus enum

* add VirtualNetworkType.fromInt

* make NodeStatus a plain data class

* fix ANDROID-52: synchronization bug with nodeMap

* Node init work: separate Node construction and init

* add Node.toString

* make PeerPhysicalPath a plain data class

* remove unused PeerPhysicalPath.fixed

* add array functions

* make Peer a plain data class

* make Version a plain data class

* fix ANDROID-42: copy/paste error

* fix ANDROID-49: VirtualNetworkConfig.equals is wrong

* reimplement VirtualNetworkConfig.equals

* reimplement VirtualNetworkConfig.compareTo

* add VirtualNetworkConfig.hashCode

* make VirtualNetworkConfig a plain data class

* remove unused VirtualNetworkConfig.enabled

* reimplement VirtualNetworkDNS.equals

* add VirtualNetworkDNS.hashCode

* make VirtualNetworkDNS a plain data class

* reimplement VirtualNetworkRoute.equals

* reimplement VirtualNetworkRoute.compareTo

* reimplement VirtualNetworkRoute.toString

* add VirtualNetworkRoute.hashCode

* make VirtualNetworkRoute a plain data class

* add isSocketAddressEmpty

* add addressPort

* add fromSocketAddressObject

* invert logic in a couple of places and return early

* newInetAddress and newInetSocketAddress work
allow newInetSocketAddress to return NULL if given empty address

* fix ANDROID-38: stack corruption in onSendPacketRequested

* use GETENV macro

* JniRef work
JniRef does not use callbacks struct, so remove
fix NewGlobalRef / DeleteGlobalRef mismatch

* use PRId64 macros

* switch statement work

* comments and logging

* Modifier 'public' is redundant for interface members

* NodeException can be made a checked Exception

* 'NodeException' does not define a 'serialVersionUID' field

* 'finalize()' should not be overridden
this is fine to do because ZeroTierOneService calls close() when it is done

* error handling, error reporting, asserts, logging

* simplify loadLibrary

* rename Node.networks -> Node.networkConfigs

* Windows file permissions fix (#1887)

* Allow macOS interfaces to use multiple IP addresses (#1879)

Co-authored-by: Sean OMeara <someara@users.noreply.github.com>
Co-authored-by: Grant Limberg <glimberg@users.noreply.github.com>

* Fix condition where full HELLOs might not be sent when necessary (#1877)

Co-authored-by: Grant Limberg <glimberg@users.noreply.github.com>

* 1.10.4 version bumps

* Add security policy to repo (#1889)

* [+] add e2k64 arch (#1890)

* temp fix for ANDROID-56: crash inside newNetworkConfig from too many args

* 1.10.4 release notes

---------

Co-authored-by: travis laduke <travisladuke@gmail.com>
Co-authored-by: Grant Limberg <grant.limberg@zerotier.com>
Co-authored-by: Grant Limberg <glimberg@users.noreply.github.com>
Co-authored-by: Leonardo Amaral <leleobhz@users.noreply.github.com>
Co-authored-by: Brenton Bostick <bostick@gmail.com>
Co-authored-by: Sean OMeara <someara@users.noreply.github.com>
Co-authored-by: Joseph Henry <joseph-henry@users.noreply.github.com>
Co-authored-by: Roman Peshkichev <roman.peshkichev@gmail.com>
2023-03-07 16:50:34 -05:00
64423f3a09 Merge branch 'dev' of github.com:/zerotier/ZeroTierOne into dev 2023-03-07 16:47:30 -05:00
9fb3f04385 1.10.4 release notes 2023-03-07 16:46:47 -05:00
dd627cd7f4 temp fix for ANDROID-56: crash inside newNetworkConfig from too many args 2023-03-07 14:16:44 -06:00
eedf270127 [+] add e2k64 arch (#1890) 2023-03-07 08:25:08 +01:00
a1af94f4e9 Add security policy to repo (#1889) 2023-03-07 07:12:29 +01:00
9f5bf06f95 1.10.4 version bumps 2023-03-06 13:26:47 -05:00
40705caf7e Fix condition where full HELLOs might not be sent when necessary (#1877)
Co-authored-by: Grant Limberg <glimberg@users.noreply.github.com>
2023-03-06 13:24:34 -05:00
9d5b9efc2f Allow macOS interfaces to use multiple IP addresses (#1879)
Co-authored-by: Sean OMeara <someara@users.noreply.github.com>
Co-authored-by: Grant Limberg <glimberg@users.noreply.github.com>
2023-03-06 13:21:58 -05:00
cc4251c5b7 Windows file permissions fix (#1887) 2023-03-04 09:43:00 +01:00
8d74d34f2a rename Node.networks -> Node.networkConfigs 2023-03-02 07:19:49 -06:00
7f996ea6d5 simplify loadLibrary 2023-03-02 07:19:49 -06:00
0aa4a4ba7a error handling, error reporting, asserts, logging 2023-03-02 07:19:49 -06:00
1ab36d891c 'finalize()' should not be overridden
this is fine to do because ZeroTierOneService calls close() when it is done
2023-03-02 07:19:49 -06:00
5b5625a6f0 'NodeException' does not define a 'serialVersionUID' field 2023-03-02 07:19:49 -06:00
33a9cd02ba NodeException can be made a checked Exception 2023-03-02 07:19:49 -06:00
ca73651e12 Modifier 'public' is redundant for interface members 2023-03-02 07:19:49 -06:00
fbd834716f comments and logging 2023-03-02 07:19:49 -06:00
914b4fae7b switch statement work 2023-03-02 07:19:49 -06:00
a1bf139188 use PRId64 macros 2023-03-02 07:19:49 -06:00
a2f753986b JniRef work
JniRef does not use callbacks struct, so remove
fix NewGlobalRef / DeleteGlobalRef mismatch
2023-03-02 07:19:49 -06:00
d28f44335a use GETENV macro 2023-03-02 07:19:49 -06:00
0a925a6f21 fix ANDROID-38: stack corruption in onSendPacketRequested 2023-03-02 07:19:49 -06:00
132bff25df newInetAddress and newInetSocketAddress work
allow newInetSocketAddress to return NULL if given empty address
2023-03-02 07:19:49 -06:00
e1c16a8e68 invert logic in a couple of places and return early 2023-03-02 07:19:49 -06:00
4ee73fa272 add fromSocketAddressObject 2023-03-02 07:19:49 -06:00
30cfe65b39 add addressPort 2023-03-02 07:19:49 -06:00
40d5f9b5d2 add isSocketAddressEmpty 2023-03-02 07:19:49 -06:00
809022b273 make VirtualNetworkRoute a plain data class 2023-03-02 07:19:49 -06:00
d0c0585553 add VirtualNetworkRoute.hashCode 2023-03-02 07:19:49 -06:00
d60929514b reimplement VirtualNetworkRoute.toString 2023-03-02 07:19:49 -06:00
920e1f56c2 reimplement VirtualNetworkRoute.compareTo 2023-03-02 07:19:49 -06:00
86122e1646 reimplement VirtualNetworkRoute.equals 2023-03-02 07:19:49 -06:00
f9a27d6778 make VirtualNetworkDNS a plain data class 2023-03-02 07:19:49 -06:00
8b0be5c1fc add VirtualNetworkDNS.hashCode 2023-03-02 07:19:49 -06:00
686561dc5b reimplement VirtualNetworkDNS.equals 2023-03-02 07:19:49 -06:00
b8b8e58586 remove unused VirtualNetworkConfig.enabled 2023-03-02 07:19:49 -06:00
54fd7c7e9a make VirtualNetworkConfig a plain data class 2023-03-02 07:19:49 -06:00
e060ae3176 add VirtualNetworkConfig.hashCode 2023-03-02 07:19:49 -06:00
7392a32cd8 reimplement VirtualNetworkConfig.compareTo 2023-03-02 07:19:49 -06:00
8b724493cc reimplement VirtualNetworkConfig.equals 2023-03-02 07:19:49 -06:00
9cb16accfd fix ANDROID-49: VirtualNetworkConfig.equals is wrong 2023-03-02 07:19:49 -06:00
d5944ae69c fix ANDROID-42: copy/paste error 2023-03-02 07:19:49 -06:00
6102c70855 make Version a plain data class 2023-03-02 07:19:49 -06:00
6cc055dbba make Peer a plain data class 2023-03-02 07:19:49 -06:00
f51ce077a3 add array functions 2023-03-02 07:19:49 -06:00
2de4c95446 remove unused PeerPhysicalPath.fixed 2023-03-02 07:19:49 -06:00
63f70ba465 make PeerPhysicalPath a plain data class 2023-03-02 07:19:49 -06:00
7ef68a9d6a add Node.toString 2023-03-02 07:19:49 -06:00
90bf300bd8 Node init work: separate Node construction and init 2023-03-02 07:19:49 -06:00
f9528f1248 fix ANDROID-52: synchronization bug with nodeMap 2023-03-02 07:19:49 -06:00
4861ec5a40 make NodeStatus a plain data class 2023-03-02 07:19:49 -06:00
acf5b3579b add VirtualNetworkType.fromInt 2023-03-02 07:19:49 -06:00
d1460ab65b fix ANDROID-37: VirtualNetworkStatus out-of-sync with ZT_VirtualNetworkStatus enum 2023-03-02 07:19:49 -06:00
85bd773c55 add VirtualNetworkStatus.fromInt 2023-03-02 07:19:49 -06:00
ed3918b508 fix ANDROID-40: VirtualNetworkConfigOperation out-of-sync with ZT_VirtualNetworkConfigOperation enum 2023-03-02 07:19:49 -06:00
7c2766096c add VirtualNetworkConfigOperation.fromInt 2023-03-02 07:19:49 -06:00
acd8b95114 fix ANDROID-36: issues with ResultCode 2023-03-02 07:19:49 -06:00
34ff813e2a add ResultCode.fromInt 2023-03-02 07:19:49 -06:00
056cef7292 add PeerRole.fromInt 2023-03-02 07:19:49 -06:00
7c5f256d4a add Event.fromInt 2023-03-02 07:19:49 -06:00
82749e4442 ANDROID-48: use ZT_jnicache.cpp and remove ZT_jnilookup.cpp and ZT_jniarray.cpp 2023-03-02 07:19:49 -06:00
7890185e81 ANDROID-48: add ZT_jnicache.cpp 2023-03-02 07:19:49 -06:00
71fc0dd097 add LOG_TAG defines 2023-03-02 07:19:49 -06:00
8373a0fa60 add GETENV macro 2023-03-02 07:19:49 -06:00
21264baaae update to use unique error codes 2023-03-02 07:19:49 -06:00
703f9290c9 fix missing DeleteLocalRef in loops 2023-03-02 07:19:49 -06:00
dd1b52c7d9 fix ANDROID-35: memory leak 2023-03-02 07:19:49 -06:00
01003617cd fix ANDROID-51: fieldName is uninitialized 2023-03-02 07:19:49 -06:00
bfe4bc2894 fix typo 2023-03-02 07:19:49 -06:00
1c88037ea0 fix typos in JNI method signatures 2023-03-02 07:19:49 -06:00
0027e6bdab fix typo in log message 2023-03-02 07:19:49 -06:00
87edbb2d3a fix ANDROID-50: RESULT_ERROR_BAD_PARAMETER typo 2023-03-02 07:19:49 -06:00
5be92a96df cleanup 2023-03-02 07:19:49 -06:00
0733af5239 move extern "C"
only JNI functions need to be exported
2023-03-02 07:19:49 -06:00
216ed8c8ea fix headers
use recommended headers and remove unused headers
2023-03-02 07:19:49 -06:00
58e3b8c5ad add StringUtils 2023-03-02 07:19:49 -06:00
c6adfd9d67 Added docker environment way to join networks (#1871) 2023-03-02 11:18:11 +01:00
672c58be01 Don't vendor packages for zeroidc (#1885) 2023-03-02 09:11:37 +01:00
6cf3b65953 Fix #1883 (#1886)
Still unknown as to why, but the call to `nc->GetProperties()` can fail
when setting a friendly name on the Windows virtual ethernet adapter.
Ensure that `ncp` is not null before continuing and accessing the device
GUID.
2023-03-01 18:00:59 -08:00
936dda4773 Turn off autocrlf for rust source
Doesn't appear to play nice well when it comes to git and vendored cargo package hashes
2023-03-01 15:08:34 -08:00
047e327f01 Revert "set gitattributes for rust & cargo so hashes dont conflict on Windows"
This reverts commit 032dc5c108.
2023-03-01 14:27:19 -08:00
032dc5c108 set gitattributes for rust & cargo so hashes dont conflict on Windows 2023-03-01 14:16:51 -08:00
dc54e0e1c4 Create a sample systemd unit for tcp proxy 2023-02-23 11:52:21 -08:00
9124b0a7a3 Merge branch 'main' into dev 2023-02-22 17:10:34 -08:00
dea47f601d more info on exception 2023-02-22 16:13:05 -08:00
67cf4c42d5 add note about forceTcpRelay 2023-02-21 09:15:18 -08:00
dc762196dc 1.10.3 (#1875)
Version bumps and other release stuff to ship 1.10.3
2023-02-15 14:04:42 -05:00
0a900dc275 Add date to release notes
Add date
2023-02-15 14:04:02 -05:00
6f58510431 Update release notes (#1874) 2023-02-15 14:03:13 -05:00
666fb7ea2d eliminated duplicate paths (#1870) 2023-02-06 11:50:05 -08:00
f0778860e5 Bump tokio from 1.24.1 to 1.24.2 in /zeroidc (#1869)
* Bump tokio from 1.24.1 to 1.24.2 in /zeroidc

Bumps [tokio](https://github.com/tokio-rs/tokio) from 1.24.1 to 1.24.2.
- [Release notes](https://github.com/tokio-rs/tokio/releases)
- [Commits](https://github.com/tokio-rs/tokio/commits)

---
updated-dependencies:
- dependency-name: tokio
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>

* vendor tokio update

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Grant Limberg <grant.limberg@zerotier.com>
2023-02-06 10:52:52 -08:00
6aea546d6f Bump bumpalo from 3.10.0 to 3.12.0 in /zeroidc (#1857)
* Bump bumpalo from 3.10.0 to 3.12.0 in /zeroidc

Bumps [bumpalo](https://github.com/fitzgen/bumpalo) from 3.10.0 to 3.12.0.
- [Release notes](https://github.com/fitzgen/bumpalo/releases)
- [Changelog](https://github.com/fitzgen/bumpalo/blob/main/CHANGELOG.md)
- [Commits](https://github.com/fitzgen/bumpalo/compare/3.10.0...3.12.0)

---
updated-dependencies:
- dependency-name: bumpalo
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>

* vendor bumpalo update to fix dependabot

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Grant Limberg <grant.limberg@zerotier.com>
2023-01-30 09:03:01 -08:00
e0a3291235 Fix setMtu() on Linux. Add error checking (#1860)
* Fix setMtu() on Linux. Add error checking

* Slightly tweak ioctl MTU error message
2023-01-26 10:26:12 -08:00
b88d7091c8 Simplify dump command. Fix bond list command 2023-01-20 13:54:04 -08:00
zwf
15cfa3bf62 exclude static route with via ip in route helper (#1791)
When adding Routes to zerotier's Managed Routes, the helper will
add a route rule to the device that does not have a via ip,
so that the address of the Destination segment cannot be routed
correctly within the container.
Here, based on the contents of the routes key in
`zerotier-cli -j listnetworks`,
by determining whether the via key has an ip address,
if it is not null, helper will no longer add route rules.
2023-01-20 11:57:13 -08:00
9c9d1650d1 Check for ARM Cryptography Extension support
ARM Cryptography Extension is optional and not all ARM CPUs support it.
For example, the CPU in Raspberry Pi 4 does not support it.

Check for `__ARM_FEATURE_CRYPTO` before attempting to use the optional
extension.

`__ARM_FEATURE_CRYPTO` is defined by both clang and gcc when the target
has the cryptography extension.

Fixes #1854.
2023-01-20 09:29:09 +01:00
0ae09577f6 Client & Central Controller updates to support additonal OIDC features (#1848)
Client side:
* Fix compatibility with OneLogin
* Requested scopes vary by OIDC provider. Different providers have different

Controller side:
*Update Postgres queries to latest Central schema
* Added Central Controller support for the different providers
* Base OIDC provider details are still attached to an org. Client ID & group/email lists are now associated with individual networks.
2023-01-19 15:39:15 -08:00
a59f82093a Fix Possible misuse of comma operator here (#1851)
Xcode warns about "Possible misuse of comma operator here".
Comma is a sequencing operator in C++ and original code does work, but
is highly non-idiomatic.
2023-01-17 12:38:10 -05:00
be95b56c10 fix typos (#1846) 2023-01-13 10:14:57 -05:00
ea0f7dde95 removing pull_request builds from workflow 2023-01-13 14:15:02 +01:00
a59626c971 Bump zeroidc dependencies (#1847)
openidconnect -> 2.5
base64 -> 0.21
url -> 2.3
bytes -> 1.3
2023-01-12 13:24:58 -08:00
67a7534c21 cargo update tokio >= 1.24 (#1842) 2023-01-12 12:41:29 -08:00
39f3f5b2d9 User-configurable physical MTU for individual links
This patch allows users to specify the physical layer MTU for individual links
when in multipath mode. For example:

{
  "settings":
  {
    "defaultBondingPolicy": "custom-balance-xor",
    "policies":
    {
      "custom-balance-xor":
      {
        "basePolicy": "balance-xor",
        "failoverInterval": 5000,
        "links": {
          "weird_5g_link": { "mtu": 1300 },
          "enp5s0": { "mtu": 1400  }
        }
      }
    }
  }
}
2023-01-12 07:12:19 +01:00
eccc31a4b9 Add forced TCP relay mode
This patch implements a "TUNNELED" status indicator and "forceTcpRelay" setting for custom relays via local.conf.

For example:

{
  "settings":
  {
    "tcpFallbackRelay": "6.79.53.215/443",
    "forceTcpRelay":true
  }
}
2023-01-12 07:12:19 +01:00
d31f238be0 fix typos (#1843) 2023-01-11 19:42:30 +01:00
27c26a77a2 running build workflow on pull_requests 2023-01-07 21:28:12 +01:00
ab503902c8 Merge pull request #1825 from zerotier/windows-allow-ping
enable ICMPv4 in windows firewall
2023-01-04 11:49:26 -05:00
ed53b62f1b Merge pull request #1827 from zerotier/default-route-mac2
Prevent shadowing VM routes as default route (macOS)
2023-01-04 11:48:54 -05:00
ad5ba54cd4 Merge pull request #1820 from zerotier/dev-low-bandwidth
Low Bandwidth Mode (for IoT)
2023-01-04 11:48:15 -05:00
a6742b7f82 Prevent shadowing VM routes as default route (macOS)
If you have a VM host like parallels, sometimes you get these link-local
default routes:

```
netstat -nrfinet | grep "default\|\/1"
0/1                10.2.0.12          UGScg        feth4823
default            192.168.82.1       UGScg             en1
0/1                192.168.82.1       UGScIg            en1
default            link#22            UCSIg       bridge101      !
128.0/1            10.2.0.12          UGSc         feth4823
128.0/1            192.168.82.1       UGScI             en1
```

(the link#22 one)

The _getRTEs function inclused these routes in the list it makes as like:

device: bridge101, target: 0.0.0.0/0

If it happens to be first in the list, bridge101 gets
selected as the default route.

Then Full Tunnel Mode doesn't work.

The other routes in the list are like:
device: en1 target: 192.168.1.0/24 via:  metric: 0 ifscope: 0
device: en1 target: 192.168.1.1/32 via:  metric: 0 ifscope: 0

We only need the device name from this, so either one will work.
2022-12-23 16:18:00 -08:00
91bae4b1a8 Add missing default initialization of _lowBandwidthMode 2022-12-22 10:08:02 -08:00
4959d8079b enable ICMP in windows firewall 2022-12-21 15:38:46 -08:00
a558bd9312 cache cago on github actions (#1819) 2022-12-14 19:10:08 +01:00
3e41163bbe fixing windows github builds (#1818) 2022-12-14 11:52:30 +01:00
10170b41c3 Revert "Improve default route on macOS (#1680)"
This reverts commit 117d7194af.
2022-12-13 18:32:07 +01:00
e0e91e8397 disabling windows builds 2022-12-13 17:20:52 +01:00
d2de0292cc mac and windows github builds (#1817) 2022-12-13 16:49:08 +01:00
0210ba9c13 enabling mac and windows github builds 2022-12-13 16:16:17 +01:00
117d7194af Improve default route on macOS (#1680)
re: issue #1088
and probably: https://discuss.zerotier.com/t/default-route-issue-osx-monterey-m1/6974

// current zerotier.
// allow default adds two sets of routes.
```
netstat -rnfinet | grep "/1\|default" | sort
0/1                10.2.0.2           UGScg        feth4823
0/1                192.168.82.1       UGScIg            en7
128.0/1            10.2.0.2           UGSc         feth4823
128.0/1            192.168.82.1       UGScI             en7
default            192.168.82.1       UGScg             en7
```

Then, something chaotic happens eventually, and networking stops working.

// after patch
```
netstat -rnfinet | grep "/1\|default" | sort
0/1                10.2.0.2           UGScg        feth4823
128.0/1            10.2.0.2           UGSc         feth4823
default            192.168.82.1       UGScg             en7
```

After the change, I can still:
- use default route
- route to other subnets

I tested on high sierra through monterey
and on freebsd13.1
2022-12-13 11:52:21 +01:00
7587ef5136 basic builds on github (#1815)
Initial Github Actions build
2022-12-12 09:44:31 +01:00
087a797257 Merge pull request #1808 from zerotier/dev-tcp-proxy
Dig tcp-proxy out of the git history
2022-12-07 09:40:42 -08:00
a02f42188c Merge pull request #1811 from zerotier/cleanup/typos
Cleanup/typos
2022-12-07 08:33:12 -08:00
98e0bf22d3 fix actual typo in config key code 2022-12-07 10:23:11 -05:00
1e2ff042b4 fix typos in docs, comments, and strings 2022-12-07 10:17:53 -05:00
b8eb9196e8 update tcp-relay README 2022-12-06 11:49:12 -08:00
db1df58955 resurrect tcp proxy 2022-12-06 11:49:12 -08:00
2f5dc10399 Fix syntax error (#1806)
Similar previous fix:
668ab8b85c
2022-12-05 13:33:00 -08:00
4100615cd6 Merge branch 'dev' into dev-low-bandwidth 2022-12-05 13:26:57 -08:00
e27c3edaba Merge branch 'dev' into dev-low-bandwidth 2022-12-05 13:23:04 -08:00
3c9ea2b667 Add low-bandwidth mode 2022-12-05 13:21:05 -08:00
065f42af1d Merge pull request #1807 from zerotier/cleanup/typos
fix typos
2022-12-05 08:34:53 -08:00
1d503f45ad Merge pull request #1805 from zerotier/update/bad-file-descriptor
Update/bad file descriptor
2022-12-05 08:33:12 -08:00
5b5f9a069a fix typos 2022-12-05 11:29:21 -05:00
77c7f9133f Migrate from ndk-build to CMake 2022-12-05 10:34:12 -05:00
475281935e Remove unused flags for arm64-v8a
Through using ndk-build, -Wno-unused-command-line-argument is passed in
somewhere in the pipeline and hides this warning.

The warning can be turned on with:
APP_CPPFLAGS := -Wunused-command-line-argument ...

and then when building, you can see:
C/C++: clang++: warning: argument unused during compilation: '-mfloat-abi=softfp' [-Wunused-command-line-argument]
C/C++: clang++: warning: argument unused during compilation: '-mfpu=neon' [-Wunused-command-line-argument]
C/C++: clang++: warning: argument unused during compilation: '-maes' [-Wunused-command-line-argument]

These are unused because both floating-point and NEON are required in
all standard ARMv8 implementations. [1] [2]

[1] https://developer.arm.com/documentation/den0024/a/AArch64-Floating-point-and-NEON

[2] https://stackoverflow.com/a/29891469
2022-12-05 10:34:12 -05:00
cdf248b1e2 Fix build problem related to unified headers
Since NDKr15 (released 2017), unified headers are used by default [1]

Remove -isystem option that was passing bad values to command-line.

The actual value being passed to command-line was:
```
-isystem DK/sysroot/usr/include/RIPLE
```

because of using $NDK and $TRIPLE instead of $(NDK) and $(TRIPLE)

But regardless, $NDK and $TRIPLE were never actually defined values and were just
place-holders mentioned in [1]

[1] https://android.googlesource.com/platform/ndk/+/ndk-release-r16/docs/UnifiedHeaders.md
2022-12-05 10:34:12 -05:00
85c0322313 Fix TCP relay setting 2022-12-01 15:12:54 -08:00
ebc1ed4015 Hide warning about readdir_r for now. 2022-12-01 11:07:20 -05:00
a25da7f771 Merge pull request #1799 from zerotier/cleanup/suggest-braces
Fix warning: suggest braces around initialization of subobject
2022-12-01 11:03:26 -05:00
c78f103ca6 Merge pull request #1800 from zerotier/cleanup/printf-z
Fix several warning: format specifies type 'XXX' but the argument has…
2022-12-01 11:03:11 -05:00
4d50ed0b9d Fix several warning: format specifies type 'XXX' but the argument has type 'YYY'
Use %z for printing size_t and PRId64 etc. macros for printing
platform-specific widths, and remove now-redundant casts
2022-12-01 08:42:06 -05:00
9ac2cfe611 Fix warning: suggest braces around initialization of subobject 2022-12-01 08:35:31 -05:00
85da0b419c drone config 2022-11-30 11:01:02 +01:00
3ddaa60de9 prevent: warning: unused variable 'gotViaProc' (#1797) 2022-11-29 17:55:33 +01:00
25641d956e Merge pull request #1795 from zerotier/bugfix/typos
Bugfix/typos
2022-11-28 08:58:27 -08:00
3b8c33d49a fix typos in code 2022-11-28 09:23:58 -05:00
f74a594e98 fix typos in comments and strings 2022-11-28 09:23:45 -05:00
668ab8b85c fixing Makefile for armv6k (#1790) 2022-11-19 22:59:55 +01:00
98b190c626 Minor adjustment to packaging README 2022-11-14 15:25:50 -08:00
9568a4f2b4 netinet6/in6_var.h not available in iOS 2022-11-10 11:35:34 -08:00
b41e0910b0 Fun times in ~~cleveland~~ NDK-land 2022-11-09 11:11:10 -08:00
6448189d20 Update snap upload target 2022-11-09 08:52:55 -08:00
1694d510ec Update snap build target 2022-11-08 16:50:42 -08:00
af7ccff846 Merge branch 'dev' of github.com:/zerotier/ZeroTierOne into dev 2022-11-04 11:15:13 -04:00
381460fd97 Merge pull request #1736 from visuve/dev
Fix service installation MAX_PATH bug on Windows
2022-11-04 11:14:49 -04:00
b02a41751c Fix unresponsiveness when moving flows in balance-aware (See #1764) 2022-11-02 08:46:11 -07:00
e0acccc3c9 release notes 2022-11-01 16:08:52 -04:00
bcf27d78e5 Merge branch 'dev' of http://10.95.0.64/zerotier/ZeroTierOne into dev 2022-11-01 15:56:44 -04:00
ad54d0ed52 1.10.2 bump in Advanced Installer 2022-11-01 15:56:36 -04:00
880a99adf8 Minor edits to comments 2022-10-25 14:17:23 -07:00
3b11915eab Merge remote-tracking branch 'origin/expose-surface-addresses' into dev 2022-10-25 13:55:21 -07:00
82c799b9d1 Expose surface addresses in info json
Surface Addresses are the addresses that
the roots report back to you.

This is helpful for trouble shooting.

If you're behind NAT, the source port is different
than what zerotier is bound to.
If the list of surface address ports is larger than the list of
bound addresses, you are probably behind symmetric NAT.

Anways this can be added to later with a more simple
"easy" or "hard" nat computed message somewhere.
2022-10-25 11:25:21 -07:00
99c0ca621b 1.10.2 bump 2022-10-13 09:01:14 -04:00
e1f60e3f83 Behavioral changes to multipath balance modes (See: #1745 and #1753) 2022-10-09 23:07:16 -07:00
5a6c229b27 Merge branch 'dev' of github.com:/zerotier/ZeroTierOne into dev 2022-10-06 16:54:00 -04:00
86a436e9bf Small string fix. 2022-10-06 16:53:35 -04:00
7516fd03a3 central controller docker image updates 2022-10-06 09:00:55 -07:00
9826c20d1a set zeroidc.running = false on token exchange error 2022-10-06 09:00:51 -07:00
12392b5190 adding amzn2022 to rpm spec (#1761) 2022-10-02 09:58:23 +02:00
4e57abb159 Revert "modify sso queries for schema change"
This reverts commit 8b67d06272.
2022-09-28 13:26:41 -07:00
2b1ba60f24 Optimize member load query for Central controllers 2022-09-28 13:10:34 -07:00
638c868a07 Revert "query update for sso"
This reverts commit 3c343eb775.
2022-09-28 13:04:08 -07:00
b909330518 Revert "bump min db version"
This reverts commit 802072ec17.
2022-09-28 13:03:41 -07:00
802072ec17 bump min db version 2022-09-27 14:21:20 -07:00
3c343eb775 query update for sso 2022-09-27 13:41:52 -07:00
8b67d06272 modify sso queries for schema change 2022-09-21 14:29:47 -07:00
bc521504ca Improved multipath link monitoring 2022-09-20 14:27:34 -07:00
0797adf223 Improve output of bond list command 2022-09-16 13:43:34 -07:00
718039561e Merge branch 'grapexy-dev-1734-policy-defaults' into dev 2022-09-15 16:06:00 -07:00
85698860ae Merge branch 'dev-1734-policy-defaults' of https://github.com/grapexy/ZeroTierOne into grapexy-dev-1734-policy-defaults 2022-09-15 16:05:21 -07:00
50e131a4ff Partial fix for discrepancy between docs and implementation 2022-09-15 15:56:23 -07:00
b733bb8ead Fix sanity checks overwriting custom policy parameters 2022-09-16 00:18:05 +04:00
e18d206248 Add warm spare feature for balance modes 2022-09-14 10:09:29 -07:00
2248b1f846 re-add ci failure notifications 2022-09-13 12:34:19 -07:00
58e19e86f4 update dockerfile.release 2022-09-13 12:23:51 -07:00
04d1862e3a using sid for push builds 2022-09-13 14:41:49 +02:00
7ecfc37854 using sid for push builds 2022-09-13 14:41:43 +02:00
21d7806064 untrying Amazon Linux 2022 2022-09-13 14:40:55 +02:00
c5b2d6cbc8 untrying Amazon Linux 2022 2022-09-13 14:40:36 +02:00
75c7e501ef trying Amazon Linux 2022 2022-09-13 14:13:53 +02:00
dba0931b58 trying Amazon Linux 2022 2022-09-13 14:13:35 +02:00
e0a7d6bfb9 tweaking 2022-09-12 18:02:21 +02:00
add854d31b Merge pull request #1750 from zerotier/dev-dont-re-armor
Prevent re-armoring of packets when in multipath broadcast mode
2022-09-09 16:56:05 -04:00
66b70a8043 Prevent re-armoring of packets when in multipath broadcast mode 2022-09-07 15:03:02 -07:00
1d1843bf3b Forget links if QoS verbs fail to arrive 2022-09-07 09:08:13 -07:00
0e23ba8f1a Add logic short-circuit to avoid unnecessary bond rebuild logic when appropriate 2022-09-01 15:16:21 -07:00
b6074da498 Fix nonsensical equality comparison which may prevent certain links from being regarded as preferred in multipath scenarios 2022-08-29 16:03:48 -07:00
7e92d478a1 Add missing <algorithm> include (#1709)
This is required for building under VS2017
2022-08-29 10:39:04 -07:00
a9ec057b91 Modify Dockerfile.release to support multi-arch builds 2022-08-23 12:59:52 -07:00
64a5e0d93f sso error handling 2022-08-15 14:26:24 -07:00
378e4ea34e Fix service installation MAX_PATH bug on Windows
- On newer Windows, a path might hold up to 32,767 characters
  - https://docs.microsoft.com/en-us/windows/win32/fileio/maximum-file-path-limitation
- The previous installation did not also check for ERROR_INSUFFICIENT_BUFFER which could lead to an ill formatted path
2022-08-10 17:08:51 +03:00
ff670d044a Fix integer format specifier compiler warnings 2022-08-09 21:19:16 -07:00
DQ
fac212fafa Synology Docker: update entrypoint.sh (#1704)
* update entrypoint.sh

- propagate TERM/QUIT/INT signals
- add some basic logging
- check for unbound variables
- update "route helper"
   - run as subshell, exit if zerotier-one is unavailable so pod can be restarted
   - only call `zerotier-cli` once, avoids race conditions
   - only add default routes if allowDefault is enabled for that network
   - add some more error handling
   - sleep after all networks are processed

* switch to polling ZT service at startup

Co-authored-by: Daniel Quinlan <dq@chaosengine.net>
2022-07-15 11:03:20 -05:00
e83c7e6691 Merge branch 'dev' of github.com:/zerotier/ZeroTierOne into dev 2022-07-05 19:38:03 -04:00
e0c4877d76 Merge branch 'dev' of http://git.int.zerotier.com/zerotier/ZeroTierOne into dev 2022-07-05 19:37:55 -04:00
457b5d2fe8 Windows build fixes, advanced installer upgrade 2022-07-05 19:37:33 -04:00
9cf8dacfbb don't crash out of the controller heartbeat loop here 2022-06-30 11:40:04 -07:00
b5d7d71e1e use connection pool instead of new connection for member status writes
redis plus plus has an annoying feature where it will open a new
connection for each tx or pipeline by default, rather than just fetching
an existing connection from the pool.  Let's change that
2022-06-30 09:59:47 -07:00
6fdc7be502 redis connection pool tuning 2022-06-29 09:39:51 -07:00
8fe858c5c6 remove old unused CI stuff 2022-06-28 12:32:47 -07:00
0d7197381a exit here on error 2022-06-28 09:28:35 -07:00
651f45fe29 Merge branch 'dev' of http://10.95.0.64/zerotier/ZeroTierOne into dev 2022-06-27 17:13:57 -04:00
02270e0e3d Linux build fixes... may need to be reverted for new Drone CI but needed for old environment 2022-06-27 17:13:52 -04:00
cb692d73c8 1.10.1 version bumps 2022-06-27 17:05:47 -04:00
1300cf23c5 Use fixed copy of JWT library until upstream merges 2022-06-27 10:44:33 -07:00
3cb24410a8 yay case insensitive filesystems 2022-06-24 10:21:13 -07:00
be7ce4110e Revert "Delete and re-add libpqxx-7.7.3 due to weird corruption."
This reverts commit e96515433d.
2022-06-24 10:12:36 -07:00
c07e4a8c01 Revert "Re-add..."
This reverts commit b1faebae4a.
2022-06-24 10:11:57 -07:00
ff8da9d246 Play with online notification timing again 2022-06-24 10:03:30 -07:00
b1faebae4a Re-add... 2022-06-23 13:24:33 -04:00
e96515433d Delete and re-add libpqxx-7.7.3 due to weird corruption. 2022-06-23 13:21:13 -04:00
5a8d2c3cb4 Set running flag to false if falling out of oidc run loop 2022-06-22 17:36:24 -07:00
183a9d7088 update controller image and some dependencies 2022-06-22 15:03:19 -07:00
c1384422c3 just sleep 1 second 2022-06-22 10:58:23 -07:00
ccc0ebd0f9 don't spam the logs quite as much on first startup
sleep the thread 1 second every round until we're actually updating
members
2022-06-22 10:42:51 -07:00
9d4336d296 redis connection tuning 2022-06-22 10:30:58 -07:00
17bc9d3085 redis thread now uses this_thread::yield() 2022-06-22 10:07:55 -07:00
436f481a34 fix log line 2022-06-22 10:01:07 -07:00
9e8215b213 adjust sleep between onlineNotification runs. Added timer to output 2022-06-22 09:43:09 -07:00
e958a83dd4 update central controller docker startup script 2022-06-22 09:25:15 -07:00
f44b122262 pg_isready can use SSL 2022-06-21 14:40:24 -07:00
26d1cf9186 Merge branch 'dev' of github.com:zerotier/ZeroTierOne into dev 2022-06-20 16:35:24 -04:00
895ee77c38 Commented out code to generates some AES-GMAC-SIV test vectors that are now part of the Rust code base to make sure it works right. 2022-06-20 16:35:17 -04:00
caf8b15f6d Merge pull request #1701 from tossp/sql2
fix sql
2022-06-19 18:09:28 -07:00
bc7f18064f fix sql
bind message supplies 17 parameters, but prepared statement "" requires 16
2022-06-20 05:59:13 +08:00
355d3f44fb logging & redis standalone fix 2022-06-16 11:52:35 -07:00
9de863e68b update controller db record 2022-06-16 10:50:07 -07:00
64b7f8e445 quiet down logs more 2022-06-15 16:58:11 -07:00
626f488cb4 quiet down the controller logs a smidge 2022-06-15 16:58:07 -07:00
10212e376a more redis in the controller 2022-06-15 16:58:04 -07:00
81462cd530 Add snapcraft login step for future CI/CD 2022-06-15 11:06:16 -07:00
7d4e4ac646 Update snapcraft 2022-06-14 15:20:42 -07:00
0ed339f19d make sure value here is true, not just that the env var is set 2022-06-13 15:44:35 -07:00
c6fc3560f2 Merge branch 'dev' into redisrection 2022-06-13 13:09:36 -07:00
b4cec0b4a8 1.10.0 2022-06-13 14:18:54 -04:00
d7030b6e9c html & unicode -> svg for sso logo 2022-06-08 16:17:28 -07:00
7ed5bde426 Fix for ab-mode link failure, QoS metrics (WIP) 2022-06-08 10:01:54 -07:00
75652ce667 Merge branch 'dev' of github.com:zerotier/ZeroTierOne into dev 2022-06-08 12:43:57 -04:00
91f801ee72 Merge branch 'dev' of http://10.95.0.64/zerotier/ZeroTierOne into dev 2022-06-08 12:43:13 -04:00
c6f567ae4a openssl11-devel does not exist on CentOS 7 2022-06-08 12:42:43 -04:00
e1ca3c995d this should not be quoted 2022-06-08 09:26:37 -07:00
addc327f17 More blanket ignores. 2022-06-08 12:21:11 -04:00
f2c12d548d More blanket gitignores messing up vendored deps. 2022-06-08 12:19:40 -04:00
ef36acb970 Fix vendored files. 2022-06-08 12:16:09 -04:00
d5ca4e5f52 RPM build fix (reverted CI changes which will need to be un-reverted or made conditional) and vendor Rust dependencies to make builds much faster in any CI system. 2022-06-08 07:32:16 -04:00
373ca30269 1.10.0 release notes. 2022-06-07 13:53:12 -04:00
0d9d3a90de Revise README. 2022-06-07 13:10:34 -04:00
363481b0f1 1.10.0 installer for Windows 2022-06-07 12:52:50 -04:00
38058450ce Revise Windows build to VS2022. 2022-06-06 19:33:35 -04:00
e672dc8094 Set version to correct 1.10.0. 2022-06-06 16:18:50 -04:00
c6682f2a3f Merge branch 'dev' of github.com:zerotier/ZeroTierOne into dev 2022-06-03 16:12:40 -04:00
4508a6687e Version bump. 2022-06-03 15:42:06 -04:00
a47c3cb16f Exclude temporary IPv6 check from SDK builds 2022-06-01 14:24:28 -07:00
9b42ced27f Tweak DSM7 docker build target 2022-05-31 12:48:52 -07:00
1a400d33fd Fix link creation bug in active-backup mode 2022-05-18 10:04:53 -07:00
96ee7252c2 Update README.md 2022-05-16 13:08:01 -07:00
b0624d3fd1 Merge branch 'inja' into dev 2022-05-16 12:26:42 -07:00
c329fab966 add isError to sso template variables 2022-05-16 09:25:36 -07:00
127c19fecd betterized rpm spec and ci scripts 2022-05-14 13:29:42 +02:00
4c22793850 Embed default template in service 2022-05-13 16:18:34 -07:00
da74b9651c Wire up inja for html template processing 2022-05-13 15:55:48 -07:00
ce23a8dd32 update bsd makefile 2022-05-13 11:51:01 -07:00
30d106766a Windows project changes for inja 2022-05-13 11:50:46 -07:00
c4df88354b updates for macOS for inja support 2022-05-13 09:51:37 -07:00
b65c1ed3a0 Add inja
Requries update to C++17 standard
2022-05-13 09:34:15 -07:00
b329fb68a9 Cleanup rust-analyzer warnings 2022-05-12 21:04:16 -07:00
da179d9930 Clean up error flow for sso
error messages can now propagate to the user's browser
2022-05-12 17:00:43 -07:00
e7fee4c6ce code cleanup 2022-05-11 22:41:35 -07:00
4151749dc9 Handle sso token exchange errors in zerotier client 2022-05-11 19:59:58 -07:00
aee9521c91 Add error handling for over sso seat limits 2022-05-11 19:43:29 -07:00
7e46c83592 1.8.10 2022-05-10 13:45:12 -04:00
ba74abb753 pull latest sid builder 2022-05-10 18:31:09 +02:00
9ddc0327d4 enable redis member status again 2022-05-10 08:36:39 -07:00
c34325fee7 Fix attribute placement for debugging functions (#1587) 2022-05-06 17:25:15 -07:00
db8443ef7d Remove attributes causing build failures on various platforms (#1587) 2022-05-06 15:19:59 -07:00
6c85f8c7a7 Safely handle disappearing bonded interfaces (See issue #1587) 2022-05-06 14:59:34 -07:00
eea93d2607 Fix SEGV caused by format string on 32-bit platforms / armv7l, reported in #1587 (#1658)
Looks great. Thanks for this!
2022-05-06 09:11:47 -07:00
e9f8ecbf7e Properly initialize active-backup path index as partial fix for #1587 2022-05-04 09:51:48 -07:00
48852e8cb4 add ZT_SSO_ENABLED=1 to preprocessor definition list in Visual Studio
fixes sso not working
2022-05-03 14:39:08 -07:00
55ec325961 Add localSocket to listpeers JSON output 2022-04-28 15:58:12 -07:00
59151fbf86 remove max count for xread 2022-04-28 13:10:07 -07:00
1c700b7b41 Fix redis cluster usage 2022-04-28 13:05:02 -07:00
ff18bacd94 fix XREAD commands for redis message queue 2022-04-28 11:16:45 -07:00
caf1de3bcf Allow TCP fallback when multipath is enabled 2022-04-28 11:12:04 -07:00
a9ad2924ac Re-add user-configurable TCP fallback 2022-04-28 11:05:54 -07:00
7ea2354540 Merge branch 'master' of github.com:zerotier/ZeroTierOne 2022-04-27 17:10:19 -04:00
760bba67e7 Merge branch 'dev' of github.com:zerotier/ZeroTierOne into dev 2022-04-27 14:12:10 -04:00
1fe3a4402d 1.8.9 Windows installer stuff 2022-04-27 14:11:48 -04:00
166c7978ee ALMOST compiles for ARM64 Windows, only remaining barrier is ring in zeroidc. 2022-04-27 12:19:42 -04:00
4f80e79886 Add QNAP build scripts 2022-04-26 15:04:19 -07:00
b47a2c9ac5 Forgot to bump Debian version. 2022-04-26 17:38:57 -04:00
1a5274b86b Add Asustor build scripts 2022-04-26 08:33:48 -07:00
66236e91a2 Style fix 2022-04-26 08:26:45 -07:00
36475aebc7 Merge branch 'erikh-fix-cargo-root' 2022-04-25 20:39:22 -07:00
acd1f24a3f Add Western Digital apkg build scripts 2022-04-25 17:47:58 -07:00
a74532fa0b Move Snap and Synology packaging to new pkg dir 2022-04-25 17:47:15 -07:00
59d4aef7c2 Fix cargo home directory (was previously hard-coded to /root)
Signed-off-by: Erik Hollensbe <git@hollensbe.org>
2022-04-25 15:52:39 -07:00
dfb291090d release notes 2022-04-25 17:09:14 -04:00
dac32f863e fix deadlock on sso network leave 2022-04-25 14:00:04 -07:00
f3b56d3d94 More simplification of Debian control 2022-04-25 15:21:29 -04:00
eb95a427fa 1.8.9 version bump 2022-04-25 13:24:24 -04:00
f16299b10b Add credit line to release notes 2022-04-21 09:50:18 -07:00
76bce44280 Build fix. 2022-04-19 21:30:36 -04:00
ee0a194b25 Several more SSO/OIDC related fixes, and bump version to 1.8.9. 2022-04-19 21:29:11 -04:00
ef08346a74 Fix a possible excessive memory use issue in controller and clean up a bunch of COM handling and other code in the normal node. 2022-04-19 19:59:54 -04:00
fe0068da52 A bit more auth cleanup in the local node. 2022-04-19 16:34:46 -04:00
cd70fefc5e Clean up some credential push stuff. 2022-04-19 16:06:53 -04:00
877f86a896 build fix 2022-04-19 12:44:18 -04:00
912036b260 Push credentials always if updated (client-side) and some controller-side cleanup that should be logically irrelevant but will prevent unnecessary DB lookups. 2022-04-19 12:41:38 -04:00
a4e8847664 Restore sending of rejections but move it exclusively to a thread, widen netconf window to 30 minutes. 2022-04-19 10:37:58 -04:00
c492bf7eea Forgot to send error on v0 auth expiry. 2022-04-18 16:36:09 -04:00
cb086ff97f Simplify SSO logic. SSO should just normally expire when it expires. No full deauth needed. Deauth is for really giving someone the boot. 2022-04-18 16:32:05 -04:00
7e4da53c0b Check reference to failover path before use in active-backup scenario 2022-04-17 21:03:57 -07:00
fe376f6a1e Merge branch 'dev' of github.com:zerotier/ZeroTierOne into dev 2022-04-15 14:23:40 -04:00
55a99f34d0 Tighten certificate window and deprecate sending of revocations for ordinary SSO timeouts. Revocations should only be for deliberate deauth to kick people off networks. Cert window should now stay within refresh window for SSO so normal cert expiration should handle it just fine. 2022-04-15 14:23:26 -04:00
99df637aae Improve relationship between QOS timers and bucket sizes 2022-04-15 09:55:00 -07:00
d0c68096df Merge branch 'dev' of github.com:zerotier/ZeroTierOne into dev 2022-04-15 12:46:48 -04:00
1c464c2da1 fix potential cstring leaks 2022-04-15 09:16:02 -07:00
5b15da98b4 Start of 1.8.9 release notes. 2022-04-15 11:58:21 -04:00
d5a95f9224 Add SSO enable def to macOS 2022-04-14 20:57:35 -04:00
a7dcfa18a2 Oops forgot last part of that fix for MAC errors. 2022-04-14 20:13:57 -04:00
4389b9feff Likely fix for invalid MAC problem. 2022-04-14 20:10:20 -04:00
cf03996bf2 clangd stuff 2022-04-14 12:00:36 -04:00
e1a3bd3a92 ignore .nova 2022-04-14 11:50:47 -04:00
58119598ae comment out some new deauth code 2022-04-13 23:10:11 -04:00
42a2afaef9 This may improve controller behavior with SSO and mixed SSO, needs testing! 2022-04-13 21:39:56 -04:00
c2cfb4d1dc remove stray #endif 2022-04-13 17:47:56 -07:00
f0b0172434 Merge branch 'master' into dev 2022-04-13 19:55:22 -04:00
8217cadc08 Merge branch 'dev' of github.com:zerotier/ZeroTierOne into dev 2022-04-13 19:55:08 -04:00
6ad047a8fc Merge branch 'dev' of github.com:zerotier/ZeroTierOne into dev 2022-04-13 13:54:03 -07:00
23ef742e08 Fix for #1626
Port used for PortMapping was not properly randomized causing multiple clients on the same lan to request the same UPnP port, and not all routers handle this gracefully.

Also fixes issue where the portmapper wasn't started at all if a secondary port wasn't specified, or if the tertiary port was manually specified.
2022-04-13 13:53:42 -07:00
1294767b44 Fix ZT_SSO_SUPPORTED flag behavior. Allow disabling for embedded targets. 2022-04-13 10:05:49 -07:00
eca645fc52 Merge pull request #1625 from erikh/prettify-entrypoint-output
prettify the entrypoint log output
2022-04-13 00:17:07 -07:00
8598f34ebf prettify the entrypoint log output
Signed-off-by: Erik Hollensbe <git@hollensbe.org>
2022-04-13 00:09:46 -07:00
cade483a00 Merge pull request #1624 from erikh/silence-entrypoint-errors
silence catting files that don't exist in docker entrypoint
2022-04-12 23:58:00 -07:00
df46248a0c silence catting files that don't exist in docker entrypoint
Signed-off-by: Erik Hollensbe <git@hollensbe.org>
2022-04-12 23:56:16 -07:00
6cddb94509 Merge branch 'dev' of https://github.com/zerotier/zerotierone into dev 2022-04-12 17:46:13 -07:00
0e658828fb Add Synology Docker target to Linux makefile 2022-04-12 17:45:54 -07:00
de04240ca6 update alpine linux release to current supported (#1599) 2022-04-11 21:24:57 -07:00
40681328ec Add loongarch64 support (#1614)
* add loongarch64 support
2022-04-11 20:33:40 -07:00
4dbdfb6972 Fix missing symlink and high CPU usage of route watchdog on Synology 2022-04-11 15:22:13 -07:00
bd9c8d65ef Release notes for 1.8.8 2022-04-11 12:46:12 -04:00
24ec634005 Possible fix for Ubuntu versioning issue on libstdc++6 2022-04-11 12:28:14 -04:00
ff0e6a53fc Release notes for 1.8.8 2022-04-11 12:16:32 -04:00
ffb444dbeb 1.8.8 bump 2022-04-11 12:15:41 -04:00
d6f32516d8 Merge branch 'master' of github.com:zerotier/ZeroTierOne into dev 2022-04-11 11:11:13 -04:00
29566bfe7d Add Synology target to Linux makefile 2022-04-10 22:50:53 -07:00
16d2b85c71 Merge pull request #1619 from altano/master
Add `zerotier-cli info` output to Docker logs
2022-04-08 22:09:32 -07:00
193b357a0c Add zerotier-cli info output to Docker logs
When I first bring up the container, I want to know I'm approving the join request for the right node. I can get the node's ZT address by manually executing `zerotier-cli info` in the node (e.g. with `docker-compose exec zerotier zerotier-cli info`) but just having it in the logs to start with is very convenient.
2022-04-08 21:56:13 -07:00
8ee8870c27 Add Docker image and build script for DSM 7 2022-04-05 16:38:20 -07:00
3c59de7c00 Change directory structure for DSM packages 2022-04-05 15:27:35 -07:00
e87bf87046 Remove unnecessary packages from Synology Dockerfile 2022-04-05 14:20:51 -07:00
b4f7a9a4f4 Temporarily disable certain arch builds on Synology 2022-04-05 09:52:25 -07:00
a360416655 Move Synology home-dir to /var/packages/zerotier/var 2022-04-05 09:51:35 -07:00
26dbebbba7 Add Synology packaging 2022-04-05 08:54:16 -07:00
04b77773c4 Remove Synology-specific IP add block 2022-03-31 22:01:50 -07:00
6f4a69703b Fix ZT_SSO_SUPPORTED flag behavior. Allow disabling for embedded targets. 2022-03-31 21:45:38 -07:00
d67f59f5b5 Fix ARMv6 arch moniker 2022-03-31 09:43:06 -07:00
00d9abb612 Merge branch 'dev' of https://github.com/zerotier/zerotierone into dev 2022-03-31 09:40:45 -07:00
c8920cff19 Merge branch 'dev' of github.com:zerotier/ZeroTierOne into dev 2022-03-30 15:51:33 -04:00
7293ba7d71 Merge branch 'master' into dev 2022-03-30 15:51:18 -04:00
e73d7d9349 Merge branch 'master' of http://git.int.zerotier.com/zerotier/ZeroTierOne 2022-03-30 15:51:01 -04:00
0e3be9b837 1.8.7 2022-03-30 15:50:26 -04:00
c600590aa6 Windows 1.8.7 installer config. 2022-03-29 19:36:56 -04:00
1343f15a07 Merge branch 'master' of http://git.int.zerotier.com/zerotier/ZeroTierOne 2022-03-29 14:28:12 -04:00
5fcaed086d another at->idt for exp 2022-03-29 11:09:50 -07:00
130689d82b remove extraneous debug log line 2022-03-29 11:09:14 -07:00
1efceb86fc get exp time out of correct token 2022-03-29 11:08:59 -07:00
1d92974447 auth0 compatibility 2022-03-29 11:07:44 -07:00
de56f571c7 enable rfc3339 timestamps in oidc library for auth0 2022-03-29 11:07:30 -07:00
3670b8cefd another at->idt for exp 2022-03-29 10:33:27 -07:00
425f5201a2 remove extraneous debug log line 2022-03-29 10:03:34 -07:00
df3b29e6ff get exp time out of correct token 2022-03-29 10:01:02 -07:00
96a49bf476 auth0 compatibility 2022-03-29 09:11:55 -07:00
2d975f275c enable rfc3339 timestamps in oidc library for auth0 2022-03-29 09:11:25 -07:00
76e30cf165 Merge pull request #1596 from erikh/docker-image-fixes
Fix dockerfile & entrypoint:
2022-03-24 10:53:52 -07:00
da603208b4 Dockerfile: Reduce healthcheck interval to 1s (it's cheap)
Signed-off-by: Erik Hollensbe <git@hollensbe.org>
2022-03-23 18:17:21 -07:00
6dc7bdf72e Fix ^C issue
Signed-off-by: Erik Hollensbe <git@hollensbe.org>
2022-03-23 18:09:04 -07:00
d52ebaa412 HEALTHCHECK operation
Signed-off-by: Erik Hollensbe <git@hollensbe.org>
2022-03-23 18:08:46 -07:00
c30a1f60ea Join networks by touching a file
Signed-off-by: Erik Hollensbe <git@hollensbe.org>
2022-03-23 17:56:09 -07:00
2388c9f4e4 added additional informational messages to argument usage in zerotier docker image
Signed-off-by: Erik Hollensbe <git@hollensbe.org>
2022-03-23 17:40:28 -07:00
f41372680d Fix dockerfile & entrypoint:
- Resolve issue with join not being checked properly for success without
  using external tools
- Resolve issue where initial boot was not being checked properly
- Now output errors when zerotier fails to start

closes #1581

cc @altano for inspiration for this patch

Signed-off-by: Erik Hollensbe <git@hollensbe.org>
2022-03-23 17:40:28 -07:00
7efb1cf7d3 Bundle Edge WebView dependency EXE and statically link MSVC DLLs 2022-03-22 17:43:43 -04:00
0547fd3593 Merge branch 'master' of https://github.com/zerotier/zerotierone into dev 2022-03-21 19:51:53 -07:00
2800534445 1.8.7 2022-03-21 17:34:52 -04:00
e464050a40 Merge branch 'master' of http://git.int.zerotier.com/zerotier/ZeroTierOne 2022-03-21 17:30:18 -04:00
73ec8cddd7 Show sso errors on the last step of the oidc process 2022-03-21 17:30:03 -04:00
1c171b5d99 Merge pull request #1589 from hcwhan/patch-1
Dockerfile version bump to 1.8.6
2022-03-15 09:52:55 -07:00
32f49b44b0 Modify snap to use pre-compiled static binaries 2022-03-15 09:44:46 -07:00
e2d4571ade Dockerfile version bump to 1.8.6 2022-03-14 10:34:26 +08:00
3f19e7d73c Show sso errors on the last step of the oidc process 2022-03-10 13:08:35 -08:00
93076dde56 Fix merged OneService. 2022-03-10 15:57:15 -05:00
3e78785dea Merge OneService changes from master. 2022-03-10 15:50:01 -05:00
68c9398f71 Merge branch 'master' into dev 2022-03-10 15:48:47 -05:00
4b3a13797a Windows Advanced Installer stuff for 1.8.6 2022-03-10 15:45:33 -05:00
4a2c75a609 Release notes 2022-03-10 13:36:31 -05:00
34a64f30de Bump the peer cache serialization version due to path changes, will cause peers to be re-learned. Technically the peer cache is optional anyway so it's not going to break anything and should guard against weird issues due to path learning changes on restart. 2022-03-09 09:13:26 -05:00
4bdf0317c3 Forgot to version bump RH. 2022-03-08 15:18:57 -05:00
8624972d01 More 1.8.6 bumps. 2022-03-08 09:17:14 -05:00
6bfaaaa557 1.8.6 bump and add AutoReqProv:no for GitHub issue #1575 2022-03-07 14:06:12 -05:00
b42c998095 Merge branch 'master' of github.com:zerotier/ZeroTierOne 2022-03-07 13:58:51 -05:00
56357c077b Merge pull request #1110 from neheb/patch-1
LinuxNetLink: Add cerrno header for (str)errno
2022-03-07 13:53:14 -05:00
3def00370e Merge pull request #1187 from rjsocha/win-service-description
Add description for Windows service
2022-03-07 13:52:41 -05:00
e1a3285273 Update ServiceInstaller.cpp
Some very minor changes to this PR
2022-03-07 13:52:05 -05:00
59b392af10 Merge pull request #1572 from zerotier/configurable-tcp-proxy
make TCP fallback relay address configurable
2022-03-07 09:17:43 -08:00
a8dde7b89b update JNI to add new status code 2022-03-04 14:28:25 -08:00
ecde26c823 fix http return value from one service when nework list is empty 2022-03-04 12:35:11 -08:00
567969d33c 1.8.6 with a UI non-responsiveness fix. 2022-03-04 14:54:51 -05:00
544a4de1e0 Merge branch 'master' into dev 2022-03-03 18:35:05 -05:00
c341bf6d8c Merge 2022-03-03 18:32:54 -05:00
297869163e Merge branch 'dev' of github.com:zerotier/ZeroTierOne into dev 2022-03-03 18:30:19 -05:00
3ead6b67cd Dynamically scale bonded link monitor frequency according to aliveness 2022-03-02 14:58:31 -08:00
3cbea6c898 make TCP fallback relay address configurable 2022-03-02 11:44:04 -08:00
1f73ab4b05 Debian lowest common denominator dependency for libssl. 2022-03-02 14:11:39 -05:00
8148c658cf Remove bonds for peers that have fully expired. Remove notion of bond health 2022-03-02 09:55:23 -08:00
15ddf28c6a Makefile fix for Linux. 2022-02-28 19:08:13 -05:00
16b5274963 Fix to selinux fix. 2022-02-28 16:10:44 -05:00
f8e24f4629 Fix issue where restarting a controller causes a DB write for each network member 2022-02-28 12:26:32 -08:00
1cf8a1f493 More accurate accounting of bond layer overhead traffic 2022-02-25 15:04:48 -08:00
bc2c4cf80a Merge branch 'dev' of https://github.com/zerotier/zerotierone into dev 2022-02-25 11:39:21 -08:00
9933d83cf8 Merge pull request #1564 from zerotier/dev-whoami
Proactively seek, and distribute external surface addresses

This patch introduces a new "self-awareness" behavior which proactively queries peers for external surface addresses and distributes them via PUSH_DIRECT_PATHS. This has the effect of making ZT more responsive to interface changes.

Current behavior:

Previously, this type of information was only mediated via RENDEZVOUS and was only triggered when the client detected that it no longer had a single alive path to a peer. While PUSH_DIRECT_PATHS would correctly (and often) send local addresses, this was not the case for external addresses collected from response HELLOs. This would lead to situations where only one physical address would be distributed to peers. Additionally, if a new physical interface were to be made available to the client, the client would correctly bind to it but never seek information about its external mapping from a peer, and thus the new physical interface would remain unavailable for other peers to learn about until all paths on the previous interface have expired which can take a couple of minutes. In traditional usage of ZT this is not usually a problem, but it becomes a problem in the following scenarios:

    Network interfaces go up and down while ZT is running (e.g. switching to LTE or WiFi from a wired connection)
    Network interfaces are added or removed in multipath setups

Proposed behavior:

I propose that normal full HELLOs are sent not only on the first interface in use, but all interfaces. This causes planets to respond with a HELLO containing the surface address for each interface. We then collect each address using SelfAwareness::whoami() and distribute them via the normal PUSH_DIRECT_PATHS mechanism.
2022-02-25 11:30:45 -08:00
1918c29fd7 Change ECHO divisor from 20 to 6 2022-02-25 11:29:07 -08:00
84705aafc7 Merge pull request #1569 from zerotier/dev-echo-rate-gate
Rate gate ECHO per Path instead of per Peer

In multipath scenarios user traffic is used to judge the aliveness of a path. If the user traffic is too infrequent to establish aliveness for a given time window (say 500 ms), the bonding layer will send extra ECHOs at a maximum rate of failoverInterval / 3 (or ~ 166 ms) per path. This patch relaxes the rate-limiting of ECHOs significantly in order to prevent a non-multipath node from dropping ECHOs causing multipath nodes to erroneously judge paths to that node to be dead.
Details

This patch decreases the rate limiting from 1000 ms per peer by a factor of 6 to ~166 ms and rate limits ECHOs per Path instead of per Peer. This allows rate limiting to scale with the number of established paths to a peer.

As a result, if all 64 path slots are used a total of 64 x 6 = 384 ECHOs per second will be allowed in the most aggressive case where failoverInterval is set to 500 ms.
2022-02-25 11:23:42 -08:00
618202d426 Increase min failover to 500 ms and probe period to 1/3rd of failover 2022-02-25 10:52:39 -08:00
8b9a7d2c8f 1.8.5 release notes 2022-02-22 13:15:39 -05:00
d1335dca11 Change ECHO rate-limit divsor from 16 to 20 2022-02-21 16:22:33 -08:00
5e13b42abc Rate gate ECHO per Path instead of per Peer 2022-02-21 14:37:39 -08:00
b4b5a70a03 Windows build update. 2022-02-21 13:53:55 -05:00
96aa1c30a6 Proactively seek, enumerate, and distribute external surface addresses 2022-02-17 15:39:17 -08:00
1b0c183913 Force non-leaf peers into local active-backup bond when multipath is enabled 2022-02-17 15:16:33 -08:00
5d4a9a4aa1 Merge branch 'dev' of https://github.com/zerotier/zerotierone into dev 2022-02-17 09:48:15 -08:00
31c12aebb5 more fun with linux ethernet taps
older kernels: must set MTU before IFF_UP.
newer kernels: must set MTU *after* IFF_UP
2022-02-17 09:26:53 -08:00
40269c2a97 Comment out debug traces 2022-02-16 20:39:18 -08:00
ed74ed6ed2 CentOS/RHEL 6 SELinux permissions. 2022-02-16 12:56:17 -05:00
26e684eb0e Add OpenSSL requirements to Linux package manifests. 2022-02-15 14:39:23 -05:00
fc66f79988 1.8.5 Windows 2022-02-15 13:09:54 -05:00
3c85a7f074 Rev roots. 2022-02-15 09:13:58 -05:00
62d2a00e74 Merge pull request #1093 from keur/unit_after_network
systemd: fix zerotier hanging on shutdown
2022-02-11 18:03:18 -05:00
bb2b109707 Merge pull request #1559 from zerotier/oldlinux
potential fix for 2.6.x kernels
2022-02-11 17:59:53 -05:00
c5008031b9 Increase ifname size to accomodate Windows (issue #1560) 2022-02-11 10:08:56 -08:00
1d15d4e8d3 Add ZT_DEBUG to DEFS when specified 2022-02-09 14:32:10 -08:00
da898d5a19 Merge branch 'dev' of https://github.com/zerotier/zerotierone into dev 2022-02-08 15:47:43 -08:00
f9c84c8c52 Remove stray debug trace 2022-02-08 15:32:25 -08:00
5d63ed6739 fix function call 2022-02-07 17:14:43 -08:00
fdf4ebd43c potential fix for 2.6.x kernels
detect if the kernel is super old.  if so, do not execute the post IF_UP commands on the interface
2022-02-07 17:10:54 -08:00
dc9fdb7da8 Merge branch 'notify' into dev 2022-02-07 13:59:22 -08:00
2652c71c9e remove tag one more time 2022-02-07 11:54:50 -08:00
806d1fff42 Merge branch 'notify' into dev 2022-02-07 11:46:23 -08:00
c065e88e1e notify tags are back 2022-02-07 11:39:47 -08:00
4641a44029 does order matter? 2022-02-07 11:36:52 -08:00
f544f75c36 notify all again 2022-02-07 11:32:19 -08:00
720168f0a0 only notify on failure for now 2022-02-07 11:27:03 -08:00
6dfecca91e poke 2022-02-07 11:23:38 -08:00
10b38b5b0a poke 2022-02-07 11:14:46 -08:00
dbc5d5c453 Update .drone.yml
OCD made me do it
2022-02-07 19:54:56 +01:00
a3e0ba16f5 poke 2022-02-07 10:43:56 -08:00
3c906102e1 update notify image 2022-02-07 10:26:29 -08:00
566ac113e4 Merge branch 'dev' of https://github.com/zerotier/zerotierone into dev 2022-02-07 10:10:24 -08:00
5abc8bd2af specify tag 2022-02-07 10:09:01 -08:00
926b2e168e Add external listening addr/port pairs to status output (ticket #1555) 2022-02-07 10:08:02 -08:00
e475e8151d set pull: always on notify image 2022-02-07 09:56:31 -08:00
440f10e353 max retires 3 2022-02-04 13:48:48 -08:00
30256c7106 set max retries 2022-02-04 13:44:00 -08:00
21946f38d0 oops 2022-02-04 13:35:44 -08:00
549673664d custom image 2022-02-04 13:34:28 -08:00
b45d0c5a36 tweaking 2022-02-04 22:08:56 +01:00
4df05c2890 running s390x on xeons 2022-02-04 22:08:14 +01:00
d886089091 running s390x on xeons 2022-02-04 22:05:29 +01:00
51158dde93 make it run on failure and succes 2022-02-04 12:58:12 -08:00
09fff7f1cb lets try this 2022-02-04 12:50:19 -08:00
91f435f32f trying s390 on a gravaton 2022-02-04 21:42:00 +01:00
726ffddce2 adding platform routing for arm64 2022-02-04 21:28:07 +01:00
4ecf692f46 Remove -j1 2022-02-04 14:51:13 -05:00
2a461a9aac Merge dev 2022-02-04 13:32:06 -05:00
211b1fc23c enable on x32 2022-02-03 12:52:35 -08:00
df6bbb0b0c more fun with makefiles 2022-02-03 11:47:03 -08:00
cfae20e0df LDFLAGS fix on non-supported platforms 2022-02-03 11:30:39 -08:00
3c0adde0c7 don't build on unsupported platforms 2022-02-03 11:26:10 -08:00
f511c9c938 fix compile errors on non-sso platforms 2022-02-03 10:07:25 -08:00
20f88b37ef adding drone config 2022-02-03 14:19:06 +01:00
269501eaa0 adding drone config 2022-02-03 14:18:36 +01:00
330e1de3d1 Merge branch 'dev' of http://git.int.zerotier.com/zerotier/ZeroTierOne into dev 2022-02-01 16:04:06 -05:00
25e14e2164 Merge branch 'dev' of http://git.int.zerotier.com/zerotier/ZeroTierOne into dev 2022-02-01 16:03:04 -05:00
aa97aabb4e for now, only enable sso on certain platforms
mac, windows, linux x86/x86_64/aarch64
2022-02-01 11:07:37 -08:00
59cd2766e3 Shorten issue template. Add docs site to it. 2022-01-31 13:52:38 -08:00
b7952d7f39 no longer need direct import of serde here either 2022-01-31 12:13:30 -08:00
c380a4e4bd cleanup 2022-01-31 12:02:14 -08:00
9c487cbfb8 Remove jsonwebtoken package dependency
Replaced with rust-jwt.  `jsonwebtoken` relies on the ring package which explodes on non-x86/x64 architectures
2022-01-31 11:58:51 -08:00
6fc636535f Merge branch 'dev-enlarge-netconf-limits' into dev 2022-01-31 10:52:34 -05:00
4190318c85 Fix typo in constant name 2022-01-28 10:41:21 -08:00
2f554fd6f8 Merge pull request #1552 from Shawn8410/master
FIX: fix wrong flag usage of rateGateCredentialsReceived
2022-01-28 10:12:16 -08:00
ae93cccde6 FIX: fix wrong flag usage of rateGateCredentialsReceived 2022-01-27 11:59:21 +08:00
46e955e3a1 Split bond logs into two categories to reduce logging size 2022-01-26 15:14:02 -08:00
60057d7072 Fix SSL-related linker errors on Linux 2022-01-26 14:02:42 -08:00
2850f131e2 Fix code style 2022-01-25 18:03:36 -08:00
440568a516 Enlarge maximum routes and maximum assigned addresses. 2022-01-24 14:26:15 -08:00
e31088aaf9 Debian build tweaks, and deparallelize Rust for higher order build parallelization. 2022-01-21 17:27:07 -05:00
63b36e8569 . 2022-01-20 15:36:29 -08:00
726d359335 part 2 2022-01-20 15:35:18 -08:00
fc0858a4a3 fix the fix cargo build on mac
--debug isn't a cargo option at all
2022-01-20 15:32:58 -08:00
f80103778a Merge branch 'dev' into central-controller 2022-01-20 15:15:59 -08:00
c09010c25a handle nonce rotation in controller better
Won't generate new nonces until there are no active ones.
2022-01-20 15:14:29 -08:00
9cd1466e6b Merge branch 'dev' into central-controller 2022-01-20 11:12:21 -08:00
801be64ed3 Merge branch 'zeroidc' into dev 2022-01-20 09:46:22 -08:00
d719137565 temp workaround for oidc auth dropping issue
Add a method to "kick" the refresh thread and re-post the tokens in the case where the thread is somehow still running & controller pushes out an AUTH_REQUIRED.  This situation happens in a corner case still under investigation where the controller pushes out many copies of the network config repeatedly
2022-01-20 09:44:56 -08:00
58aba96494 Mac Rust build fix. 2022-01-20 11:16:26 -05:00
f8d7796099 Merge branch 'zeroidc' into dev 2022-01-20 10:43:37 -05:00
241c41267b Merge branch 'master' into dev 2022-01-20 08:23:12 -05:00
2ac1ff9be2 Merge pull request #1451 from channelbeta/update-pgp-url
Update PGP keyserver URL
2022-01-20 08:22:52 -05:00
cb31b3987f Merge pull request #1539 from khng300/getdefaultgateway-rtm-fix
ext/libnatpmp: Set sa_len properly in getdefaultgateway()
2022-01-20 08:21:24 -05:00
c256398095 Merge pull request #1541 from khng300/fbsd-osdep-PortMapper
Build osdep/PortMapper on FreeBSD
2022-01-20 08:21:08 -05:00
7bb8703bf9 Build osdep/PortMapper on FreeBSD
This enables NAT-PMP and UPnP supports on FreeBSD.
2022-01-12 13:52:46 -05:00
0da00bf546 Merge pull request #1535 from zerotier/linux-route-metric
Set a high metric on linux routes that have a via.
2022-01-12 18:41:54 +01:00
4866490cdf Merge pull request #1533 from zerotier/tl-linux-route-if
Prevent adding routes to non-zerotier interfaces in rare cases.
2022-01-12 18:41:45 +01:00
1547b1a581 Merge branch 'zeroidc' into central-controller
# Conflicts:
#	node/NetworkConfig.cpp
#	node/NetworkConfig.hpp
2022-01-11 12:09:57 -08:00
511c77aa99 ext/libnatpmp: Set sa_len properly in getdefaultgateway()
In USE_SOCKET_ROUTE's implementation, sa_len of the sockaddrs need to be
set as well.

Sponsored by:	The FreeBSD Foundation
2022-01-10 20:42:34 -05:00
692a0e7ac2 Set a high metric on linux routes that have a via.
See issue #750.

zerotier doesn't currently set a metric on routes. Linux
takes this to mean "0", the highest priority.

Every comment in the issue is about routing between zerotier
and lan and how they conflict.

This quick change could fix this problem for most people.

The subnet route for the zerotier network, the one with no
via, is still 0 in this patch. Just the "via" routes get
higher metrics.
If for some reason, you needed your via routes to have
higher priority, you could use a prefix work-around:

192.168.1.0/25 via 10.147.17.1
192.168.1.128/25 via 10.147.17.1
2022-01-07 13:10:36 -08:00
fa25b45198 Keep interface name on via routes on linux
See issue #1498
2022-01-07 11:58:42 -08:00
cdd25c389e Merge branch 'dev' into zeroidc 2022-01-06 14:55:40 -08:00
133a6ff7b3 fix env var 2022-01-06 14:55:20 -08:00
96add0ba65 Merge branch 'dev' into zeroidc 2022-01-06 14:54:09 -08:00
f5096a1f26 add wait for docker in controller startup script 2022-01-06 14:51:56 -08:00
3d4d087f07 make some impl functions pub 2022-01-05 15:43:45 -08:00
953e62f103 Clean up some extraneous output in release mode 2022-01-05 11:55:47 -08:00
084727c54a link zeroidc to selftest 2022-01-05 11:55:25 -08:00
8ea192fcab update dependency specs 2022-01-05 08:44:01 -08:00
dceba1f2f1 Merge branch 'dev' into zeroidc 2022-01-05 08:35:15 -08:00
73878fbdc4 Merge pull request #1531 from StephenCWills/mingw32-disable-salsasse
Disable Salsa20 SSE on MinGW 32-bit compiler
2022-01-04 17:42:40 -08:00
87d17088cc Disable Salsa20 SSE on MinGW 32-bit compiler 2022-01-04 20:39:08 -05:00
cc6c48fca8 Merge pull request #1525 from StephenCWills/lowercase-windows-headers
Use lowercase when including Windows headers
2022-01-04 17:11:51 -08:00
e556a2ee23 Merge pull request #1528 from StephenCWills/android-miniupnpc
[Android] Fix include for miniupnpc
2022-01-04 16:56:05 -08:00
50b866c5cf clean up & pass along errors from ZeroIDC::new() method 2022-01-03 17:25:30 -08:00
f83eed9ef9 [Android] Fix include for miniupnpc 2022-01-03 12:15:21 -05:00
cb9313a454 Merge branch 'dev' into zeroidc 2022-01-03 08:37:10 -08:00
cf411efd1d a little cleanup 2022-01-03 08:36:16 -08:00
1c956494a4 Use lowercase when including Windows headers 2021-12-29 16:29:08 -05:00
dbe3aa1efc Merge branch 'master' into dev 2021-12-17 17:41:03 -05:00
4128d80974 1.8.5 version bump. 2021-12-17 17:40:00 -05:00
057356a725 Just some comments 2021-12-16 22:07:17 -08:00
a69e91c541 Fix hash verification on refresh 2021-12-16 19:49:15 -08:00
8fccf3136c Enable validation of token hashes as part of the oidc process 2021-12-16 18:44:36 -08:00
2435ab70ab remove some extra verbose logging
... and baby you got a full flow goin on
2021-12-16 12:37:22 -08:00
f489862500 update final page text a smidge 2021-12-16 12:20:31 -08:00
2642fa1ee2 Return HTML instead of blank page when auth is successful! 2021-12-16 12:06:16 -08:00
2293b0703f Can get Central JSON bundle back to zerotier-one window 2021-12-16 11:37:58 -08:00
1375e3e2f5 allow debug & release builds of Rust 2021-12-15 15:53:48 -08:00
0ab5cce878 TIL: Its not as hard as I thought to make Rust deadlock 2021-12-15 14:37:06 -08:00
b567e91f68 fix 2021-12-15 14:36:50 -08:00
eee31605b1 Merge branch 'dev' into zeroidc 2021-12-15 14:17:26 -08:00
df9a7497b1 refactor out the separate AuthInfo struct
consolidated everything into the single IDC struct.  Should help keep from rotating the pkce token as often & causing issues with the login window flapping
2021-12-15 14:16:17 -08:00
c6adb6df12 Merge pull request #1513 from andrejbinder/dev 2021-12-15 13:25:12 -08:00
aeec7dae36 Prevent arithmetic error on interface change. 2021-12-15 22:22:02 +01:00
fa58909d44 Merge branch 'dev' of github.com:zerotier/ZeroTierOne into dev 2021-12-15 12:32:41 -05:00
06ed114fb6 Release notes and GitHub issue #1512 2021-12-15 12:32:28 -05:00
bdef9d3bd7 Fix situation where too many ECHOs are sent to multipath peer 2021-12-14 21:20:58 -08:00
b154b7296c Improve multipath logging output 2021-12-14 21:13:19 -08:00
8019f13479 Merge branch 'dev' of https://github.com/zerotier/zerotierone into dev 2021-12-14 15:31:29 -08:00
1c6fd4125d Fix custom policy parsing bug mentioned in issue #1507 2021-12-14 11:49:43 -08:00
1f99f1d5f4 Merge pull request #1488 from zerotier/macos-ipv6-config
Convince macOS to do ipv6 dns lookups
2021-12-14 08:54:45 -08:00
30c77cfee5 Merge pull request #1510 from zerotier/nolint
removing commit linter
2021-12-13 21:35:36 +01:00
afdc91f21f Convince macOS to do ipv6 dns lookups
Puts a value into System Config, similar to how DNS push works.

closes #1466

https://apple.stackexchange.com/questions/309430/ipv6-dns-resolution-on-macos-high-sierra
2021-12-13 12:34:41 -08:00
3470c5314d removing commit linter 2021-12-13 21:25:17 +01:00
f0e824416b Merge pull request #1509 from zerotier/dev-antiflap
Proposed fix for "path amnesia"
2021-12-13 15:17:40 -05:00
52ff67fb2c Merge pull request #1504 from capruro/patch-1
Version bump to 1.8.4
2021-12-13 11:56:51 -08:00
e9375b50b0 Prevent path-amnesia 2021-12-13 11:54:23 -08:00
1f43a736b2 Fix active-backup path selection bug 2021-12-09 13:43:52 -08:00
05a0a20197 Fix multipath flow reallocation. Prevent allocation to dead paths 2021-12-08 14:32:58 -08:00
2ee595553a Merge branch 'dev' into zeroidc 2021-12-08 12:35:36 -08:00
2d4fe9e6d0 Get oidc lib compiled into main binary on Windows 2021-12-08 12:14:15 -08:00
dc12bde068 add vs makefile project to build oidc rust library 2021-12-08 09:49:29 -08:00
b3fbbd3124 refresh tokens now working
Still investigating the best way to do a couple things, but we have something working
2021-12-07 16:29:50 -08:00
983336911c Remove obsolete documentation 2021-12-07 09:14:54 -08:00
48b39ab005 removing comments 2021-12-03 17:46:37 -08:00
5095d73de3 moar better error handling 2021-12-03 16:32:27 -08:00
1192b1b422 refresh token run loop
Need central-side work to complete
2021-12-03 15:44:04 -08:00
43c528fdb6 Get expiry time out of access token & propagate 2021-12-03 11:32:29 -08:00
da4b9922d4 Merge branch 'dev' into zeroidc 2021-12-03 09:58:04 -08:00
7a8c89be9d Post ID token to Central 2021-12-03 09:57:39 -08:00
3b37db1a36 Version bump to 1.8.4 2021-12-03 14:30:05 +01:00
5ae0f9d03f Add a few more Snap targets to Linux makefile 2021-12-02 10:54:43 -08:00
1dd1bf8bac Add Snap targets to Linux makefile 2021-12-02 10:07:41 -08:00
8966002685 Merge branch 'dev' into zeroidc 2021-12-01 16:59:06 -08:00
4ce810b421 On our way to processing tokens 2021-12-01 16:57:18 -08:00
730482e62f encode network ID into sso state param 2021-12-01 15:02:21 -08:00
eac56a2e25 Build fix in ARM flags for Snap builds. 2021-12-01 17:27:55 -05:00
5c3a2357ef VERSION 1.8.4 2021-12-01 17:01:57 -05:00
663a09b38d oidc stuff coming across the wire properly and generating a working login URL 2021-12-01 13:01:32 -08:00
eaccce743f moar plumbing progress 2021-12-01 12:07:05 -08:00
7cce23ae79 wip 2021-12-01 10:44:29 -08:00
73c186b111 add network_id extra param to auth flow 2021-12-01 09:27:30 -08:00
5ce0019ee5 ARM wrestling. 2021-12-01 10:40:01 -05:00
ca8d315924 Merge branch 'dev' into zeroidc 2021-11-30 18:42:45 -08:00
dfdac7adbd iomanip 2021-11-30 17:31:46 -08:00
a33d7c64fe more fixin 2021-11-30 17:27:13 -08:00
e37c9055b3 ARM flags 2021-11-30 19:54:17 -05:00
d15516f0ef query fix & controller build fix 2021-11-30 16:18:34 -08:00
4a1d6f4cc8 get central controller docker builds working again 2021-11-30 15:22:31 -08:00
6393a4beec progress 2021-11-30 14:22:25 -08:00
06125c48bc Another build speedup. 2021-11-30 15:35:18 -05:00
8cda04cc98 Use nproc to get the number of cores on Linux to speed up bounds. 2021-11-30 13:14:38 -05:00
f20b7e8cee ARM32 flags update. 2021-11-30 12:35:22 -05:00
19dded141a Merge branch 'dev' of github.com:zerotier/ZeroTierOne into dev 2021-11-30 12:27:15 -05:00
d19cf1eaac Merge branch 'dev' of http://10.95.0.64/zerotier/ZeroTierOne into dev 2021-11-30 09:10:14 -05:00
d6b00bcd40 Fix Windows 32-bit installation. 2021-11-30 09:10:07 -05:00
1b1fe61fd0 Merge branch 'dev' of https://github.com/zerotier/zerotierone into dev 2021-11-29 19:44:51 -08:00
3bce783cbc Add minor help tip to Snap instructions 2021-11-29 19:44:34 -08:00
5966f7d9d2 Merge branch 'dev' of github.com:zerotier/ZeroTierOne into dev 2021-11-29 22:03:58 -05:00
aed0b4941f GUID bump for Windows 2021-11-29 22:03:40 -05:00
9ef75c0e13 Merge branch 'dev' into zeroidc 2021-11-29 14:12:10 -08:00
5f548705dd lots more refactoring 2021-11-29 14:11:29 -08:00
39d3c8402e Merge branch 'dev' of https://github.com/zerotier/zerotierone into dev 2021-11-26 11:00:48 -08:00
5cb6265547 Re-word Snap package description 2021-11-26 10:59:42 -08:00
03dd537ea4 1.8.4 in Windows 2021-11-23 17:36:24 -05:00
4af8f1bf03 1.8.4 🦃 2021-11-23 16:39:20 -05:00
ae8df648d5 Merge branch 'dev' of github.com:zerotier/ZeroTierOne into dev 2021-11-23 15:44:54 -05:00
5e24166318 Remove unused but shipped curl dependency in ext/ 2021-11-23 15:44:08 -05:00
4e10b4e017 Modify snap command aliases 2021-11-19 08:16:14 -08:00
87fdd644d4 cleanup some ifdef'd things 2021-11-18 13:36:09 -08:00
2e356613ec Refactor NetworkState into object with accessor methods 2021-11-18 12:39:55 -08:00
91e9b736dd make service objs dependent on zeroidc 2021-11-18 10:42:12 -08:00
7f4cc1a239 VERSION 1.8.3 2021-11-16 13:27:27 -05:00
3e3d46e72e Windows 1.8.3 2021-11-16 12:04:10 -05:00
460c2552a8 Merge branch 'master' of github.com:zerotier/ZeroTierOne 2021-11-16 11:24:08 -05:00
1a7fb83882 Release notes. 2021-11-16 11:23:57 -05:00
dfac6303bc Version bump (all but Windows) and limit .pkg to MacOS 10.13 2021-11-15 19:55:58 -05:00
8b77a93d60 release notes 2021-11-15 19:51:56 -05:00
fabfb10b97 Remove managed routes in destructor (regression fix). 2021-11-15 19:48:07 -05:00
65549cb0da Fix the FD leak fix, and release notes. 2021-11-15 18:27:14 -05:00
bee137c6d9 Set shell for ZeroTier service user account on Debian to /usr/sbin/nologin for GitHub issue #1492 2021-11-15 17:27:16 -05:00
a2a7122da9 release notes 2021-11-15 17:18:04 -05:00
0e798222a7 Fix FD leak on MacOS. 2021-11-15 17:17:05 -05:00
c890f1762a This code is obsolete but remove vfork anyway. 2021-11-15 14:09:52 -05:00
ea4d7ae92f Add spinlock removal to release notes. 2021-11-15 12:16:22 -05:00
1ef385b685 Spinlock removed, causes long standing issues on single core machines. 2021-11-12 16:44:54 -05:00
0875fb5fe0 have this make an rlib too for the future 2021-11-11 16:29:14 -08:00
b5186f7293 Merge branch 'dev' into zeroidc
# Conflicts:
#	.gitignore
2021-11-11 16:20:43 -08:00
fa21fdc1cc rename stuff for clarity
authenticationURL will still be used by the client for v1 and v2 of sso
2021-11-11 16:19:26 -08:00
3f4cd7f5a2 Merge pull request #1489 from capruro/master
removing source-type from snapcraft
2021-11-11 13:53:43 -08:00
272fb2ca96 Merge branch 'dev' of github.com:zerotier/ZeroTierOne into dev 2021-11-10 22:19:59 -05:00
a7116bc971 VERSION 1.8.2 2021-11-10 22:19:11 -05:00
502cbc2175 Merge branch 'master' of github.com:zerotier/ZeroTierOne 2021-11-10 22:18:48 -05:00
953d22de14 VERSION 1.8.2 2021-11-10 22:18:35 -05:00
cacfc294d9 Windows package version bump and PATH fix. 2021-11-10 20:04:36 -05:00
f8ca7002c2 removing source-type
Unnecessary
2021-11-10 23:15:41 +01:00
6c728313f5 Merge branch 'master' into dev 2021-11-10 13:09:56 -08:00
1a2dc67702 Merge pull request #1487 from capruro/master
Adding snapcraft
2021-11-10 13:07:07 -08:00
f7dbd050af snapcraft 2021-11-09 19:33:11 +01:00
c16b03c8b8 Set MAC address twice, once before and once after bringing interface up, since different kernels behave differently (Linux). 2021-11-09 13:28:15 -05:00
357e1aca54 Likely MAC fix for Linux. 2021-11-09 13:24:03 -05:00
c15890b4db Version bump to 1.8.2. 2021-11-09 09:31:52 -05:00
f268237372 add FORCE tag to cargo step 2021-11-08 09:32:15 -08:00
4d021e16a5 update field lengths 2021-11-08 09:30:13 -08:00
62ce6e6a60 Disable faster x64 crypto mode for IA32 builds 2021-11-05 19:38:11 -07:00
c7109c646a Add IA32 build flag 2021-11-05 16:52:16 -07:00
43433cdb5a integrate rust build of zeroidc to linux 2021-11-04 17:16:23 -07:00
8d39c9a861 plumbing full flow from controller -> client network 2021-11-04 15:40:08 -07:00
f8bf91426b . 2021-11-02 16:30:09 -07:00
f7934972ea gitignore 2021-11-02 15:56:40 -07:00
4cadfd736f move ffi code into its own file 2021-11-02 15:55:26 -07:00
c46309ea8a Merge pull request #1478 from zerotier/fix-linux-multicast
Fix multicast flag on linux interfaces.
2021-11-02 11:38:33 -07:00
37f26beb50 Fix multicast flag on linux interfaces.
When we re-ordered the way the interfaces come up, this flag
stopped getting set automatically.

see 9374e45449
and github issue #1477
2021-11-02 11:28:13 -07:00
1c7a5439d5 expose AuthInfo struct to external code
also get the auth URL
2021-10-29 16:04:19 -07:00
ebc4c898ff pass in csrf token & nonce (generated externally) 2021-10-29 15:43:39 -07:00
56cf874d99 slow progress 2021-10-29 15:31:23 -07:00
079ff50622 Merge branch 'dev' into zeroidc 2021-10-29 09:44:11 -07:00
31888f5ef8 provide issuer URL, client ID and local web port to constructor
also construct the oidc client
2021-10-29 09:43:14 -07:00
7a626abf15 remove BondController.cpp from android makefile 2021-10-28 12:37:36 -07:00
3c7bd65bc9 Merge branch 'master' of github.com:zerotier/ZeroTierOne 2021-10-28 14:46:58 -04:00
01bf3b8245 1.8.1 merge of changes in master 2021-10-28 14:46:38 -04:00
a6c1998c81 VERSION 1.8.1 -- see RELEASE-NOTES.md 2021-10-28 14:24:27 -04:00
0069b1bac3 we can start & stop a thread. so that's nice. 2021-10-28 09:29:33 -07:00
25c5cad1d1 Advanced Installer for Windows. 2021-10-28 08:52:31 -04:00
c689c0bd8c integrate with mac build system and add skeleton 2021-10-27 17:09:01 -07:00
271dfc0d2b initial rust oidc lib 2021-10-27 16:11:06 -07:00
0032df3bf1 Merge branch 'dev' into zeroidc 2021-10-27 15:02:46 -07:00
993e58773a needed in 2 more spots 2021-10-27 14:58:17 -07:00
8f4c038e23 fix ifdef
wasn't running IPv6 temporary address detection for binding
2021-10-27 14:48:07 -07:00
81f2c57656 Properly launch the app on post-install restart. 2021-10-27 16:17:57 -04:00
594853e251 Remove deprecated vfork call on Mac, and make Mac route application more robust. 2021-10-26 22:15:06 -04:00
cce8411c22 Make debian parallelism sane. 2021-10-20 20:51:01 -07:00
786906b0f7 Version bump to 1.8.1 2021-10-20 19:33:32 -07:00
aed37a391d Windows installer updates for 1.8, install dependencies. 2021-10-20 21:33:20 -04:00
cc6de583be Prevent balance-xor from de-allocating from bad paths 2021-10-20 10:48:07 -07:00
b277e04efa Remove vestigial bonding parameters 2021-10-18 20:52:49 -07:00
95032cc74d add sso version to network config object 2021-10-14 11:40:48 -07:00
3818351287 use pqxx::pipeline for online update thread 2021-10-06 09:39:30 -07:00
4d26b5a868 no reason for this to be a pointer 2021-10-05 17:02:50 -07:00
ac0dc7844f rework commit thread & some connection pool borrowing issues 2021-10-05 09:25:24 -07:00
27e3597d5e Merge branch 'dev' into central-controller 2021-10-01 11:30:23 -07:00
9e8de2a702 Compilation fix 2021-10-01 11:19:04 -07:00
165757176a Potential fix fro deadlock bug 2021-10-01 11:11:20 -07:00
a411b83a65 remove strip calls from linux makefile 2021-10-01 09:05:35 -07:00
12900d914a Merge branch 'zerotier:master' into win-service-description 2021-09-29 15:47:55 +02:00
190e9464ce adding commit message linter 2021-09-28 17:15:44 +02:00
57dd26baa9 adding commit linter 2021-09-28 17:06:50 +02:00
19f3a97a8d More reverting of dumb PR 2021-09-23 19:02:38 -04:00
375e5ee7dd Revert stupid spam PR AGAIN 2021-09-23 18:59:48 -04:00
05df378dce clear variables between gets for dump 2021-09-22 16:13:54 -07:00
f1efea6800 Merge branch 'master' of github.com:zerotier/ZeroTierOne 2021-09-22 13:26:45 -04:00
eb1cafcd01 Windows installer. 2021-09-22 10:43:53 -04:00
81de6d2dfa Merge branch 'dev' of http://10.95.0.64/zerotier/ZeroTierOne into dev 2021-09-22 10:31:17 -04:00
9e38c31b64 Windows installer fun. 2021-09-22 10:31:07 -04:00
7d1f447458 Build fix. 2021-09-22 09:20:53 -04:00
1b66a1cd2f Version bump. 2021-09-21 14:26:00 -04:00
eabe091038 Backport only the COM mitigation instead of everything from 1.8 2021-09-21 14:14:34 -04:00
b403f106fb Revert "Use a faster method of fingerprinting identities."
This reverts commit b72e5e8386.
2021-09-21 09:57:08 -07:00
75a45eeb27 Revert "Backport guts of 1.8 to 1.6 tree so we can point release without waiting for UI quirks to be fixed."
This reverts commit 48ce7632fa.
2021-09-21 11:51:26 -04:00
452b1e806b Revert "Version bump, backport one more fix."
This reverts commit 9f9a870399.
2021-09-21 11:51:10 -04:00
9f9a870399 Version bump, backport one more fix. 2021-09-21 11:31:25 -04:00
48ce7632fa Backport guts of 1.8 to 1.6 tree so we can point release without waiting for UI quirks to be fixed. 2021-09-21 11:20:15 -04:00
30d5d5a892 Revert "Don't assume roots validated the identity, just in case they did not."
This reverts commit 39b97f9163.
2021-09-20 19:27:01 -07:00
9bc79f94df Revert "Don't assume roots validated the identity, just in case they did not."
This reverts commit 39b97f9163.
2021-09-20 22:05:49 -04:00
a0239e17e9 Revert "Use a faster method of fingerprinting identities."
This reverts commit b72e5e8386.
2021-09-20 22:05:39 -04:00
c8a58b4b04 Use a faster method of fingerprinting identities. 2021-09-20 17:05:23 -07:00
b72e5e8386 Use a faster method of fingerprinting identities. 2021-09-20 20:02:39 -04:00
565885a4c0 Remove ancient controller support.
# Conflicts:
#	RELEASE-NOTES.md
2021-09-20 15:41:57 -07:00
134d33c218 Add a bit of hardening in the network certificate of membership by incorporating a full hash of the identity to which it is issued. This means the recipient need not depend entirely on the root verifying identities properly to make sure impersonation is not occurring. 2021-09-20 15:40:55 -07:00
9cfb807fcb Don't assume roots validated the identity, just in case they did not. 2021-09-20 15:40:44 -07:00
46adc1f059 ifdef this out 2021-09-20 15:39:53 -07:00
9002555596 ensure count > 0 2021-09-20 15:39:44 -07:00
3b375b55c2 fix central docker launch without redis 2021-09-20 15:39:14 -07:00
3f49570f45 Remove ancient controller support. 2021-09-20 18:38:29 -04:00
7c3166e9be Add a bit of hardening in the network certificate of membership by incorporating a full hash of the identity to which it is issued. This means the recipient need not depend entirely on the root verifying identities properly to make sure impersonation is not occurring. 2021-09-20 18:26:49 -04:00
39b97f9163 Don't assume roots validated the identity, just in case they did not. 2021-09-20 16:15:59 -04:00
af79be5002 Update PGP keyserver URL 2021-09-20 13:51:41 -03:00
a20a290836 ifdef this out 2021-09-15 15:27:29 -07:00
e822463916 Merge branch 'dev' of github.com:zerotier/ZeroTierOne into dev 2021-09-15 13:31:22 -04:00
d2c3ea6901 Another route fix on BSD. 2021-09-15 13:31:18 -04:00
83265768c1 ensure count > 0 2021-09-15 09:45:10 -07:00
27ce787fbd fix central docker launch without redis 2021-09-15 09:21:41 -07:00
9c6ec2c52e Version bump. 2021-09-15 11:55:07 -04:00
3a4425fd4e Merge branch 'dev' of github.com:zerotier/ZeroTierOne into dev 2021-09-15 11:51:09 -04:00
6bb1598fa3 Another fix for routing and interface issues on MacOS 2021-09-15 11:50:54 -04:00
4eb6a4286e using json.hpp 3.10.2 2021-09-15 08:21:45 +02:00
a9942ca412 more RELEASE-NOTES 2021-09-15 08:12:25 +02:00
8d21ae9813 Merge branch 'dev' of https://github.com/zerotier/zerotierone into dev 2021-09-10 13:26:54 -07:00
ff8044f0c0 Improve multipath startup time 2021-09-10 13:26:29 -07:00
1b8917a57c Fix for MacOS interface setup and config timing bugs. 2021-09-09 09:30:48 -04:00
a91c49fa52 Advanced installer changes and build fixes for Windows. 2021-09-08 17:51:42 -04:00
e607348c7e Fix bad index bug (during switching) in balance-rr 2021-09-07 21:41:54 -07:00
b6ed919fbc Call recordOutgoingPacket regardless of policy to generate sufficient entropy for bond layer 2021-09-07 13:44:02 -07:00
109252be4e Remove debug trace 2021-09-06 20:13:13 -07:00
a4b98518e3 Nominate newly-learned paths to bond 2021-09-06 15:29:03 -07:00
c3a42bf590 remove heartbeat log 2021-09-02 16:46:42 -07:00
8b95afa96a logging 2021-09-02 16:32:40 -07:00
6a49a766ca logging 2021-09-02 16:22:59 -07:00
932584f8fc Merge branch 'dev' of github.com:zerotier/ZeroTierOne into dev 2021-09-02 17:56:18 -04:00
d7ba2957cd Tear down routes before devices when leaving a network or shutting down. 2021-09-02 17:56:06 -04:00
16ff14bda7 identify controller in pool stats 2021-09-02 13:48:08 -07:00
57c1d96b71 math 2021-09-02 12:48:49 -07:00
40f376e2b9 print db pool stats periodically 2021-09-02 12:45:26 -07:00
1a1d7d9ada Merge branch 'dev' of github.com:zerotier/ZeroTierOne into dev 2021-09-02 15:23:38 -04:00
d1c88971ae Possible Mac route borking fix. 2021-09-02 15:23:26 -04:00
dc61f78916 set psql application_name in startup script 2021-09-02 11:24:07 -07:00
a2ffe8c05e dont generate nonce for deleted members 2021-09-02 11:24:04 -07:00
e1af003e4f Consolidation of multipath logic. Better system separation 2021-09-01 21:37:49 -07:00
19391858d4 Version 1.7.2, almost 1.8.0 2021-09-01 22:01:41 -04:00
5005244d1b Mac install fixes, remove obsolete stuff, and write local.conf via API for new UI integration. 2021-09-01 21:55:54 -04:00
15380cfc14 Merge pull request #1400 from rollcat/openbsd
Use clang on OpenBSD
2021-09-01 14:08:23 -07:00
11b352458e Pick a new random secondary port if we are offline for more than path-timeout seconds (COMA problem workaround). 2021-08-31 16:47:00 -04:00
b6680b18e7 Merge pull request #1304 from skunkwerks/dev
BSD: add debug fprintf for all external commands
2021-08-30 10:11:53 -07:00
ec4c2aa12f versions 2021-08-26 11:13:13 -04:00
0e8c43cfdd Merge branch 'dev' of http://10.95.0.64/zerotier/ZeroTierOne into dev 2021-08-23 11:58:06 -04:00
958420ee44 Fix Windows slowness on API query bug. 2021-08-23 11:58:02 -04:00
2d8a54f05d Version bump -- still pre1.8 2021-08-23 11:57:12 -04:00
d0f4cfe6b4 print load status messages a little less often now that things go brrrrrrrrr 2021-08-20 10:34:00 -07:00
3ec23f92ec helps to add part of the query 2021-08-20 10:30:37 -07:00
6baac1b4e0 more query optimizations 2021-08-20 10:27:45 -07:00
1d8b8d8e9c optimize the controller build & ship workflow a bit 2021-08-20 09:22:44 -07:00
50b0b2e2e9 query optimization 2021-08-19 17:55:30 -07:00
20721491e8 kill some noisy logs 2021-08-19 13:03:56 -07:00
eec46a137e optimize data loading from psql on startup 2021-08-19 12:44:02 -07:00
9eae444104 kill some verbose logs 2021-08-19 09:21:52 -07:00
576b4f03a5 Adjust deauth time window and send revocation when SSO members expire. 2021-08-18 12:17:40 -04:00
2d0f76bb9c Make desktop UI project when making official release. 2021-08-13 21:40:22 -04:00
6492f4487b Merge branch 'dev' of http://git.int.zerotier.com/zerotier/ZeroTierOne into dev 2021-08-13 15:12:23 -04:00
126669b718 MTU fix 2021-08-13 15:12:07 -04:00
6fd45c1f9d Throw old WinUI in attic 2021-08-12 18:51:45 -04:00
4eb3b762d4 MacOS pkg update to reference DesktopUI project and add hostArchitecture flags to not require Rosetta even though the binaries are multiarch. 2021-08-11 15:05:51 -04:00
f24afca1ba Put old school MacUI in the attic. 2021-08-11 13:19:49 -04:00
461810b06a Move return so record gets created before URL. 2021-08-10 11:22:29 -04:00
20050662b2 Merge pull request #1430 from zerotier/mac-managed-route-issue-1104
Don't use v6 source addresses for v4 routes
2021-08-04 13:14:10 -07:00
2053415418 Fix erroneous listpeers last send and receive values 2021-08-04 12:16:26 -07:00
613d7b5ece fix backwards logic 2021-08-04 09:16:04 -07:00
db29c3ac13 Don't use v6 source addresses for v4 routes
and vice versa.

For issue #1104

With some printf debugging, I was seeing:

here, src fe80::3c7a:2dff:fe0c:21ed, target 10.147.20.0, matchingPrefixBits 0, mostMatchingPrefixBits 0
here, src fd8b:d512:4fd6:255:3c99:932f:2fda:6eff, target 10.147.20.0, matchingPrefixBits 0, mostMatchingPrefixBits 0

and (matchingPrefixBits >= mostMatchingPrefixBits) would be true

Then on mac, somewhere downstream from there, the default route would
get messed up:

default via 92:29:f1:6f:2f:76 dev en0
2021-08-03 16:21:18 -07:00
c101d71d7c Tweak auth timeout notify. 2021-07-30 18:44:34 -04:00
63a44c9268 Fix feth max MTU sysctl. 2021-07-30 18:44:23 -04:00
5623a0b420 fix central controller build from linux 2021-07-27 10:18:48 -07:00
663e748b8d Deauth expiring members right away. 2021-07-26 23:45:18 -04:00
0cf62d334d Remove pointless check. 2021-07-26 13:38:35 -04:00
0872012cd9 small fix 2021-07-26 13:11:01 -04:00
c2d8fe46d5 About ready to test notify of SSO timeout... 2021-07-23 19:20:10 -04:00
0310bfa3e3 Include authentication URL in config 2021-07-23 19:17:42 -04:00
efe0e8aa7b Notification of about-to-expire status... almost there. 2021-07-23 19:05:59 -04:00
5c7e51feaf Merge branch 'dev' of github.com:zerotier/ZeroTierOne into dev 2021-07-23 18:49:05 -04:00
34de579c91 Handling of soon-to-expire members 2021-07-23 18:49:00 -04:00
0ed9db05d2 Restore original ECHO rate limiting (changed for multipath) 2021-07-20 19:06:47 -07:00
46387e2f2b Minor Readme updates
People with support issues still commonly say "9993 is open. why doesn't
work?"
Trying to improve this across all of our docs.
2021-07-16 15:17:54 -07:00
8913f13b36 Add website links to top of readme 2021-07-16 14:46:53 -07:00
e5007f1290 Delete outdated 2021-07-16 14:20:43 -07:00
740c77a488 Add more help for local.conf 2021-07-16 14:20:30 -07:00
73ddea8864 use network ID, not controller ID for looking up network data 2021-07-06 14:15:01 -07:00
10215af96d whoops 2021-07-06 13:18:08 -07:00
e67fee0264 debug logging 2021-07-06 13:08:21 -07:00
5ece4f734a fix error message 2021-07-06 13:08:16 -07:00
27409b615a Merge branch 'thoradia-bind' into dev 2021-06-29 11:44:35 -07:00
8866fbd618 Merge branch 'bind' of https://github.com/thoradia/ZeroTierOne into thoradia-bind 2021-06-29 11:22:46 -07:00
8885149cd3 Revert "Revert "Revert a change to LinuxEthernetTap threading to eliminate out of order packet issues on some systems.""
This reverts commit 89ddf2991b.
2021-06-28 19:29:53 -04:00
89ddf2991b Revert "Revert a change to LinuxEthernetTap threading to eliminate out of order packet issues on some systems."
This reverts commit 0461b24db3.
2021-06-28 17:59:28 -04:00
547b0de8a5 Merge branch 'dev' of github.com:zerotier/ZeroTierOne into dev 2021-06-28 17:15:59 -04:00
0461b24db3 Revert a change to LinuxEthernetTap threading to eliminate out of order packet issues on some systems. 2021-06-28 17:15:34 -04:00
c698e9c122 Merge pull request #1420 from zerotier/someara/dev-json-hpp
updating json.hpp to 3.9.1
2021-06-24 23:30:58 +02:00
8f84a968de updating json.hpp to 3.9.1 2021-06-24 20:33:45 +02:00
f8ea7fdc2b Fix for GitHub #859
Wrong DB::get() method being called to look up the network member for deletes
2021-06-24 10:32:21 -07:00
7b0d11b187 Merge pull request #1408 from erikh/docker-release-fixes
Small dockerfile release fixes
2021-06-08 08:44:53 -07:00
8dd3639576 set ssoEnabled = true on network config if we get ERROR_NETWORK_AUTHENTICATION_REQUIRED 2021-06-05 14:00:03 -07:00
364ad87e2b add ssoEnabled flag to network config 2021-06-05 13:44:45 -07:00
9380ef708a debug strings & query fixes 2021-06-05 13:44:07 -07:00
fd174b3459 fix auth time lookup 2021-06-04 20:55:22 -07:00
21d27c314c HMACSHA384 the nonce bytes, not the hex encoded nonce bytes 2021-06-04 20:06:04 -07:00
0b89a49201 typo 2021-06-04 16:56:28 -07:00
de718d9743 handle ZT_SSO_REDIRECT_URL env file in docker 2021-06-04 16:32:02 -07:00
e6b4fb5af7 add "ssoRedirectURL" to local.conf
plumbed it through to the central controller code
2021-06-04 16:29:03 -07:00
c227330d09 fix redirect_uri substitution 2021-06-04 15:58:38 -07:00
c769e282fb Merge branch 'dev' of github.com:zerotier/ZeroTierOne into dev 2021-06-04 18:52:23 -04:00
98722ed7ea Increase URL buffer sizes 2021-06-04 18:52:10 -04:00
b16f40c0de . 2021-06-04 15:18:18 -07:00
fd85f87ade handle null in result set 2021-06-04 15:15:42 -07:00
add33f1ab3 cast to bigint in query 2021-06-04 14:48:41 -07:00
3bfc438ae8 null handling 2021-06-04 14:40:14 -07:00
1dfe909bab Increase authentication URL sizes. 2021-06-04 16:46:56 -04:00
75d17ea3c8 Helps to commit when trying to write a change to the db 2021-06-04 13:20:03 -07:00
96d15337bb default 0 2021-06-04 13:19:39 -07:00
74a678c1e1 chicken or egg problem.
member must exist in the database before we can generate a nonce & SSO URL
2021-06-04 12:49:26 -07:00
fed1846c6f need tres commas 2021-06-04 12:19:52 -07:00
f27d193cf6 . 2021-06-04 11:56:12 -07:00
7941b63543 another typo 2021-06-04 11:43:42 -07:00
21965ac8e8 yet another query fix 2021-06-04 11:40:03 -07:00
7ca2ecb421 put expiry time back on nc object 2021-06-04 11:39:52 -07:00
1dcfc03cbc another query fix 2021-06-04 11:22:30 -07:00
0702e581a1 remove some noisy log lines & fix a query error 2021-06-04 11:06:54 -07:00
c78792a705 moar temporary debug printfs 2021-06-04 11:00:51 -07:00
287c19e822 move this outside the auth block. If SSO is enabled, it should be checked whether authorized or not 2021-06-04 09:46:31 -07:00
bc901d613d check for nulls 2021-06-04 09:20:39 -07:00
2192a8b0ec do the ld.so dance in the docker container 2021-06-04 08:31:34 -07:00
6cb4c58d9a linux docker build 2021-06-03 18:30:32 -07:00
4f521baafd Big SSO update
make things hopefully work
2021-06-03 14:38:26 -07:00
81fda3f5b8 set a default and goes boom 🤦‍♂️ 2021-06-02 15:07:53 -07:00
91c4dfc7c0 database version 2021-06-02 14:49:12 -07:00
788296ea29 Expand links in a few spots since this'll be used in the docker image
Signed-off-by: Erik Hollensbe <linux@hollensbe.org>
2021-06-02 14:36:55 -07:00
60c1fcbc48 Docker usage README
Signed-off-by: Erik Hollensbe <linux@hollensbe.org>
2021-06-02 14:31:34 -07:00
fc6d90a04a set the correct default 2021-06-02 14:27:58 -07:00
faf0c6bbfa make sure to commit on online notification thread 2021-06-02 14:08:09 -07:00
79f1e81745 debug printf typo & line break 2021-06-02 13:51:47 -07:00
7427961fcf bug fixes & debug code 2021-06-02 13:46:54 -07:00
d2f1d05a06 handle cases where authenticationURL and authenticationExpiryTime don't exist 2021-06-02 13:46:43 -07:00
19f4146aca make DB::_memberChanged and _networkChanged virtual 2021-06-02 13:46:11 -07:00
47154fa623 transiton to libpqxx & connection pool for central controllers 2021-06-02 11:44:00 -07:00
5c508515c4 Fix issue requiring CAP_SYS_PTRACE
Signed-off-by: Erik Hollensbe <linux@hollensbe.org>
2021-06-01 12:30:01 -07:00
2824139510 Small dockerfile release fixes
- Activate zerotier-one.port file (we'll do more with this later)
- Add a better process trap

Signed-off-by: Erik Hollensbe <linux@hollensbe.org>
2021-06-01 09:27:05 -07:00
c2efdcabc5 fix 2021-05-28 15:01:42 -07:00
6f622e4551 no idea why these lines needed to be broken up
docker gonna docker
2021-05-28 15:00:54 -07:00
6d8c96b89f formatting 2021-05-28 14:19:13 -07:00
bf4bb414dd Merge branch 'dev' of github.com:zerotier/ZeroTierOne into dev 2021-05-28 17:08:44 -04:00
dee3361c1d Merge branch 'dev' of http://git.int.zerotier.com/zerotier/ZeroTierOne into dev 2021-05-28 17:08:35 -04:00
c470c6255e Postgres code for SSO (almost certainly needs work) 2021-05-28 17:08:24 -04:00
6faca86bb4 Update bugs-and-issues.md
Add troubleshooting tip
2021-05-27 19:48:01 -07:00
4fed56443e secondary ports are no longer based on the node ID and fully randomized instead 2021-05-27 15:41:11 -07:00
1859365f9d same IPv6 temp address detection code for macOS works on FreeBSD.
update ifdefs & go
2021-05-27 16:43:12 -04:00
ab87b8f881 Don't bind to temporary IPv6 addresses (linux) 2021-05-26 15:50:14 -07:00
b8b65da51c Don't bind temporary IPv6 addresses (macOS) 2021-05-26 11:01:44 -07:00
198e6f765c Don't bind to temporary Ipv6 addresses (windows) 2021-05-26 09:15:24 -07:00
810e2a761f Fix authentication URL... 2021-05-25 14:49:06 -04:00
6ce71c1bc3 Fix reporting of status. 2021-05-25 14:45:49 -04:00
6b3a7ec827 Fix a few things... 2021-05-25 14:40:40 -04:00
ed2360d9f7 Version bump. 2021-05-25 13:31:40 -04:00
1ce71f9dc0 Build fix. 2021-05-25 13:05:06 -04:00
18508b5a2e Build fix. 2021-05-25 13:04:14 -04:00
621898f3c5 Forgot to set auth info in NetworkConfig. 2021-05-25 13:02:06 -04:00
2c1d7f3dcc CLI printing of URL. 2021-05-25 12:58:33 -04:00
8bb5bc736d Merge branch 'dev' of github.com:zerotier/ZeroTierOne into dev 2021-05-24 22:58:36 -04:00
b270d527f4 Basic plumbing for authentication requirement and piping through of URL information. 2021-05-24 22:58:17 -04:00
1bd9e9078e libhiredis++ multi-arch binary 2021-05-21 15:48:19 -07:00
a3361a7d97 libhiredis + arm64 for controller 2021-05-21 15:35:26 -07:00
ca1715118f force mac native central controller builds to be x64 only for now 2021-05-21 15:29:35 -07:00
27ecb7c7b6 Merge branch 'xumng123-master' into dev 2021-05-18 00:26:17 -07:00
be7fca254f Merge branch 'master' of https://github.com/xumng123/ZeroTierOne into xumng123-master
Remove unnecessary include
2021-05-18 00:24:19 -07:00
b64ae8c8a5 Fix for bug #1403 2021-05-18 00:05:46 -07:00
b984eb2808 Use clang on OpenBSD 2021-05-06 13:04:58 +02:00
15905b2fe3 Merge pull request #1397 from zerotier/bugfix-bad-traces
Fix erroneous cast of verb to double that causes invalid tracing output
2021-05-04 10:33:10 -07:00
24615ed24b Fix erroneous cast of verb to double that causes invalid tracing output 2021-05-04 08:59:52 -07:00
13481cea18 Fix (some) compile-time warnings on Windows 2021-05-03 21:12:45 -07:00
7faaa55436 Merge branch 'dev' of https://github.com/zerotier/ZeroTierOne into dev-multipath 2021-05-03 19:41:41 -07:00
11ddbc6f30 Fix (some) compile-time warnings on Linux 2021-05-03 19:35:28 -07:00
29e5880d8b Match formatting of Bond-related sources to ZeroTier standard (no functional changes) 2021-05-03 17:59:31 -07:00
63fd2cbaeb Add ZeroTier standard .clang-format -- Keeping tabs for 1.X line. Mostly based on LLVM format. 2021-05-03 13:00:30 -07:00
9c58308e6a Merge pull request #1383 from erikh/docker-image-fixes
Multiple image fixes:
2021-04-28 13:26:37 -07:00
5fb814a04f Merge pull request #1388 from emundo/fix/1387-dns-issue
Fix macOS DNS issue
2021-04-28 13:19:09 -07:00
c69d2df0a2 Merge pull request #1390 from jonathonf/linux-tap-link-ordering
Set MAC address before bringing up Linux TAP link
2021-04-28 13:17:38 -07:00
46a7136b0d Merge branch 'dev' of github.com:zerotier/ZeroTierOne into dev 2021-04-28 16:16:17 -04:00
d2974f2e60 Do not inherit open file descriptors on fork() in MacEthernetTapAgent 2021-04-28 16:16:02 -04:00
ed8fe8990b Revert "Removed language from comments"
This reverts commit 1bd1923964.
2021-04-21 18:54:59 -04:00
50703534b1 Revert "Removed language from comments"
This reverts commit 57a225cb39.
2021-04-21 18:54:43 -04:00
4a7c156bf8 Revert "Removed language from comments"
This reverts commit 0a18e66a83.
2021-04-21 18:54:27 -04:00
54680a6edc Revert "Update zttap300.inf"
This reverts commit 3af693af34.
2021-04-21 18:54:11 -04:00
bac57e355d Set MAC address before bringing up Linux TAP link
This corrects the flow for bringing up a TAP device under Linux by
setting the device MAC address prior to bringing up the device.

Closes #1314
2021-04-21 20:46:13 +01:00
b8b1f64959 Revert "Reorder Linux TAP link sequence"
This reverts commit 9374e45449.
2021-04-21 20:45:17 +01:00
cdcd6c4886 Merge pull request #1389 from jonathonf/linux-tap-link-ordering
Reorder Linux TAP link sequence
2021-04-21 09:27:26 -07:00
4e8640b380 Handle case where no old DNS servers exist 2021-04-21 13:49:55 +02:00
9374e45449 Reorder Linux TAP link sequence
This corrects the flow for bringing up a TAP device under Linux.

Closes #1314
2021-04-21 12:30:51 +01:00
31ffe4403c Check if DNS servers need to be Applied on macOS 2021-04-21 12:02:31 +02:00
e8f7d5ef9e VERSION 1.6.5
This is a minor release that fixes some path stability issues and an issue with Windows interface enumeration.
2021-04-20 18:49:10 -04:00
ee0e306685 Windows version bump. 2021-04-20 14:56:33 -04:00
b37e9de24d BSD: add debug fprintfs for external commands 2021-04-15 06:37:01 +00:00
df0007d532 Update hard-coded default planet to latest. 2021-04-14 12:25:35 -04:00
b70c5b94bd 1.6.5 version bump 2021-04-13 16:59:47 -04:00
23f9baa9f2 Multiple image fixes:
- Can now provide the following environment variables to populate
secrets (nice for kubernetes, other situations)
  - ZEROTIER_API_SECRET: authtoken.secret
  - ZEROTIER_IDENTITY_PUBLIC: identity.public
  - ZEROTIER_IDENTITY_SECRET: identity.secret
- Joining networks by providing them as a part of docker's "command"
array should now work properly

Signed-off-by: Erik Hollensbe <linux@hollensbe.org>
2021-04-13 13:18:21 -07:00
537ce83498 yes 2021-04-13 16:12:11 +00:00
1732f7371c Minor bonding CLI fix 2021-04-07 15:15:35 -07:00
5262a2f753 Merge branch 'dev' of github.com:zerotier/ZeroTierOne into dev 2021-03-16 13:50:12 -04:00
79e2fd4586 Automatically detect Ethernet tap friendly name in Windows shouldBind stuff. 2021-03-16 10:12:55 -04:00
353905394e Fix interface blacklisting in shouldBindInterface 2021-03-09 12:34:01 -08:00
3870f7af27 Improve missing authtoken error message 2021-03-08 21:45:38 -08:00
b8e23e6fcc Merge branch 'master' into dev 2021-03-08 18:13:00 -08:00
a7f652781f Merge pull request #1364 from Pablohn26/master
Show the port number which is not able to connect
2021-03-08 18:12:12 -08:00
d3fd0d3916 Show the port number which is not able to connect 2021-03-09 02:25:41 +01:00
1beacf3000 Merge pull request #1347 from showipintbri/patch-1
Patch 1 - Language suggestion
2021-03-08 17:23:26 -08:00
88a1170966 Merge pull request #1354 from contrun/fix-sprintf-overflow
fix sprintf overflow
2021-03-08 17:07:54 -08:00
315a5cfd58 Fix ZT_SANITIZE flag handling in Linux makefile 2021-03-08 15:11:55 -08:00
a5a94e3c49 Merge pull request #1355 from erikh/docker-release-tooling
Initial docker release image tooling
2021-02-27 14:28:26 +01:00
ef784611b7 Initial docker release image tooling
Signed-off-by: Erik Hollensbe <github@hollensbe.org>
2021-02-24 03:43:45 -08:00
YI
d526dca1bb fix sprintf overflow 2021-02-19 23:42:38 +08:00
e8390afad5 VERSION 1.6.4
This version just fixes the "connection coma" bug some users have
experienced in 1.6.
2021-02-17 11:35:28 -05:00
9fdf83be60 Version bumpity bumpity bump. 2021-02-15 19:37:46 -05:00
147945d20f Lets try always supplying the AES keys to Packet dearmor() and see if that prevents the coma problem. 2021-02-13 00:01:49 -05:00
3af693af34 Update zttap300.inf 2021-02-03 22:31:16 -05:00
0a18e66a83 Removed language from comments 2021-02-03 22:30:34 -05:00
57a225cb39 Removed language from comments 2021-02-03 22:29:42 -05:00
1bd1923964 Removed language from comments 2021-02-03 22:26:41 -05:00
7c2066c258 VERSION 1.6.3 2021-02-03 22:06:34 -05:00
ac808d51d6 Crash fix 2021-02-03 18:56:07 -05:00
378bc73bf8 Clean up some peer path learning logic, use a cheaper data structure. 2021-02-03 14:30:03 -05:00
8430db4dc7 Windows 1.6.3 version bump. 2021-02-02 17:52:27 -05:00
0f049da84f Dockerfile version bump to 1.6.3 2021-02-02 17:18:58 -05:00
a1b6cc44fc Revert wireguard blacklist by default... turns out we have people who depend on that. may revisit. 2021-02-02 17:09:35 -05:00
201fd7c421 Revert "Revert "GitHub issue #1317""
This reverts commit 89efd09e20.
2021-02-02 17:08:33 -05:00
89efd09e20 Revert "GitHub issue #1317"
This reverts commit c14d1047d2.
2021-02-02 17:08:07 -05:00
3eccb5a6f0 Merge branch 'master' into dev 2021-02-02 17:07:35 -05:00
191b802c50 docs 2021-02-02 17:07:28 -05:00
f4703905b9 docs 2021-02-02 17:05:30 -05:00
41a85b1de7 Merge pull request #1322 from capruro/patch-1
Update Dockerfile to 1.6.2
2021-02-02 17:05:19 -05:00
9021302578 Merge pull request #1330 from liweitianux/readme
README: Minor format fixes
2021-02-02 17:05:04 -05:00
e1aec2cb03 Merge pull request #1339 from dnadlinger/patch-1
.github: Fix typo in bug report template
2021-02-02 17:04:41 -05:00
3aa0390dba Merge branch 'master' into dev 2021-02-02 17:04:03 -05:00
d3770eeccc Merge branch 'master' of github.com:zerotier/ZeroTierOne 2021-02-02 17:03:48 -05:00
1d6b8393e3 Merge pull request #1341 from bradleydiggs/master
blacklist wg# (WireGuard) interfaces by default
2021-02-02 17:03:36 -05:00
c14d1047d2 GitHub issue #1317 2021-02-02 17:00:56 -05:00
343ccd911b Version bumps to 1.6.3 2021-02-02 16:51:02 -05:00
697c8c9882 Delete old code. 2021-02-02 16:17:53 -05:00
72d48da210 Fix duplicate paths and reduce thrashing issues. 2021-02-02 16:11:13 -05:00
b2b3271a96 Possible fix for path issues in 1.6.2 2021-02-02 14:55:47 -05:00
717e9238fe Merge branch 'master' of http://git.int.zerotier.com/zerotier/ZeroTierOne into dev 2021-02-02 14:46:15 -05:00
12c77459d0 Merge branch 'master' into dev 2021-02-02 14:45:58 -05:00
5b1c55023f Merge pull request #1 from bradleydiggs/wireguard-blacklist-default
blacklists wg# (WireGuard) interfaces by default
2021-01-14 02:49:25 -06:00
a401b21f3d blacklists wg# (WireGuard) interfaces by default
On certain OSes (Linux & Apple) tun#, tap#, and of course zt# are blacklisted by default, this adds wg# to the list as WireGuard is a similar popular service with wg# being the default adapter name(s) by convention.
2021-01-14 02:45:42 -06:00
3a6cc1d8b7 .github: Fix typo in bug report template 2021-01-13 18:07:58 +01:00
4944d044ce README: Minor format fixes 2020-12-20 17:12:34 +08:00
b3228ab307 update issue templates 2020-12-16 14:50:26 -08:00
68b0e13991 Update to 1.6.2 2020-12-13 13:54:43 +01:00
70d81277e0 1.6.2-2 for Debian. 2020-12-01 16:05:16 -05:00
48814c1bfe Merge branch 'dev' of http://git.int.zerotier.com/zerotier/ZeroTierOne 2020-12-01 16:02:53 -05:00
0587e432c0 ARM wrestling. 2020-12-01 13:02:19 -08:00
e4404164bd VERSION 1.6.2
See RELEASE-NOTES.md for details.
2020-11-30 19:33:39 -05:00
9d0b492642 Version bump. 2020-11-30 16:06:07 -05:00
5391e95fce Typo fix. 2020-11-30 15:52:56 -05:00
954f6a77e5 Another Linux fix. 2020-11-30 15:46:16 -05:00
e8c6b4ab16 Merge branch 'dev' of github.com:zerotier/ZeroTierOne into dev 2020-11-30 15:46:02 -05:00
21993819a5 Possible fix for Linux deadlock. 2020-11-30 15:41:47 -05:00
904348b2ad Merge branch 'dev' of github.com:zerotier/ZeroTierOne into dev 2020-11-30 09:20:47 -08:00
e59cec4e3c Merge branch 'master' into dev 2020-11-30 09:20:32 -08:00
c2eeb5d553 Merge branch 'dev' of github.com:zerotier/ZeroTierOne into dev 2020-11-30 12:12:12 -05:00
dea4bd01f4 Merge branch 'master' of github.com:zerotier/ZeroTierOne 2020-11-30 12:11:24 -05:00
ec52af420e Merge pull request #1306 from darkain/master
Fixing regression in AES for ARM targets
2020-11-30 08:59:38 -08:00
2aecb547d9 LinuxNetLink: Add cerrno header for (str)errno
Fixes compilation under libcxx.
2020-11-30 01:38:45 -08:00
3db328cc94 Fix minor semantic typo in error trace message 2020-11-29 16:57:30 -08:00
a624dfd776 Fixing regression in AES for ARM targets 2020-11-27 08:22:55 +00:00
af705ac504 VERSIOM 1.6.1
This is a minor point release to fix a number of issues. See
RELEASE-NOTES.md.
2020-11-26 00:49:38 -05:00
af6d01e79b Mac fix (probably) for old versions that require tap.kext. 2020-11-26 00:36:52 -05:00
1ef3b2d526 Windows build. 2020-11-25 21:36:31 -05:00
1afd097445 Microsoft signed 32-bit Windows x86 driver. 2020-11-25 23:45:28 -05:00
52fad6e18f Merge branch 'dev' of http://git.int.zerotier.com/ZeroTier/ZeroTierOne into dev 2020-11-25 23:35:47 -05:00
3f921c01a6 Merge branch 'dev' of http://git.int.zerotier.com/ZeroTier/ZeroTierOne into dev 2020-11-25 23:35:39 -05:00
eefe34354e Embeddable MSI for new MS-signed X64 Windows tap driver. 2020-11-25 23:35:32 -05:00
5188c7d41f com & com security already initialized by here 2020-11-25 20:06:43 -08:00
f2ba613fb5 line endings 2020-11-25 19:02:00 -08:00
6cfdd5b2c1 force eol=crlf for driver .inf files 2020-11-25 18:22:52 -08:00
f2cd7cd4eb set deployment target for tap agent 2020-11-25 15:34:52 -08:00
0a8b692482 fix device binding & possible loopback issue on FreeBSD 2020-11-25 12:03:17 -08:00
1542163689 Merge branch 'dev' of http://git.int.zerotier.com/zerotier/ZeroTierOne 2020-11-25 14:28:48 -05:00
9d66d876f4 Likely fix for some alignment issues on ARM. 2020-11-25 14:28:41 -05:00
0456a71295 Windows feedback loop fix 2020-11-25 11:05:36 -08:00
70b1b4ecc7 Buffer<> has no .empty() method 2020-11-25 09:49:58 -08:00
bc4bd29488 Merge branch 'master' of github.com:zerotier/ZeroTierOne 2020-11-25 10:50:35 -05:00
f906eec42e Merge branch 'dev' of http://git.int.zerotier.com/ZeroTier/ZeroTierOne into dev 2020-11-24 23:37:54 -05:00
73b5eadd3c Windows X64 Microsoft-Signed Driver for Windows 10 2020-11-24 23:37:37 -05:00
1f8905dfc9 Merge pull request #1191 from athoik/armv7ve
Add support for armv7ve
2020-11-24 19:25:53 -05:00
4465d36db5 Merge pull request #1194 from gutleib/master
Add support for Elbrus-family CPU
2020-11-24 19:25:10 -05:00
d64c5a92c6 Merge pull request #1233 from dosuperuser/improvement/optimizations
Minor C++ optimizations
2020-11-24 19:24:36 -05:00
0ba358a3d4 Merge pull request #1294 from darkain/master
Add ZT_NO_UNALIGNED_ACCESS for ARMv6/7 on FreeBSD
2020-11-24 19:23:19 -05:00
86ff1e7cd2 another comparison fix 2020-11-24 14:12:30 -08:00
13d7e2f2b9 Merge branch 'dev' of github.com:zerotier/ZeroTierOne into dev 2020-11-24 17:02:17 -05:00
bad1e0d529 CentOS build fixes to build in Cent7. 2020-11-24 14:01:46 -08:00
6b21a4f494 fix dns equality check in Android 2020-11-24 13:51:00 -08:00
891815054c Version bumps. 2020-11-24 16:27:19 -05:00
ce2fb18c02 Set MacOS version flag on assembly file. 2020-11-24 14:27:44 -05:00
2f359a43bf 1.6.1 notes 2020-11-23 20:17:09 -05:00
a1b72f0e1a Merge branch 'dev' of github.com:zerotier/ZeroTierOne into dev 2020-11-23 14:54:39 -08:00
de308f05e0 missing break in InetAddress::ipScope() 2020-11-23 14:54:13 -08:00
ecfac0601a Add new bond control commands to CLI 2020-11-23 09:59:28 -08:00
93ffd75b02 Add ZT_NO_UNALIGNED_ACCESS for ARMv6/7 on FreeBSD
Unaligned access caused SIGBUS errors on ARMv6 and ARMv7 targets under FreeBSD.

This was also the cause of the repeating TAP devices. Each time the SIGBUS happened, the service would auto-restart itself, create a new TAP device, and then crash again.

The particular place causing the SIGBUS was:
https://github.com/zerotier/ZeroTierOne/blob/master/node/Utils.hpp#L695
2020-11-21 13:30:31 -08:00
8af4eff43e Merge branch 'dev' of https://github.com/zerotier/ZeroTierOne into dev 2020-11-20 20:34:54 -08:00
167645ba6d Fix for musl libc. 2020-11-20 21:10:08 -05:00
baeab92737 VERSION 1.6.0
See RELEASE-NOTES.md for details.
2020-11-20 18:53:33 -05:00
24162fd490 Merge branch 'dev' of https://github.com/zerotier/ZeroTierOne into dev 2020-11-19 14:39:40 -08:00
95da2bcbcf move CoUninitialize to the proper place at the end of the tap thread 2020-11-19 14:13:16 -08:00
a9e4fb0ed9 Fix multiple networks on Windows 2020-11-19 14:10:34 -08:00
45b092532e Merge branch 'dev' of http://git.int.zerotier.com/zerotier/ZeroTierOne into dev 2020-11-19 13:44:03 -05:00
3ec932e194 MacOS ARM64 universal binary build fixes. 2020-11-19 13:43:57 -05:00
565bef05af Release notes and version bumps. 2020-11-19 13:24:30 -05:00
a0c78da1ad Revert "Tune thread count based on hardware concurrency."
This reverts commit 7b14aeb53e.
2020-11-18 22:54:05 -05:00
7b14aeb53e Tune thread count based on hardware concurrency. 2020-11-18 22:42:00 -05:00
f934a09baa Build fix. 2020-11-18 22:32:57 -05:00
414c248cc5 Try another approach... 2020-11-18 22:26:06 -05:00
ca428233ba Revert "Try another optimization in LinuxEthernetTap."
This reverts commit a390629371.
2020-11-18 22:24:18 -05:00
3712f9b318 Revert "Shutdown fix."
This reverts commit 11545bdb5d.
2020-11-18 22:24:09 -05:00
11545bdb5d Shutdown fix. 2020-11-18 22:13:06 -05:00
a390629371 Try another optimization in LinuxEthernetTap. 2020-11-18 22:06:17 -05:00
e3e188109d Build fix. 2020-11-18 10:14:39 -08:00
7cbbc38b89 Reduce mutex use in LinuxEthernetTap. Try to squeeze a bit more powah out of it. 2020-11-18 12:50:34 -05:00
bd1861ef4d Merge branch 'dev' of https://github.com/zerotier/ZeroTierOne into dev 2020-11-17 17:24:16 -08:00
b152f9e1d3 Version 1.6.0 bump in version.h 2020-11-17 15:15:06 -08:00
24339092f7 Merge branch 'dev' of https://github.com/zerotier/ZeroTierOne into dev 2020-11-17 14:05:33 -08:00
4bd58d47cf Revert "Try factoring out a mutex to see if its faster."
This reverts commit 982c32322b.
2020-11-17 12:52:48 -08:00
982c32322b Try factoring out a mutex to see if its faster. 2020-11-17 15:48:15 -05:00
2fcc344299 Some buffer tuning. 2020-11-17 15:34:42 -05:00
3acd901c88 Build fixes. 2020-11-17 12:13:08 -05:00
0795dbf5f1 Revert "Moar threadz"
This reverts commit 101a3a7d74.
2020-11-16 19:06:52 -08:00
101a3a7d74 Moar threadz 2020-11-16 21:49:51 -05:00
2da162bed7 Split Linux tap receive into two threads: one reader, one processor. 2020-11-16 21:40:25 -05:00
5282e06fd4 Tun/tap flags fix. 2020-11-16 19:08:09 -05:00
dc806dd718 Try pipelining tap reads on Linux for a little more speed. 2020-11-16 18:56:00 -05:00
31d8758ad9 Apple "fat binaries" are back! 2020-11-16 16:30:15 -05:00
ae70db0535 Merge branch 'dev' of https://github.com/zerotier/ZeroTierOne into dev 2020-11-16 12:04:03 -08:00
6b67cb0e2a Linux build fixes. 2020-11-16 11:11:52 -08:00
250f0ef9db Remove dead code. 2020-11-16 13:51:27 -05:00
a690ffdb7c Merge branch 'dev' of https://github.com/zerotier/ZeroTierOne into dev 2020-11-15 19:00:02 -08:00
4aab9121d9 Linux build fixes, and new route code seems to work. 2020-11-13 22:25:12 -05:00
5ea7ef6b65 Rework Linux route setting to actually consult netlink interface. 2020-11-13 22:06:58 -05:00
a3875f9965 Add a route DB to LinuxNetLink to make route sync robust. 2020-11-13 21:55:31 -05:00
4e3a59f329 Build fix. 2020-11-13 21:21:28 -05:00
3730917dda LinuxNetLink cleanup 2020-11-13 21:06:34 -05:00
57516cfbe6 revert queue... not quite what we need 2020-11-13 21:01:55 -05:00
bb62279a20 Queue up managed route syncs and do them periodically to avoid dependency problems. 2020-11-13 20:25:03 -05:00
e8be28734b Linux netlink and route setting... work in progress. 2020-11-13 19:07:54 -05:00
6c5a097711 Use LinuxNetLink for routes on Linux... still needs testing/debugging on an actual Linux machine. 2020-11-13 18:16:14 -05:00
16a878adb1 ... route fix test 2020-11-13 16:18:00 -05:00
020d882e82 Route assignment fix. 2020-11-13 16:02:59 -05:00
44af828aa4 Tweak multicast settings to prevent failures due to TX queue overflow. 2020-11-12 22:21:43 -05:00
26a0cbcd73 Revert "Push credentials in multicast."
This reverts commit 1316ee3127.
2020-11-12 20:53:23 -05:00
1a106bca3b Revert "Build fix, and move multicast pushCredentialsIfNeeded."
This reverts commit cc42d6f4e0.
2020-11-12 20:53:14 -05:00
cc42d6f4e0 Build fix, and move multicast pushCredentialsIfNeeded. 2020-11-12 20:40:10 -05:00
1316ee3127 Push credentials in multicast. 2020-11-12 20:33:31 -05:00
eadca9dd75 Build fix. 2020-11-11 15:29:01 -05:00
59dd71187e Build fix. 2020-11-11 15:14:08 -05:00
36e167013a More Linux tap shotgun debugging. 2020-11-11 15:12:16 -05:00
2d489a8679 Another possible workaround for what seems to be a Linux bug in some newer kernels. 2020-11-11 14:42:56 -05:00
d735a1d04c Reorder some stuff in LinuxEthernetTap as possible workaround for MAC-set weirdness. 2020-11-11 12:49:56 -05:00
9480ff1f37 Fix some timestamp signedness mismatches. 2020-11-11 11:46:09 -05:00
d2f2abe525 Add force-exit timeout to get around some of the exit hang issues users have observed. Will punt full diagnosis to V2 which rewrites all these code paths anyway. 2020-11-10 16:30:55 -05:00
e9e20fdad8 Increase multicast announce frequency a little. 2020-11-10 16:16:52 -05:00
53ba413d32 Dont use AES in HELLO. 2020-11-09 20:52:49 -05:00
7280fcdec2 Only define FreeBSD hwcaps stuff if ARM crypto is enabled for compiled. 2020-11-09 19:54:32 -05:00
cbcd2be232 Merge pull request #1288 from darkain/dev
FreeBSD ARMv6, ARMv7, and Aarch64 support
2020-11-09 19:50:46 -05:00
83a2dcb65a FreeBSD ARMv6, ARMv7, and Aarch64 support 2020-11-07 14:16:03 -08:00
dd65680150 Windows build fixes, version bump in AIP. 2020-11-06 11:18:41 -08:00
90f18f7ee7 Fix for ZTO-33 (Jira), only assign routes if there is a viable source IP. 2020-11-06 11:01:45 -05:00
317263b31c Remove unused variable on non-windows 2020-11-02 19:09:11 -05:00
52679d2784 Simplify and fix managed route logic. 2020-11-02 19:02:07 -05:00
763d1cc3dc Some more changes for slow network leaving on Mac. 2020-11-02 14:00:35 -05:00
c9fe04d8ea Version bump in prep for 1.6.0 beta 2 2020-10-30 17:42:15 -04:00
f2c490345c Remove unnecessary includes that can cause compile problems. 2020-10-30 16:14:59 -04:00
fe5aad3cef Some Mac feth tap changes to hopefully fix slow-leave problem. 2020-10-30 10:40:34 -04:00
927bc2e33d Merge branch 'dev' of https://github.com/zerotier/ZeroTierOne into dev 2020-10-22 14:04:41 -07:00
1331739ee4 Remove (some) debug tracing in Bond which may cause a segfault 2020-10-21 18:40:55 -07:00
3da8f5f053 freaking JNI 2020-10-21 16:08:19 -07:00
fbbcf292c6 forgot accessors 2020-10-21 15:06:50 -07:00
2851a9577c JNI for dns configuration 2020-10-21 14:18:29 -07:00
ed9b09e980 Missing flag. 2020-10-20 18:52:36 -04:00
bcb3fc7fc0 Only use SSE/SSE2 for X64 for regular stuff. 2020-10-20 18:51:38 -04:00
70f37962cf Backport AES fixes for compiler, arch, and splitting into separate files. 2020-10-20 18:50:28 -04:00
fd7f61bab7 Merge branch 'dev' of https://github.com/zerotier/ZeroTierOne into dev 2020-10-14 18:40:38 -07:00
5f8714a0cd Remove minor non-functional flow hashing stubs 2020-10-14 18:40:20 -07:00
8d83b9b7c5 Revert change to path quality to fix IPv6 issue in beta. We will rework this in 2.x. 2020-10-14 20:41:58 -04:00
2c75be0d64 Do not always enable SSE4 on X64 due to old Atom chips. Enable instead only for AES-NI code which is only run if AES-NI is present, which it is not on these old chips. 2020-10-13 16:08:30 -04:00
ee04118172 null check 2020-10-13 08:24:36 -07:00
fe1ce885a0 Version 1.6.0 (1.5.0 is a beta!) is a significant release that incorporates a number of back-ported fixes and features from the ZeroTier 2.0 tree.
Major new features are:

 * **Multipath support** with modes modeled after the Linux kernel's bonding driver. This includes active-passive and active-active modes with fast failover and load balancing. See section 2.1.5 of the manual.
 * **DNS configuration** push from network controllers to end nodes, with locally configurable permissions for whether or not push is allowed.
 * **AES-GMAC-SIV** encryption mode, which is both somewhat more secure and significantly faster than the old Salsa20/12-Poly1305 mode on hardware that supports AES acceleration. This includes virtually all X86-64 chips and most ARM64. This mode is based on AES-SIV and has been audited by Trail of Bits to ensure that it is equivalent security-wise.

Known issues that are not yet fixed in this beta:

 * Some Mac users have reported periods of 100% CPU in kernel_task and connection instability after leaving networks that have been joined for a period of time, or needing to kill ZeroTier and restart it to finish leaving a network. This doesn't appear to affect all users and we haven't diagnosed the root cause yet.
 * The service sometimes hangs on shutdown requiring a kill -9. This also does not affect all systems or users.
 * AES hardware acceleration is not yet supported on 32-bit ARM, PowerPC (32 or 64), or MIPS (32 or 64) systems. Currently supported are X86-64 and ARM64/AARCH64 with crypto extensions.
 * Some users have reported multicast/broadcast outages on networks lasting up to 30 seconds. Still investigating.

We're trying to fix all these issues before the 1.6.0 release. Stay tuned.
2020-10-08 18:10:13 -04:00
24769219b5 Merge branch 'dev' 2020-10-08 18:08:24 -04:00
da6fe18e17 Merge branch 'master' of github.com:zerotier/ZeroTierOne 2020-10-08 18:08:18 -04:00
a973a6e10e Leave feth devices over feth10000 alone. 2020-10-08 12:04:57 -04:00
5bc64c4c4e Windows build fixes and version bump in Advanced Installer. 2020-10-07 15:56:00 -07:00
bd92990165 Update feature_request.md 2020-10-07 10:36:04 -07:00
e26a8be3df Be more consistent about versioning. 2020-10-07 11:55:47 -04:00
3ef1c8e3fa Use 1.5.0 for package version for centos. 2020-10-06 23:31:20 -04:00
0ab4b903f4 Cert and codesign tweaks, release notes. 2020-10-06 18:09:51 -04:00
b2ea5aa747 Version bump to 1.5.0 internally and 1.6.0-beta1 in packages. 2020-10-05 20:23:52 -04:00
c80843e496 Revert "remove redundant writes when changes come from Central"
This reverts commit f9396f979f.
2020-10-05 13:32:47 -07:00
f9396f979f remove redundant writes when changes come from Central
network & member changes tagged with `"fromCentral": true` will not be rewritten to the db
2020-10-05 11:03:03 -07:00
610d4ff016 Remove old tap kext from normal pkg as it is too old to be notarized (signature too old, not sure if we can sign again as kexts are being deprecated). It is only used on very old MacOS versions that are rolling off support. 2020-10-02 18:42:40 -04:00
f16421225d Enable hardened executable mode on Mac, should be fine... 2020-10-02 18:36:24 -04:00
d82b3684ac Enable RV64 2020-09-30 21:17:04 -04:00
d7e5a92fe6 Increase debian build parallelism. 2020-09-30 17:39:15 -07:00
bb45f9ca3c Upgrade cpp-httplib 2020-09-30 15:21:58 -04:00
c7dcbba442 Add an AES benchmark to 1.6 (backport) 2020-09-29 18:34:58 -04:00
255dee7a5e MacOS build fixes. 2020-09-25 14:32:53 -04:00
c86418934c PATH_MAX is not defined on some Linux systems. 2020-09-23 22:06:22 -04:00
70efa5f606 Merge branch 'dev' of github.com:zerotier/ZeroTierOne into dev 2020-09-23 21:59:14 -04:00
69b2fcd5af Get rid of obsolete musl libc fix. 2020-09-23 21:58:51 -04:00
1f93099e1a Get rid of obsolete musl libc fix. 2020-09-23 21:58:28 -04:00
b3331c5ec2 Fix buffer overflow in windows tap driver 2020-09-23 15:31:20 -07:00
ff23d3051f self hosted controller JSON format fix for DNS 2020-09-23 12:16:23 -07:00
7d8cfb1fee more magic incantations to make crypto extensions work on Android/ARM64 2020-09-22 10:28:31 -07:00
8131680735 AES-NI enabled for Android ARM64 2020-09-22 08:04:16 -07:00
9e6dba9066 Enable AES-NI on Android X86-64
Need to find the magic incantation to enable it on ARM64 still
2020-09-21 18:05:25 -07:00
0f2887265c AES-NI/NEON detection for iOS
Requires 64-bit CPU
2020-09-21 13:18:05 -07:00
1ff45020e2 Prefer IPv6 if all else is equal. 2020-09-18 16:27:41 -04:00
45c5abe05b add Allow DNS settings to win UI 2020-09-18 10:12:11 -07:00
e7dafb3ae6 allow DNS field for mac UI 2020-09-18 09:30:43 -07:00
04f6140da6 AES builds and works now on ARM64. 2020-09-16 22:47:13 +00:00
afcbc6dd9f clean up some error output 2020-09-16 10:54:14 -07:00
4da9bed4fa add 'dump' to cli help 2020-09-16 10:52:23 -07:00
221e4ecb12 Add "documentation" networks as IP_SCOPE_PRIVATE
https://en.wikipedia.org/wiki/Reserved_IP_addresses
2020-09-16 10:24:36 -07:00
1883a8c9ee Set 198.18.0.0/15 to IP_SCOPE_PRIVATE 2020-09-16 10:15:42 -07:00
83d92858c1 Merge branch 'dump' into dev 2020-09-16 10:04:01 -07:00
cff3152985 windows create dump file on desktop 2020-09-16 10:03:03 -07:00
5090e95003 dump basics to stdout on other platforms 2020-09-15 16:50:55 -07:00
927aeb15f6 macos output dump to file if possible
if not, write to stdout
2020-09-15 16:50:00 -07:00
361ca1e8b4 add link to CoreServices framework 2020-09-15 16:49:19 -07:00
9adf656db5 Merge branch 'dev' of http://git.int.zerotier.com/zerotier/ZeroTierOne into dev 2020-09-14 20:44:46 -04:00
7219ca0c0f AES works! Only with this or newer nodes. Uses salsa with older ones as usual. 2020-09-14 20:44:21 -04:00
3a75950ff4 Merge branch 'dump' into dev 2020-09-14 15:25:34 -07:00
fa86b8bae0 Change ZT_MULTIPATH_FLOW_EXPIRATION_INTERVAL from 30 seconds to 5 minutes 2020-09-14 15:22:06 -07:00
f3c9ab8a7e Add minor trace output formatting changes. Change ZT_MULTIPATH_BOND_STATUS_INTERVAL from 30000 to 60000 2020-09-14 15:21:53 -07:00
ace03d7c7b zerotier-cli dump for Windows 2020-09-14 15:17:59 -07:00
97801b3b56 Update issue templates 2020-09-14 13:10:41 -07:00
74d9e1e558 Update issue templates 2020-09-14 12:59:36 -07:00
c210e9e5cf Update issue templates
Cleaned this up substantially
2020-09-14 12:58:29 -07:00
df640dc39b Merge branch 'dev' of github.com:zerotier/ZeroTierOne into dev 2020-09-14 12:45:11 -07:00
d980bba49f fix windows compilation 2020-09-14 12:42:51 -07:00
059dfee0c3 fix windows compilation 2020-09-14 12:42:39 -07:00
55f442f1a9 Removed erroneous issue template 2020-09-12 13:09:51 -07:00
2b9d9168e0 Update issue templates 2020-09-12 13:08:31 -07:00
94669a4709 Update Game issue template 2020-09-12 12:58:10 -07:00
be560eb704 Game Connection Issue
Game connection issues can be resolved on our forums: discuss.zerotier.com
2020-09-12 12:23:49 -07:00
36d867c3fa more config dump for macOS 2020-09-11 16:43:30 -07:00
cf47618ffb Change ZT_MULTIPATH_FLOW_EXPIRATION_INTERVAL from 30 seconds to 5 minutes 2020-09-11 16:09:46 -07:00
62f23e0cfd step 1 of zerotier-cli dump
dump status, networks, peers, bonds & version
2020-09-11 15:31:56 -07:00
0e8b54f7a1 Add minor trace output formatting changes. Change ZT_MULTIPATH_BOND_STATUS_INTERVAL from 30000 to 60000 2020-09-11 14:47:18 -07:00
1c9407e016 Merge branch 'dev' of http://git.int.zerotier.com/zerotier/ZeroTierOne into dev 2020-09-11 13:40:04 -04:00
cb8d773634 Disable unicast compression as it almost never helps and usually just wastes CPU. 2020-09-11 13:36:21 -04:00
bbb307aff7 DNS is now toggleable via zerotier-cli set <nwid> allowDNS=[0|1]
Flag is disabled by default as it should be opt-in on each endpoint
2020-09-10 15:59:18 -07:00
3db263284b not sure how this got reverted 2020-09-10 13:18:25 -07:00
d8f041a484 Merge branch 'dev' of http://git.int.zerotier.com/zerotier/ZeroTierOne into dev 2020-09-10 12:50:30 -07:00
120bcbc2c9 Merge branch 'dev' of github.com:zerotier/ZeroTierOne into dev 2020-09-10 15:44:47 -04:00
10ccaa2620 Merge branch 'dev' of http://git.int.zerotier.com/zerotier/ZeroTierOne into dev 2020-09-10 12:43:58 -07:00
e6b5f8aabd AES work... but disabled in this commit. 2020-09-10 15:43:40 -04:00
4798689bf3 Merge branch 'dev' of https://github.com/zerotier/ZeroTierOne into dev 2020-09-10 12:43:24 -07:00
0545e70bd5 Added error messages to use admin/sudo/root 2020-09-10 12:42:11 -07:00
5032a8eeac Merge branch 'dev' of http://git.int.zerotier.com/zerotier/ZeroTierOne into dev 2020-09-10 11:57:51 -07:00
1ad555a071 More selective push of AES modifications and refactoring stuff. 2020-09-10 14:48:48 -04:00
7d0f6933d6 Merge branch 'dev' of http://git.int.zerotier.com/zerotier/ZeroTierOne into dev 2020-09-10 11:38:25 -07:00
4cd3d0bb76 Merge branch 'dev' of http://git.int.zerotier.com/zerotier/ZeroTierOne into dev 2020-09-10 14:37:16 -04:00
8374553b6a Linux build fix for AES flags. 2020-09-10 14:36:33 -04:00
eca4052884 Merge branch 'dev-redis' into dev 2020-09-10 11:10:10 -07:00
2d7a96416c Update issue templates
Include use of Discuss forum as an option for feature requests.
2020-09-08 12:25:40 -07:00
f2734dc3d8 add ports to addresses specified by the bind setting 2020-09-08 01:49:19 +02:00
a1f4397959 linux implementaiton of zerotier-cli dump 2020-08-30 14:19:56 -07:00
53d5c9890f missed a rollback
# Conflicts:
#	controller/PostgreSQL.cpp
2020-08-26 15:52:01 -07:00
43c108f077 missed a rollback 2020-08-26 15:50:36 -07:00
33cc59914a Merge branch 'dev-redis' into dev 2020-08-26 14:52:54 -07:00
45b6d11126 Put upserts from controller into single transaction 2020-08-26 14:52:23 -07:00
b7b01da742 Wire up dearmor() path. 2020-08-25 14:13:20 -07:00
93d6b41898 Disable AES in commit so as not to break other builds. 2020-08-25 08:08:54 -07:00
47e9fb3ddb Merge branch 'dev' of http://git.int.zerotier.com/zerotier/ZeroTierOne into dev 2020-08-25 08:07:23 -07:00
b1ddba0438 Remove a few old comments 2020-08-24 18:56:49 -07:00
e7891bfcb0 Merge branch 'dev-redis' into dev 2020-08-21 16:29:13 -07:00
7f99c4a779 Sleep 10 seconds between writes to DB 2020-08-21 16:22:28 -07:00
2ac49d99dd AES integrated on send side. 2020-08-21 14:23:31 -07:00
3fd8efe642 AES builds now 2020-08-21 09:56:53 -07:00
06730c7d1d BSL date bump 2020-08-20 12:51:39 -07:00
81c9db7a15 fix libs for non-controller builds on macOS 2020-08-18 11:46:29 -07:00
8d0a3563e4 Merge branch 'dns' into dev 2020-08-12 13:56:21 -07:00
c0c215c83c single dns config per network 2020-08-12 13:08:47 -07:00
058d888311 More debug logging cleanup 2020-08-12 10:00:09 -07:00
30b18d925f clean up some debug logging 2020-08-12 09:16:18 -07:00
137d05e799 add setDNS stubs for linux/bsd 2020-08-12 09:14:10 -07:00
d9c4e644de Windows DNS 2020-08-11 18:55:42 -07:00
edd960566a Improve bond tracing, fix bond initialization bugs, remove vestigial debug code 2020-08-06 18:10:40 -07:00
6868e98904 Get stuff building on Windows
Been a minute since any of this has been updated
2020-08-05 16:04:02 -07:00
85a5b0b948 Remove dns config on shutdown
Also add calls to MacDNSHelper to the kext tap
2020-08-05 14:49:45 -07:00
b9a1719cb1 Let's make sure to clean up our memory 2020-08-05 14:42:19 -07:00
d6e3164ea1 remove initial attempt at dns config via scutil 2020-08-05 14:42:09 -07:00
302ac8fefe DNS config support on macOS 2020-08-05 14:26:11 -07:00
d2708daa8e debug output 2020-08-04 14:33:18 -07:00
88a3c685fb latest 2020-08-04 13:52:57 -07:00
2e52a1eebf forgot a couple queries in postgres. trying to pull dns of member not network in embedded network controller
also some debug logging
2020-08-04 09:45:45 -07:00
d098a99d09 fix memory init issue
and another place where dns data needs to be copied
2020-07-31 11:42:03 -07:00
6b197e067a Merge branch 'dev' into dns 2020-07-30 13:15:43 -07:00
9f4985b11a Add basic bond health status reporting (listbonds) 2020-07-27 23:01:12 -07:00
5b700fa497 println for which notification stream the controller is listening to 2020-07-27 18:37:45 -07:00
c92e030a4b Create a bash completion script.
Just adding it to the repo, but it still needs to be dealt with during install.
Probably put it in $ZT_HOME and then symlink to the proper place for the distro?

searches $ZT_HOME/networks.d/ for network IDs
searches HISTORY for 16 digit numbers that look like network IDs.
2020-07-23 13:40:48 -07:00
251b06d812 revert redis for member status 2020-07-23 09:38:50 -07:00
ff50762649 Merge multipath branch into dev branch 2020-07-23 00:40:17 -07:00
29ebda62ef Remove (some) debug functions and traces 2020-07-23 00:32:39 -07:00
a1b2ff772a Add new replacement condition in peer path redundancy logic to fix duplicate paths 2020-07-23 00:15:38 -07:00
dc784f6213 Comment out Bond and BondController debug traces 2020-07-21 10:22:10 -07:00
387039456d Pass 1 at adding DNS to controller 2020-07-20 14:34:19 -07:00
c1f4168d2f 2020/07/16, Minor optmizations 2020-07-16 18:38:04 +02:00
ffebcd247f 2020/07/16, Minor optmizations 2020-07-16 18:31:56 +02:00
fd0c906b1b Merge branch 'multipath' of http://git.int.zerotier.com/ZeroTier/ZeroTierOne into multipath 2020-07-14 17:05:42 -07:00
decd5add2a Fix segfault on unique interface name list generation (for multipath) 2020-07-14 17:05:05 -07:00
8eb453e042 Revert to ancient path redundancy check logic 2020-07-06 15:18:17 -07:00
bd6c97aeb8 dont strip binary 2020-07-06 14:35:05 -07:00
29e7fa5c4b Revert to ancient path redundancy check logic 2020-07-06 14:07:31 -07:00
a23b6d09c0 Fix merge conflict for controller code (minor edit) 2020-06-29 10:27:22 -07:00
1bb1dfa87b android changes 2020-06-18 09:32:00 -07:00
a33a494d60 Adjust terminology 2020-06-17 14:54:13 -07:00
5f0ee4fc78 Fix invalid defaultBondingPolicy conditions, Add ZT_MultipathFlowRebalanceStrategy, Add basic hysteresis mechanism to flow re-assignment 2020-06-16 12:30:21 -07:00
d0aacfddb7 one more spot 2020-06-04 14:12:20 -07:00
9b92ad7772 handle case of no networks and/or no members 2020-06-04 14:06:30 -07:00
17c7ae20cc force add libredis++.a for mac 2020-06-04 13:46:16 -07:00
fa5c8ef434 Fix timers, fix flow count discrepancy after flow removal, fix balance-aware flow re-assignment when one or more links go down 2020-06-01 22:58:58 -07:00
1dca7b92cf Remove exit condition for bond creation during re-learning of previously-known paths 2020-05-31 17:30:41 -07:00
5e122b95e7 Fix segfault during balance-rr when link is brought down 2020-05-30 21:21:22 -07:00
135a547889 No longer update both pgsql & redis 2020-05-28 19:22:07 -07:00
06de25a680 bump online notification pause to 100ms
also put all online notification redis commands into a single tx
2020-05-27 22:25:07 -07:00
5692402d32 A little more cleanup 2020-05-27 21:02:30 -07:00
ad7ae5a372 list of all network-node pairs 2020-05-27 20:43:31 -07:00
9794e31a64 Temporary online notification thread hack
Updates both Redis and Postgres
2020-05-27 20:43:31 -07:00
2f0f0e4f53 redis init optimization 2020-05-27 20:43:31 -07:00
7bde004c7c Replace scan of Redis with iteration of _networks map 2020-05-27 20:41:47 -07:00
a8f830aa9c Add multipath documentation to service/ 2020-05-26 18:29:19 -07:00
7266550c22 Remove vestigial constructor, fix typos, clean up code 2020-05-26 17:57:37 -07:00
7ed960297b Merge changes from dev into multipath 2020-05-26 17:57:09 -07:00
39da360725 add online controller list in Redis 2020-05-22 14:16:04 -07:00
beedee4401 fix typo 2020-05-22 11:07:12 -07:00
fb0e8aebdb keep list of active networks in redis 2020-05-22 10:07:39 -07:00
13929aee6f reduce log chattiness 2020-05-21 09:49:55 -07:00
c2409ad6c9 fix connection to redis cluster in online notification thread 2020-05-21 09:49:41 -07:00
08cb72bdba Temp object was being destroyed before connection was used 2020-05-21 09:33:03 -07:00
d24c8d858c include climits for Linux 2020-05-20 16:54:18 -07:00
879ef58565 Finalize Redis integration 2020-05-20 16:28:28 -07:00
8b8399efbc Error recovery for network & member stream watchers 2020-05-20 11:42:51 -07:00
0f17508cac error recovery in redis online notification
If a redis cluster member fails over to the slave, we'll get an error from not specifying the key for the insert.  Recover from that instead of crashing the controller
2020-05-20 11:38:04 -07:00
7a138f963c TIL: Creating a redis transaction without sending any commands throws an exception
So let's not do that
2020-05-19 17:47:06 -07:00
b637ced1ee Track member status in Redis 2020-05-19 17:47:02 -07:00
ee91c81799 Initialize C arrays to NULL in NetworkConfig() constructor 2020-05-19 17:40:51 -07:00
8ac42b4600 controller status query fix 2020-05-19 17:40:11 -07:00
844725237d Add new ZT_ result codes that were added 2020-05-18 10:31:17 -07:00
58d567c331 Formatting 2020-05-14 20:09:25 -07:00
4465952d11 Merge remote-tracking branch 'origin/dev' into multipath 2020-05-14 16:06:55 -07:00
f8ba1962e6 fix equals() methods 2020-05-14 15:08:37 -07:00
701960def5 Track member status in Redis 2020-05-13 17:23:27 -07:00
15c0c1db39 finish the RabbitMQ-ectomy 2020-05-13 09:46:41 -07:00
c9f942f79b can now build centos8 docker container with Redis support 2020-05-12 15:17:57 -07:00
663df9118a fix centos8 build 2020-05-12 14:04:03 -07:00
5d47697ade helps to add the actual library 2020-05-12 13:04:16 -07:00
5babd01d40 centos8 binaries for libhiredis and libredis++ 2020-05-12 12:58:09 -07:00
aab96964b6 Put debug output behind ZT_TRACE 2020-05-12 12:48:58 -07:00
c6518afa7a Make sure the streams clean up after themselves 2020-05-12 12:37:05 -07:00
563655a1a4 Redis now usable as a message queue 2020-05-12 11:56:19 -07:00
a50e8e9878 Add Bonds, Slaves, and Flows 2020-05-12 01:35:48 -07:00
de9cfbe9b0 Merge dev into multipath 2020-05-12 00:08:52 -07:00
d699116795 mac deps 2020-05-11 16:48:14 -07:00
8f3a0b17ad redis++ binaries for mac 2020-05-11 15:24:13 -07:00
b5c661c5d5 add libhiredis.a for mac 2020-05-11 15:06:10 -07:00
154470b570 add original hiredis 2020-05-11 15:03:56 -07:00
73b1d57b13 rip out rabbitMQ 2020-05-11 12:29:06 -07:00
acb4ef0f12 add hiredis-vip to controller build 2020-05-11 11:48:05 -07:00
d2db307bee Add lines to enable Elbrus (https://en.wikipedia.org/wiki/Elbrus-8S) microprocessor architecture. No changes in code, only in build procedure (recognise relevant ARCH output. 2020-04-29 13:51:28 +03:00
182f16d2a4 Add support for armv7ve
This commit adds support for ARM armv7ve arch.
The extended version of the ARMv7-A architecture with support for virtualization.
2020-04-26 17:01:49 +02:00
bfe5c758ba Add description for Windos service 2020-04-18 18:56:28 +02:00
32a78b5f61 Fix preprocessor typo in previous commit 2020-03-31 20:34:48 -07:00
54f9f2ad53 Add special case for Ubiquiti routers in platformDefaultHomePath() 2020-03-31 20:27:41 -07:00
f12c75e68b Merge branch 'master' of github.com:zerotier/ZeroTierOne 2020-03-25 13:40:13 -07:00
b6b11dbf82 Document allowSecondaryPort 2020-03-25 10:26:14 -07:00
0d42108254 member ip inserts DO NOTHING on conflict 2020-03-04 09:45:45 -08:00
f6026f94a5 More fun with dupes 2020-03-03 23:52:53 -08:00
e702942041 Fix duplicate assigned IP check when adding assigned IPs to database 2020-03-03 13:34:24 -08:00
00ac35ad62 add --no-cache for docker central controller build 2020-02-24 11:06:08 -08:00
12a92fc4a1 Un-log & some production build image fixes 2020-02-24 11:02:05 -08:00
baa14a63c9 It's LOG! It's LOG!
It's big, it's heavy, it's wood
2020-02-24 10:20:47 -08:00
cce51cea5d Merge branch 'pipeline' into dev 2020-02-03 13:48:46 -08:00
ba4324f992 Update jenkinsfile for new build process 2020-02-03 12:51:46 -08:00
81e982991b add kali rolling 2020-02-03 10:46:39 -08:00
f6f4fba90e Add docker configs for multi arch jenkins builds 2020-02-03 09:57:48 -08:00
23d5a972ba disable lintian because sid/bullseye are sitting there running /bin/sleep 3 endlessly on this step 2020-01-31 13:15:23 -08:00
d5467e130e disable lintian because sid/bullseye are sitting there running /bin/sleep 3 endlessly on this step 2020-01-31 13:13:02 -08:00
5faf0f8ab6 whoops 2020-01-23 09:46:15 -08:00
0f17cd4791 Update to jenkinsfile for multi-platform release builds 2020-01-23 09:41:17 -08:00
e0518ab176 testing armv5t instead of armv5 flag 2020-01-22 16:36:26 -08:00
28df0c2e38 Merge branch 'dev' of github.com:zerotier/ZeroTierOne into dev 2019-12-17 10:56:53 -08:00
7696d45093 Fix handling of invalid conf file
Fixes GitHub issue #1068
2019-12-17 10:51:01 -08:00
2a7d4fcde5 update vs project settings 2019-12-17 10:49:21 -08:00
c9f07e855e systemd: fix zerotier hanging on shutdown
On system shutdown, zerotier is stopped after the network and gets
itself into a connection timeout loop. It hits the TimeoutStopUSec= and
is forcibly killed by SIGKILL. Order zerotier after network.target so it
can shutdown gracefully while the network is still up.

From systemd.special(7):

at shutdown, a unit that is ordered after network.target will be stopped
before the network — to whatever level it might be set up then — is shut
down. It is hence useful when writing service files that require network
access on shutdown, which should order themselves after this target, but
not pull it in
2019-11-27 16:29:39 -08:00
995fa4a76c Merge branch 'refs/heads/master' into dev 2019-11-22 15:00:39 -08:00
d8597884f6 jenkins windows 2019-11-22 11:25:31 -08:00
a993ddc54d Merge branch 'refs/heads/master' into dev 2019-11-21 15:12:37 -08:00
54e25084fe re-enable CI on master 2019-11-21 14:51:33 -08:00
e58a0b3efb build central controller docker images on macOS 2019-11-21 14:49:24 -08:00
381f15382c Convert central-controller docker build to use a builder subcontainer 2019-11-20 13:56:26 -08:00
91d679af15 Merge pull request #1087 from skunkwerks/dev
drop -Werror from DEBUG builds
2019-11-19 08:47:38 -08:00
8396f16dd2 drop -Werror from DEBUG builds
Appease compilers. Thanks @glimberg for the diff.
Closes #1086
2019-11-19 16:45:06 +00:00
bb84c9b65c Merge pull request #1082 from laduke/controller-readme
Add Managed Routes example to controller readme.
2019-11-15 10:35:13 -08:00
e744c95c5b Add Managed Routes example to controller readme. 2019-11-15 10:29:39 -08:00
a725d1a29a Merge pull request #1081 from 0xflotus/patch-1
fixed small error
2019-11-14 10:30:30 -08:00
38feda1594 fixed small error 2019-11-14 10:17:05 +01:00
dc19deb6c3 . 2019-11-13 12:46:52 -08:00
86abd31659 fix log line 2019-11-13 12:46:16 -08:00
b8e70d866a Compile fix for unterminated conditional directive 2019-11-12 09:46:39 -08:00
e1e27eb19d Bugfix for incorrect port binding of secondary and tertiary ports 2019-11-11 12:03:49 -08:00
088dab4f04 Let's not print this to the logs 2019-10-31 15:13:20 -07:00
cc79ec6179 use std::string instead of const char* in rmq struct 2019-10-31 15:08:59 -07:00
74478b24b0 add librabbitmq binaries for macos for testing central controller 2019-10-31 14:04:25 -07:00
bad95d7c67 Update cli help to say <network ID> instead of <network>
Closes #1054
2019-10-15 13:15:45 -07:00
afca5c2536 Partial implementation of ZT_MULTIPATH_BALANCE_RR_OPAQUE 2019-08-20 23:28:59 -07:00
5453cab22b Added flow-awareness check for policies, more work on ZT_MULTIPATH_ACTIVE_BACKUP 2019-08-20 18:50:38 -07:00
b0a91c0187 Partial implementation of ZT_MULTIPATH_ACTIVE_BACKUP 2019-08-20 16:19:20 -07:00
963113b86d Minor adjustment to how _allowTcpFallbackRelay is disabled when _multipathMode is set 2019-08-20 10:38:18 -07:00
0634214f2c Added notion of Flows 2019-08-19 21:52:33 -07:00
15e44f0ddd Merge remote-tracking branch 'origin/dev' into multipath 2019-08-14 11:25:40 -07:00
b0e86d11c9 Minor. Name change for trace functions 2019-08-14 11:24:03 -07:00
5b7d60f5cd Whoops 2019-08-13 14:42:48 -07:00
640567a021 More informative link aggregation trace outputs 2019-08-13 14:34:47 -07:00
2593c6efee Adjusted multipath constants 2019-08-13 14:34:11 -07:00
36d368cb78 Check for (local multipath support only) during decision to decrease direct path push interval. This prevents the chicken-and-egg situation of not knowing if two peers can support multipath on both ends and thusly not sending eachother their direct paths quickly enough. 2019-08-13 13:26:41 -07:00
2e9fa7a811 Merge remote-tracking branch 'origin/dev' into multipath 2019-08-13 12:42:19 -07:00
d8ce1f7914 Added ZT_DIRECT_PATH_PUSH_INTERVAL_MULTIPATH to decrease link aggregation time 2019-08-13 12:41:30 -07:00
3c7e25ed58 Added call to computeAggregateAllocation() in multipath mode=1 to give realtime allocation output 2019-08-12 17:04:27 -07:00
77ae929eb3 Merge master into multipath 2019-08-12 11:40:13 -07:00
258b1c8b55 Merge branch 'edge' into multipath 2018-09-12 13:57:57 -07:00
1e66854b59 Temporarily added SO_REUSEADDR to netlink binding code 2018-08-07 12:57:40 -07:00
12f2df5586 uncommented status fields 2018-08-07 12:39:06 -07:00
20a25a6a45 Added debug traces 2018-08-06 14:31:12 -07:00
08d9dc5c68 Updated protocol version and versioning blurb 2018-08-06 10:29:37 -07:00
1320 changed files with 279910 additions and 30108 deletions

75
.clang-format Normal file
View File

@ -0,0 +1,75 @@
---
BasedOnStyle: LLVM
BreakBeforeBraces: Stroustrup
IndentWidth: 4
TabWidth: 4
AlignAfterOpenBracket: AlwaysBreak
AlignConsecutiveMacros: 'true'
AlignConsecutiveAssignments: 'false'
AlignConsecutiveDeclarations: 'false'
AlignEscapedNewlines: Right
AlignOperands: 'true'
AlignTrailingComments: 'true'
AllowAllArgumentsOnNextLine: 'false'
AllowAllConstructorInitializersOnNextLine: 'false'
AllowAllParametersOfDeclarationOnNextLine: 'false'
AllowShortBlocksOnASingleLine: 'true'
AllowShortCaseLabelsOnASingleLine: 'false'
AllowShortFunctionsOnASingleLine: None
AllowShortIfStatementsOnASingleLine: Never
AlwaysBreakAfterReturnType: None
BinPackArguments: 'false'
BinPackParameters: 'false'
BreakBeforeBinaryOperators: NonAssignment
BreakBeforeTernaryOperators: 'true'
BreakConstructorInitializers: BeforeComma
BreakInheritanceList: BeforeComma
CompactNamespaces: 'false'
ConstructorInitializerAllOnOneLineOrOnePerLine: 'true'
ConstructorInitializerIndentWidth: '4'
ContinuationIndentWidth: '4'
Cpp11BracedListStyle: 'false'
FixNamespaceComments: 'true'
IncludeBlocks: Regroup
IndentCaseLabels: 'true'
IndentPPDirectives: None
IndentWrappedFunctionNames: 'false'
KeepEmptyLinesAtTheStartOfBlocks: 'false'
MaxEmptyLinesToKeep: '1'
NamespaceIndentation: None
PointerAlignment: Left
ReflowComments: 'true'
SortIncludes: 'true'
SortUsingDeclarations: 'true'
SpaceAfterCStyleCast: 'false'
SpaceAfterLogicalNot: 'true'
SpaceAfterTemplateKeyword: 'true'
SpaceBeforeAssignmentOperators: 'true'
SpaceBeforeCpp11BracedList: 'true'
SpaceBeforeCtorInitializerColon: 'true'
SpaceBeforeInheritanceColon: 'true'
SpaceBeforeParens: ControlStatements
SpaceBeforeRangeBasedForLoopColon: 'true'
SpaceInEmptyParentheses: 'false'
SpacesBeforeTrailingComments: '3'
SpacesInAngles: 'false'
SpacesInCStyleCastParentheses: 'false'
SpacesInContainerLiterals: 'true'
SpacesInParentheses: 'false'
SpacesInSquareBrackets: 'false'
UseTab: 'Always'
---
Language: Cpp
Standard: Cpp03
ColumnLimit: '240'
---
Language: ObjC
ColumnLimit: '240'
---
Language: Java
ColumnLimit: '240'
---
Language: CSharp
ColumnLimit: '240'
...

2
.dockerignore Normal file
View File

@ -0,0 +1,2 @@
.git/
workspace/

40
.drone.jsonnet Normal file
View File

@ -0,0 +1,40 @@
local registry = "084037375216.dkr.ecr.us-east-2.amazonaws.com";
local targets = [
{ "os": "linux", "name": "sid", "isas": [ "386", "armv7", "amd64", "arm64", "mips64le", "ppc64le", "s390x", "riscv64" ], "events": [ "push", "tag", "custom" ] },
];
local Build(platform, os, isa, events) = {
"kind": "pipeline",
"type": "docker",
"pull": "always",
"name": platform + " " + isa + " " + "build",
"clone": { "depth": 1 },
"steps": [
{
"name": "build",
"image": registry + "/honda-builder",
"commands": [
"aws ecr get-login-password --region us-east-2 | docker login --username AWS --password-stdin " + registry,
"./ci/scripts/build.sh " + platform + " " + isa + " " + "100.0.0+${DRONE_COMMIT_SHA:0:8}" + " " + "${DRONE_BUILD_EVENT}"
]
},
// {
// "name": "list",
// "image": registry + "/honda-builder",
// "commands": [ "ls -la " + platform ]
// },
],
[ if isa == "arm64" || isa == "armv7" then "platform" ]: { os: os, arch: "arm64" },
"trigger": { "event": events }
};
// puttin on the bits
std.flattenArrays([
[
Build(p.name, p.os, isa, p.events)
for isa in p.isas
]
for p in targets
])

158
.drone.yml Normal file
View File

@ -0,0 +1,158 @@
---
clone:
depth: 1
kind: pipeline
name: sid 386 build
pull: always
steps:
- commands:
- aws ecr get-login-password --region us-east-2 | docker login --username AWS --password-stdin
084037375216.dkr.ecr.us-east-2.amazonaws.com
- ./ci/scripts/build.sh sid 386 100.0.0+${DRONE_COMMIT_SHA:0:8} ${DRONE_BUILD_EVENT}
image: 084037375216.dkr.ecr.us-east-2.amazonaws.com/honda-builder
name: build
trigger:
event:
- push
- tag
- custom
type: docker
---
clone:
depth: 1
kind: pipeline
name: sid armv7 build
platform:
arch: arm64
os: linux
pull: always
steps:
- commands:
- aws ecr get-login-password --region us-east-2 | docker login --username AWS --password-stdin
084037375216.dkr.ecr.us-east-2.amazonaws.com
- ./ci/scripts/build.sh sid armv7 100.0.0+${DRONE_COMMIT_SHA:0:8} ${DRONE_BUILD_EVENT}
image: 084037375216.dkr.ecr.us-east-2.amazonaws.com/honda-builder
name: build
trigger:
event:
- push
- tag
- custom
type: docker
---
clone:
depth: 1
kind: pipeline
name: sid amd64 build
pull: always
steps:
- commands:
- aws ecr get-login-password --region us-east-2 | docker login --username AWS --password-stdin
084037375216.dkr.ecr.us-east-2.amazonaws.com
- ./ci/scripts/build.sh sid amd64 100.0.0+${DRONE_COMMIT_SHA:0:8} ${DRONE_BUILD_EVENT}
image: 084037375216.dkr.ecr.us-east-2.amazonaws.com/honda-builder
name: build
trigger:
event:
- push
- tag
- custom
type: docker
---
clone:
depth: 1
kind: pipeline
name: sid arm64 build
platform:
arch: arm64
os: linux
pull: always
steps:
- commands:
- aws ecr get-login-password --region us-east-2 | docker login --username AWS --password-stdin
084037375216.dkr.ecr.us-east-2.amazonaws.com
- ./ci/scripts/build.sh sid arm64 100.0.0+${DRONE_COMMIT_SHA:0:8} ${DRONE_BUILD_EVENT}
image: 084037375216.dkr.ecr.us-east-2.amazonaws.com/honda-builder
name: build
trigger:
event:
- push
- tag
- custom
type: docker
---
clone:
depth: 1
kind: pipeline
name: sid mips64le build
pull: always
steps:
- commands:
- aws ecr get-login-password --region us-east-2 | docker login --username AWS --password-stdin
084037375216.dkr.ecr.us-east-2.amazonaws.com
- ./ci/scripts/build.sh sid mips64le 100.0.0+${DRONE_COMMIT_SHA:0:8} ${DRONE_BUILD_EVENT}
image: 084037375216.dkr.ecr.us-east-2.amazonaws.com/honda-builder
name: build
trigger:
event:
- push
- tag
- custom
type: docker
---
clone:
depth: 1
kind: pipeline
name: sid ppc64le build
pull: always
steps:
- commands:
- aws ecr get-login-password --region us-east-2 | docker login --username AWS --password-stdin
084037375216.dkr.ecr.us-east-2.amazonaws.com
- ./ci/scripts/build.sh sid ppc64le 100.0.0+${DRONE_COMMIT_SHA:0:8} ${DRONE_BUILD_EVENT}
image: 084037375216.dkr.ecr.us-east-2.amazonaws.com/honda-builder
name: build
trigger:
event:
- push
- tag
- custom
type: docker
---
clone:
depth: 1
kind: pipeline
name: sid s390x build
pull: always
steps:
- commands:
- aws ecr get-login-password --region us-east-2 | docker login --username AWS --password-stdin
084037375216.dkr.ecr.us-east-2.amazonaws.com
- ./ci/scripts/build.sh sid s390x 100.0.0+${DRONE_COMMIT_SHA:0:8} ${DRONE_BUILD_EVENT}
image: 084037375216.dkr.ecr.us-east-2.amazonaws.com/honda-builder
name: build
trigger:
event:
- push
- tag
- custom
type: docker
---
clone:
depth: 1
kind: pipeline
name: sid riscv64 build
pull: always
steps:
- commands:
- aws ecr get-login-password --region us-east-2 | docker login --username AWS --password-stdin
084037375216.dkr.ecr.us-east-2.amazonaws.com
- ./ci/scripts/build.sh sid riscv64 100.0.0+${DRONE_COMMIT_SHA:0:8} ${DRONE_BUILD_EVENT}
image: 084037375216.dkr.ecr.us-east-2.amazonaws.com/honda-builder
name: build
trigger:
event:
- push
- tag
- custom
type: docker

4
.gitattributes vendored Normal file
View File

@ -0,0 +1,4 @@
ext/bin/tap-windows-ndis6/x64/zttap300.inf eol=crlf
ext/bin/tap-windows-ndis6/x64.old/zttap300.inf eol=crlf
ext/bin/tap-windows-ndis6/x86/zttap300.inf eol=crlf
windows/TapDriver6/zttap300.inf eol=crlf

View File

@ -1,46 +0,0 @@
---
name: Bug report
about: Create a report to help us improve
---
**Alternative, faster ways to get help**
If you have just started using ZeroTier, here are some places to get help:
- my.zerotier.com has a _Community_ tab. It's a live chat with other users and the developers.
- [ZeroTier Knowledge Base](https://zerotier.atlassian.net/wiki/spaces/SD/overview)
- www.zerotier.com has a Contact Us button
- email contact@zerotier.com
**Describe the bug**
A clear and concise description of what the bug is.
**To Reproduce**
Steps to reproduce the behavior:
1. Create a Network '...'
2. Install zerotier-one '....'
3. '....'
4. See error
**Expected behavior**
A clear and concise description of what you expected to happen.
**Screenshots**
If applicable, add screenshots or console output to help explain your problem.
**Desktop (please complete the following information):**
- OS: [e.g. Mac, Linux, Windows, BSD]
- OS/Distribution Version
- ZeroTier Version [e.g. 1.2.4]
- Hardware [e.g. raspberry pi 3]
**Smartphone (please complete the following information):**
- Device: [e.g. iPhone6]
- OS: [e.g. iOS8.1]
- Version [e.g. 1.2.4]
**Additional context**
Add any other context about the problem here.
- ZeroTier Network Configuration
- Router Config
- Firewall Config (try turning the firewall off)
- General Network Environment: [ e.g Home, University Campus, Corporate LAN ]

View File

@ -0,0 +1,31 @@
---
name: Bugs and Issues
about: Create a report to help us improve
title: ''
labels: NEEDS TRIAGE
assignees: ''
---
# Before filing a Bug Report
_Using these will ensure you get quicker support, and make this space available for code-related issues. Thank you!_
- [Docs Site](https://docs.zerotier.com/zerotier/troubleshooting) => Troubleshooting, quickstarts, and more advanced topics.
- [Discuss Forum](https://discuss.zerotier.com/) => Our discussion forum for users and support to mutually resolve issues & suggest ideas.
- [Reddit](https://www.reddit.com/r/zerotier/) => Our subreddit, which we monitor regularly and is fairly active.
- [Knowledge Base](https://zerotier.atlassian.net/wiki/spaces/SD/overview) => Older wiki.
If you are having a connection issue, it's much easier to diagnose through the discussion forum or the ticket system.
# If you still want to file a Bug Report
## Please let us know
- What you expect to be happening.
- What is actually happening?
- Any steps to reproduce the error.
- Any relevant console output or screenshots.
- What operating system and ZeroTier version. Please try the latest ZeroTier release.

View File

@ -1,17 +1,13 @@
---
name: Feature request
about: Suggest an idea for this project
title: "[Feature Request] "
labels: suggestion
assignees: ''
---
**Is your feature request related to a problem? Please describe.**
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
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.
**Describe the solution you'd like**
A clear and concise description of what you want to happen.
**Describe alternatives you've considered**
A clear and concise description of any alternative solutions or features you've considered.
**Additional context**
Add any other context or screenshots about the feature request here.
Thank you!

View File

@ -0,0 +1,15 @@
---
name: Game Connection Issue
about: Game issues are better served by forum posts
title: Please go to our Discuss or Reddit for game-related issues. Thanks!
labels: wontfix
assignees: ''
---
Are you having trouble connecting to a game on your virtual network after installing ZeroTier?
- [ ] Yes
- [ ] No
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!

107
.github/workflows/build.yml vendored Normal file
View File

@ -0,0 +1,107 @@
on: [ push ]
jobs:
build_ubuntu:
runs-on: ubuntu-latest
steps:
- name: gitconfig
run: |
git config --global core.autocrlf input
# git config --global core.eol lf
- name: checkout
uses: actions/checkout@v3
- name: Install Rust
uses: actions-rs/toolchain@v1
with:
toolchain: stable
target: aarch64-apple-darwin
override: true
components: rustfmt, clippy
- name: Set up cargo cache
uses: actions/cache@v3
continue-on-error: false
with:
path: |
~/.cargo/bin/
~/.cargo/registry/index/
~/.cargo/registry/cache/
~/.cargo/git/db/
target/
key: ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock') }}
restore-keys: ${{ runner.os }}-cargo-
- name: make
run: make
- name: selftest
run: |
make selftest
./zerotier-selftest
build_macos:
runs-on: macos-latest
steps:
- name: gitconfig
run: |
git config --global core.autocrlf input
# git config --global core.eol lf
- name: checkout
uses: actions/checkout@v3
- name: Install Rust
uses: actions-rs/toolchain@v1
with:
toolchain: stable
target: aarch64-apple-darwin
override: true
components: rustfmt, clippy
- name: Set up cargo cache
uses: actions/cache@v3
continue-on-error: false
with:
path: |
~/.cargo/bin/
~/.cargo/registry/index/
~/.cargo/registry/cache/
~/.cargo/git/db/
target/
key: ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock') }}
restore-keys: ${{ runner.os }}-cargo-
- name: make
run: make
- name: selftest
run: |
make selftest
./zerotier-selftest
build_windows:
runs-on: windows-latest
steps:
- name: gitconfig
run: |
git config --global core.autocrlf true
# git config --global core.eol lf
- name: checkout
uses: actions/checkout@v3
- name: Install Rust
uses: actions-rs/toolchain@v1
with:
toolchain: stable
target: aarch64-apple-darwin
override: true
components: rustfmt, clippy
- name: Set up cargo cache
uses: actions/cache@v3
continue-on-error: false
with:
path: |
~/.cargo/bin/
~/.cargo/registry/index/
~/.cargo/registry/cache/
~/.cargo/git/db/
target/
key: ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock') }}
restore-keys: ${{ runner.os }}-cargo-
- name: setup msbuild
uses: microsoft/setup-msbuild@v1.1.3
- name: msbuild
run: |
msbuild windows\ZeroTierOne.sln /m /p:Configuration=Release /property:Platform=x64 /t:ZeroTierOne:Rebuild

28
.gitignore vendored
View File

@ -6,6 +6,11 @@
/zerotier
/nltest
# IDE stuff
/.idea
/.nova
/compile_commands.json
# OS-created garbage files from various platforms
.DS_Store
.Apple*
@ -30,10 +35,8 @@ Thumbs.db
/windows/WebUIWrapper/obj
/windows/lib
/ext/installfiles/windows/ZeroTier One-SetupFiles
/ext/installfiles/windows/Prerequisites
/ext/installfiles/windows/*-cache
/ZeroTier One.msi
/windows/.vs
*.vcxproj.backup
/windows/TapDriver6/Win7Debug
/windows/TapDriver6/win7Release
@ -42,6 +45,7 @@ Thumbs.db
enc_temp_folder
/windows/copyutil/bin
/windows/copyutil/obj
.vs/
# *nix/Mac build droppings
/build-*
@ -58,7 +62,6 @@ zt1-src.tar.gz
*.opensdf
*.user
*.cache
*.obj
*.tlog
*.pid
*.pkg
@ -103,7 +106,6 @@ windows/ZeroTierOne/Debug/
*.swp
*~.nib
DerivedData/
build/
*.pbxuser
*.mode1v3
*.mode2v3
@ -114,9 +116,25 @@ build/
!default.perspectivev3
*.xccheckout
xcuserdata/
ext/librethinkdbxx/build
.vscode
__pycache__
*~
attic/world/*.c25519
attic/world/mkworld
workspace/
workspace2/
zeroidc/target/
#snapcraft specifics
/parts/
/stage/
/prime/
*.snap
.snapcraft
__pycache__
*.pyc
*_source.tar.bz2
snap/.snapcraft
tcp-proxy/tcp-proxy

28
Dockerfile.ci Normal file
View File

@ -0,0 +1,28 @@
# vim: ft=dockerfile
FROM ubuntu:21.04 as stage
RUN apt-get update -qq && apt-get -qq install make clang
COPY . .
RUN /usr/bin/make
RUN echo $PWD
RUN cp zerotier-one /usr/sbin
FROM ubuntu:21.04
COPY --from=stage /zerotier-one /usr/sbin
RUN ln -sf /usr/sbin/zerotier-one /usr/sbin/zerotier-idtool
RUN ln -sf /usr/sbin/zerotier-one /usr/sbin/zerotier-cli
RUN echo "${VERSION}" > /etc/zerotier-version
RUN rm -rf /var/lib/zerotier-one
RUN apt-get -qq update
RUN apt-get -qq install iproute2 net-tools fping 2ping iputils-ping iputils-arping
COPY entrypoint.sh.release /entrypoint.sh
RUN chmod 755 /entrypoint.sh
CMD []
ENTRYPOINT ["/entrypoint.sh"]

23
Dockerfile.release Normal file
View File

@ -0,0 +1,23 @@
# vim: ft=dockerfile
FROM debian:bullseye
ARG VERSION
RUN apt-get update -qq && apt-get install curl gpg -y
RUN mkdir -p /usr/share/zerotier && \
curl -o /usr/share/zerotier/tmp.asc "https://download.zerotier.com/contact%40zerotier.com.gpg" && \
gpg --no-default-keyring --keyring /usr/share/zerotier/zerotier.gpg --import /usr/share/zerotier/tmp.asc && \
rm -f /usr/share/zerotier/tmp.asc && \
echo "deb [signed-by=/usr/share/zerotier/zerotier.gpg] http://download.zerotier.com/debian/bullseye bullseye main" > /etc/apt/sources.list.d/zerotier.list
RUN apt-get update -qq && apt-get install zerotier-one=${VERSION} curl iproute2 net-tools iputils-ping openssl libssl1.1 -y
RUN rm -rf /var/lib/zerotier-one
COPY entrypoint.sh.release /entrypoint.sh
RUN chmod 755 /entrypoint.sh
HEALTHCHECK --interval=1s CMD bash /healthcheck.sh
CMD []
ENTRYPOINT ["/entrypoint.sh"]

84
Jenkinsfile vendored
View File

@ -1,84 +0,0 @@
#!/usr/bin/env groovy
node('master') {
checkout scm
def changelog = getChangeLog currentBuild
mattermostSend "Building ${env.JOB_NAME} #${env.BUILD_NUMBER} \n Change Log: \n ${changelog}"
}
parallel 'centos7': {
node('centos7') {
try {
checkout scm
stage('Build Centos 7') {
sh 'make -f make-linux.mk'
}
}
catch (err) {
currentBuild.result = "FAILURE"
mattermostSend color: '#ff0000', message: "${env.JOB_NAME} broken on Centos 7 (<${env.BUILD_URL}|Open>)"
throw err
}
}
// }, 'android-ndk': {
// node('android-ndk') {
// try {
// checkout scm
// stage('Build Android NDK') {
// sh "/android/android-ndk-r15b/ndk-build -C $WORKSPACE/java ZT1=${WORKSPACE}"
// }
// }
// catch (err) {
// currentBuild.result = "FAILURE"
// mattermostSend color: '#ff0000', message: "${env.JOB_NAME} broken on Android NDK (<${env.BUILD_URL}|Open>)"
// throw err
// }
// }
// }, 'macOS': {
// node('macOS') {
// try {
// checkout scm
// stage('Build macOS') {
// sh 'make -f make-mac.mk'
// }
// stage('Build macOS UI') {
// sh 'cd macui && xcodebuild -target "ZeroTier One" -configuration Debug'
// }
// }
// catch (err) {
// currentBuild.result = "FAILURE"
// mattermostSend color: '#ff0000', message: "${env.JOB_NAME} broken on macOS (<${env.BUILD_URL}|Open>)"
// throw err
// }
// }
// }, 'windows': {
// node('windows') {
// try {
// checkout scm
// stage('Build Windows') {
// bat '''CALL "C:\\Program Files (x86)\\Microsoft Visual Studio 14.0\\VC\\vcvarsall.bat" amd64
// git clean -dfx
// msbuild windows\\ZeroTierOne.sln
// '''
// }
// }
// catch (err) {
// currentBuild.result = "FAILURE"
// mattermostSend color: '#ff0000', message: "${env.JOB_NAME} broken on Windows (<${env.BUILD_URL}|Open>)"
// throw err
// }
// }
}
mattermostSend color: "#00ff00", message: "${env.JOB_NAME} #${env.BUILD_NUMBER} Complete (<${env.BUILD_URL}|Show More...>)"

View File

@ -47,7 +47,7 @@ Additional Use Grant: You may make use of the Licensed Work, provided you
services, social welfare, senior care, child care, and
the care of persons with disabilities.
Change Date: 2023-01-01
Change Date: 2025-01-01
Change License: Apache License version 2.0 as published by the Apache
Software Foundation

View File

@ -17,8 +17,8 @@ ifeq ($(OSTYPE),FreeBSD)
include make-bsd.mk
endif
ifeq ($(OSTYPE),OpenBSD)
CC=egcc
CXX=eg++
CC=clang
CXX=clang++
ZT_BUILD_PLATFORM=9
include make-bsd.mk
endif
@ -26,3 +26,7 @@ endif
ifeq ($(OSTYPE),NetBSD)
include make-netbsd.mk
endif
drone:
@echo "rendering .drone.yaml from .drone.jsonnet"
drone jsonnet --format --stream

View File

@ -14,7 +14,6 @@ The version must be incremented in all of the following files:
/debian/changelog
/ext/installfiles/mac/ZeroTier One.pkgproj
/ext/installfiles/windows/ZeroTier One.aip
/windows/WinUI/AboutView.xaml
The final .AIP file can only be edited on Windows with [Advanced Installer Enterprise](http://www.advancedinstaller.com/). In addition to incrementing the version be sure that a new product code is generated. (The "upgrade code" GUID on the other hand must never change.)

72
README.docker.md Normal file
View File

@ -0,0 +1,72 @@
# ZeroTier One in a container!
**NOTE:** _Most of this information pertains to the docker image only. For more information about ZeroTier, check out the repository_: [here](https://github.com/zerotier/ZeroTierOne) or the [commercial website](https://www.zerotier.com).
[ZeroTier](https://www.zerotier.com) is a smart programmable Ethernet switch for planet Earth. It allows all networked devices, VMs, containers, and applications to communicate as if they all reside in the same physical data center or cloud region.
This is accomplished by combining a cryptographically addressed and secure peer to peer network (termed VL1) with an Ethernet emulation layer somewhat similar to VXLAN (termed VL2). Our VL2 Ethernet virtualization layer includes advanced enterprise SDN features like fine grained access control rules for network micro-segmentation and security monitoring.
All ZeroTier traffic is encrypted end-to-end using secret keys that only you control. Most traffic flows peer to peer, though we offer free (but slow) relaying for users who cannot establish peer to peer connections.
The goals and design principles of ZeroTier are inspired by among other things the original [Google BeyondCorp](https://static.googleusercontent.com/media/research.google.com/en//pubs/archive/43231.pdf) paper and the [Jericho Forum](https://en.wikipedia.org/wiki/Jericho_Forum) with its notion of "deperimeterization."
Visit [ZeroTier's site](https://www.zerotier.com/) for more information and [pre-built binary packages](https://www.zerotier.com/download/). Apps for Android and iOS are available for free in the Google Play and Apple app stores.
ZeroTier is licensed under the [BSL version 1.1](https://mariadb.com/bsl11/). See [LICENSE.txt](https://github.com/zerotier/ZeroTierOne/blob/master/LICENSE.txt) and the [ZeroTier pricing page](https://www.zerotier.com/pricing) for details. ZeroTier is free to use internally in businesses and academic institutions and for non-commercial purposes. Certain types of commercial use such as building closed-source apps and devices based on ZeroTier or offering ZeroTier network controllers and network management as a SaaS service require a commercial license.
A small amount of third party code is also included in ZeroTier and is not subject to our BSL license. See [AUTHORS.md](https://github.com/zerotier/ZeroTierOne/blob/master/AUTHORS.md) for a list of third party code, where it is included, and the licenses that apply to it. All of the third party code in ZeroTier is liberally licensed (MIT, BSD, Apache, public domain, etc.).
## Building the docker image
Due to the network being a substrate for most applications and not an application unto itself, it makes sense that many people would want to build their own image based on our formula.
The image is based on `debian:buster`.
The `Dockerfile.release` file contains build instructions for building the described image in the rest of the README. The build is multi-arch and multi-release capable.
These build arguments power the build:
- `PACKAGE_BASEURL`: The base URL of the package repository to fetch from. (default: `https://download.zerotier.com/debian/buster/pool/main/z/zerotier-one/`)
- `ARCH`: The architecture of the package, in debian format. Must match your image arch. (default: `amd64`)
- `VERSION`: **REQUIRED** the version of ZeroTier to fetch.
You can build this image like so:
```
docker build -f Dockerfile.release -t mybuild --build-arg VERSION=1.6.5 .
```
## Using the docker image
The `entrypoint.sh` in the docker image is a little different; zerotier will be spawned in the background and the "main process" is actually just a sleeping shell script. This allows `zerotier-one` to gracefully terminate in some situations largely unique to docker.
The `zerotier/zerotier` image requires the `CAP_NET_ADMIN` capability and the `/dev/net/tun` device must be forwarded to it.
To join a network, simply supply it on the command-line; you can supply multiple networks.
```
docker run --name myzerotier --rm --cap-add NET_ADMIN --device /dev/net/tun zerotier/zerotier:latest abcdefdeadbeef00
```
Once joining all the networks you have provided, it will sleep until terminated. Note that in ZeroTier, joining a network does not necessarily mean you have an IP or can do anything, really. You will want to probe the control socket:
```
docker exec myzerotier zerotier-cli listnetworks
```
To ensure you have a network available before trying to listen on it. Without pre-configuring the identity, this usually means going to the central admin panel and clicking the checkmark against your zerotier identity.
### Environment Variables
You can control a few settings including the identity used and the authtoken used to interact with the control socket (which you can forward and access through `localhost:9993`).
- `ZEROTIER_JOIN_NETWORKS`: additional way to set networks to join.
- `ZEROTIER_API_SECRET`: replaces the `authtoken.secret` before booting and allows you to manage the control socket's authentication key.
- `ZEROTIER_IDENTITY_PUBLIC`: the `identity.public` file for zerotier-one. Use `zerotier-idtool` to generate one of these for you.
- `ZEROTIER_IDENTITY_SECRET`: the `identity.secret` file for zerotier-one. Use `zerotier-idtool` to generate one of these for you.
### Tips
- Forwarding port `<dockerip>:9993` to somewhere outside is probably a good idea for highly trafficked services.
- Forwarding `localhost:9993` to a control network where you can drive it remotely might be a good idea, just be sure to set your authtoken properly through environment variables.
- Pre-generating your identities could be much simpler to do via our [terraform plugin](https://github.com/zerotier/terraform-provider-zerotier)

View File

@ -1,11 +1,13 @@
ZeroTier - Global Area Networking
======
*This document is written for a software developer audience. For information on using ZeroTier, see the: [Website](https://www.zerotier.com), [Documentation Site](https://docs.zerotier.com), and [Discussion Forum](https://discuss.zerotier.com).*
ZeroTier is a smart programmable Ethernet switch for planet Earth. It allows all networked devices, VMs, containers, and applications to communicate as if they all reside in the same physical data center or cloud region.
This is accomplished by combining a cryptographically addressed and secure peer to peer network (termed VL1) with an Ethernet emulation layer somewhat similar to VXLAN (termed VL2). Our VL2 Ethernet virtualization layer includes advanced enterprise SDN features like fine grained access control rules for network micro-segmentation and security monitoring.
All ZeroTier traffic is encrypted end-to-end using secret keys that only you control. Most traffic flows peer to peer, though we offer free (but slow) relaying for users who cannot establish peer to peer connetions.
All ZeroTier traffic is encrypted end-to-end using secret keys that only you control. Most traffic flows peer to peer, though we offer free (but slow) relaying for users who cannot establish peer to peer connections.
The goals and design principles of ZeroTier are inspired by among other things the original [Google BeyondCorp](https://static.googleusercontent.com/media/research.google.com/en//pubs/archive/43231.pdf) paper and the [Jericho Forum](https://en.wikipedia.org/wiki/Jericho_Forum) with its notion of "deperimeterization."
@ -13,7 +15,7 @@ Visit [ZeroTier's site](https://www.zerotier.com/) for more information and [pre
ZeroTier is licensed under the [BSL version 1.1](https://mariadb.com/bsl11/). See [LICENSE.txt](LICENSE.txt) and the [ZeroTier pricing page](https://www.zerotier.com/pricing) for details. ZeroTier is free to use internally in businesses and academic institutions and for non-commercial purposes. Certain types of commercial use such as building closed-source apps and devices based on ZeroTier or offering ZeroTier network controllers and network management as a SaaS service require a commercial license.
A small amount of third party code is also included in ZeroTier and is not subject to our BSL license. See [AUTHORS.md] for a list of third party code, where it is included, and the licenses that apply to it. All of the third party code in ZeroTier is liberally licensed (MIT, BSD, Apache, public domain, etc.).
A small amount of third party code is also included in ZeroTier and is not subject to our BSL license. See [AUTHORS.md](AUTHORS.md) for a list of third party code, where it is included, and the licenses that apply to it. All of the third party code in ZeroTier is liberally licensed (MIT, BSD, Apache, public domain, etc.).
### Getting Started
@ -41,61 +43,62 @@ The base path contains the ZeroTier One service main entry point (`one.cpp`), se
- `rule-compiler/`: JavaScript rules language compiler for defining network-level rules.
- `service/`: the ZeroTier One service, which wraps the ZeroTier core and provides VPN-like connectivity to virtual networks for desktops, laptops, servers, VMs, and containers.
- `windows/`: Visual Studio solution files, Windows service code, and the Windows task bar app UI.
- `zeroidc/`: OIDC implementation used by ZeroTier service to log into SSO-enabled networks. (This part is written in Rust, and more Rust will be appearing in this repository in the future.)
### Build and Platform Notes
To build on Mac and Linux just type `make`. On FreeBSD and OpenBSD `gmake` (GNU make) is required and can be installed from packages or ports. For Windows there is a Visual Studio solution in `windows/'.
To build on Mac and Linux just type `make`. On FreeBSD and OpenBSD `gmake` (GNU make) is required and can be installed from packages or ports. For Windows there is a Visual Studio solution in `windows/`.
- **Mac**
- Xcode command line tools for OSX 10.8 or newer are required.
- Xcode command line tools for macOS 10.13 or newer are required.
- Rust for x86_64 and ARM64 targets *if SSO is enabled in the build*.
- **Linux**
- The minimum compiler versions required are GCC/G++ 4.9.3 or CLANG/CLANG++ 3.4.2. (Install `clang` on CentOS 7 as G++ is too old.)
- Linux makefiles automatically detect and prefer clang/clang++ if present as it produces smaller and slightly faster binaries in most cases. You can override by supplying CC and CXX variables on the make command line.
- Rust for x86_64 and ARM64 targets *if SSO is enabled in the build*.
- **Windows**
- Windows 7 or newer is supported. This *may* work on Vista but isn't officially supported there. It will not work on Windows XP.
- We build with Visual Studio 2017. Older versions may not work. Clang or MinGW will also probably work but may require some makefile hacking.
- Visual Studio 2022 on Windows 10 or newer.
- Rust for x86_64 and ARM64 targets *if SSO is enabled in the build*.
- **FreeBSD**
- GNU make is required. Type `gmake` to build.
- Rust for x86_64 and ARM64 targets *if SSO is enabled in the build*.
- **OpenBSD**
- There is a limit of four network memberships on OpenBSD as there are only four tap devices (`/dev/tap0` through `/dev/tap3`).
- GNU make is required. Type `gmake` to build.
- Rust for x86_64 and ARM64 targets *if SSO is enabled in the build*.
Typing `make selftest` will build a *zerotier-selftest* binary which unit tests various internals and reports on a few aspects of the build environment. It's a good idea to try this on novel platforms or architectures.
### Running
Running *zerotier-one* with -h will show help.
Running *zerotier-one* with `-h` option will show help.
On Linux and BSD you can start the service with:
On Linux and BSD, if you built from source, you can start the service with:
sudo ./zerotier-one -d
On most distributions, macOS, and Windows, the installer will start the service and set it up to start on boot.
A home folder for your system will automatically be created.
The service is controlled via the JSON API, which by default is available at 127.0.0.1 port 9993. We include a *zerotier-cli* command line utility to make API calls for standard things like joining and leaving networks. The *authtoken.secret* file in the home folder contains the secret token for accessing this API. See README.md in [service/](service/) for API documentation.
The service is controlled via the JSON API, which by default is available at 127.0.0.1 port 9993. We include a *zerotier-cli* command line utility to make API calls for standard things like joining and leaving networks. The *authtoken.secret* file in the home folder contains the secret token for accessing this API. See [service/README.md](service/README.md) for API documentation.
Here's where home folders live (by default) on each OS:
* **Linux**: `/var/lib/zerotier-one`
* **FreeBSD** / **OpenBSD**: `/var/db/zerotier-one`
* **Mac**: `/Library/Application Support/ZeroTier/One`
* **Windows**: `\ProgramData\ZeroTier\One` (That's for Windows 7. The base 'shared app data' folder might be different on different Windows versions.)
Running ZeroTier One on a Mac is the same, but OSX requires a kernel extension. We ship a signed binary build of the ZeroTier tap device driver, which can be installed on Mac with:
sudo make install-mac-tap
This will create the home folder for Mac, place *tap.kext* there, and set its modes correctly to enable ZeroTier One to manage it with *kextload* and *kextunload*.
* **Windows**: `\ProgramData\ZeroTier\One` (That's the default. The base 'shared app data' folder might be different if Windows is installed with a non-standard drive letter assignment or layout.)
### Basic Troubleshooting
For most users, it just works.
If you are running a local system firewall, we recommend adding a rule permitting UDP port 9993 inbound and outbound. If you installed binaries for Windows this should be done automatically. Other platforms might require manual editing of local firewall rules depending on your configuration.
If you are running a local system firewall, we recommend adding a rules permitting zerotier. If you installed binaries for Windows this should be done automatically. Other platforms might require manual editing of local firewall rules depending on your configuration.
The Mac firewall can be found under "Security" in System Preferences. Linux has a variety of firewall configuration systems and tools. If you're using Ubuntu's *ufw*, you can do this:
See the [documentation site](https://docs.zerotier.com/zerotier/troubleshooting) for more information.
sudo ufw allow 9993/udp
The Mac firewall can be found under "Security" in System Preferences. Linux has a variety of firewall configuration systems and tools.
On CentOS check `/etc/sysconfig/iptables` for IPTables rules. For other distributions consult your distribution's documentation. You'll also have to check the UIs or documentation for commercial third party firewall applications like Little Snitch (Mac), McAfee Firewall Enterprise (Windows), etc. if you are running any of those. Some corporate environments might have centrally managed firewall software, so you might also have to contact IT.
@ -105,4 +108,4 @@ Users behind certain types of firewalls and "symmetric" NAT devices may not able
If a firewall between you and the Internet blocks ZeroTier's UDP traffic, you will fall back to last-resort TCP tunneling to rootservers over port 443 (https impersonation). This will work almost anywhere but is *very slow* compared to UDP or direct peer to peer connectivity.
Additional help [can be found in our knowledge base](https://zerotier.atlassian.net/wiki/spaces/SD/overview).
Additional help can be found in our [knowledge base](https://zerotier.atlassian.net/wiki/spaces/SD/overview).

View File

@ -1,6 +1,220 @@
ZeroTier Release Notes
======
# 2023-03-10 -- Version 1.10.5
* Fix for high CPU usage bug on Windows
# 2023-03-07 -- Version 1.10.4
* SECURITY FIX (Windows): this version fixes a file permission problem on
Windows that could allow non-privileged users on a Windows system to read
privileged files in the ZeroTier service's working directory. This could
allow an unprivileged local Windows user to administrate the local ZeroTier
instance without appropriate local permissions. This issue is not remotely
exploitable unless a remote user can read arbitrary local files, and does
not impact other operating systems.
* Fix a bug in the handling of multiple IP address assignments to virtual
interfaces on macOS.
# 2023-02-15 -- Version 1.10.3
* Fix for duplicate paths in client. Could cause connectivity issues. Affects all platforms.
* Fix for Ethernet Tap MTU setting, would not properly apply on Linux.
* Fix default route bugs (macOS.)
* Enable Ping automatically for ZeroTier Adapters (Windows.)
* SSO updates and minor bugfixes.
* Add low-bandwidth mode.
* Add forceTcpRelay mode (optionally enabled.)
* Fix bug that prevented setting of custom TCP relay address.
* Build script improvements and bug fixes.
# 2022-11-01 -- Version 1.10.2
* Fix another SSO "stuck client" issue in zeroidc.
* Expose root-reported external IP/port information via the local JSON API for better diagnostics.
* Multipath: CLI output improvement for inspecting bonds
* Multipath: balance-aware mode
* Multipath: Custom policies
* Multipath: Link quality measurement improvements
Note that releases are coming few and far between because most of our dev effort is going into version 2.
# 2022-06-27 -- Version 1.10.1
* Fix an issue that could cause SSO clients to get "stuck" on stale auth URLs.
* A few other SSO related bug fixes.
# 2022-06-07 -- Version 1.10.0
* Fix formatting problem in `zerotier-cli` when using SSO networks.
* Fix a few other minor bugs in SSO signin to prepare for general availability.
* Remove requirement for webview in desktop UI and instead just make everything available via the tray pulldown/menu. Use [libui-ng](https://github.com/libui-ng/libui-ng) for minor prompt dialogs. Saves space and eliminates installation headaches on Windows.
* Fix SSO "spam" bug in desktop UI.
* Use system default browser for SSO login so all your plugins, MFA devices, password managers, etc. will work as you have them configured.
* Minor fix for bonding/multipath.
# 2022-05-10 -- Version 1.8.10
* Fixed a bug preventing SSO sign-on on Windows.
# 2022-04-25 -- Version 1.8.9
* Fixed a long-standing and strange bug that was causing sporadic "phantom" packet authentication failures. Not a security problem but could be behind sporadic reports of link failures under some conditions.
* Fized a memory leak in SSO/OIDC support.
* Fixed SSO/OIDC display error on CLI.
* Fixed a bug causing nodes to sometimes fail to push certs to each other (primarily affects SSO/OIDC use cases).
* Fixed a deadlock bug on leaving SSO/OIDC managed networks.
* Added some new Linux distributions to the build subsystem.
# 2022-04-11 -- Version 1.8.8
* Fix a local privilege escalation bug in the Windows installer.
* Dependency fix for some Ubuntu versions.
* No changes for other platforms. Windows upgrade recommended, everyone else optional.
# 2022-03-30 -- Version 1.8.7
* Fix for dependency installations in Windows MSI package.
* Fix for desktop UI setup when run by a non-super-user.
* Bug fix in local OIDC / SSO support for auth0 and other providers.
* Other minor fixes for e.g. old Linux distributions.
# 2022-03-04 -- Version 1.8.6
* Fixed an issue that could cause the UI to be non-responsive if not joined to any networks.
* Fix dependency issues in Debian and RedHat packages for some distributions (Fedora, Mint).
* Bumped the peer cache serialization version to prevent "coma" issues on upgrade due to changes in path logic behaving badly with old values.
# 2022-02-22 -- Version 1.8.5
* Plumbing under the hood for endpoint device SSO support.
* Fix in LinuxEthernetTap to tap device support on very old (2.6) Linux kernels.
* Fix an issue that could cause self-hosted roots ("moons") to fail to assist peers in making direct links. (GitHub issue #1512)
* Merge a series of changes by Joseph Henry (of ZeroTier) that should fix some edge cases where ZeroTier would "forget" valid paths.
* Minor multipath improvements for automatic path negotiation.
# 2021-11-30 -- Version 1.8.4
* Fixed an ugly font problem on some older macOS versions.
* Fixed a bug that could cause the desktop tray app control panel to stop opening after a while on Windows.
* Fixed a possible double "release" in macOS tray app code that crashed on older macOS versions.
* Fixed installation on 32-bit Windows 10.
* Fixed a build flags issue that could cause ZeroTier to crash on older ARM32 CPUs.
# 2021-11-15 -- Version 1.8.3
* Remove problematic spinlock, which was only used on x86_64 anyway. Just use pthread always.
* Fix fd leak on MacOS that caused non-responsiveness after some time.
* Fix Debian install scripts to set /usr/sbin/nologin as shell on service user.
* Fix regression that could prevent managed routes from being deleted.
* DesktopUI: Remove NSDate:now() call, now works on MacOS 10.13 or newer!
# 2021-11-08 -- Version 1.8.2
* Fix multicast on linux.
* Fix a bug that could cause the tap adapter to have the wrong MAC on Linux.
* Update build flags to possibly support MacOS older than 10.14, but more work needs to be done. It may not work yet.
* Fix path variable setting on Windows.
# 2021-10-28 -- Version 1.8.1
* Fix numerous UI issues from 1.8.0 (never fully released).
* Remove support for REALLY ancient 1.1.6 or earlier network controllers.
* MacOS IPv6 no longer binds to temporary addresses as these can cause interruptions if they expire.
* Added additional hardening against address impersonation on networks (also in 1.6.6).
* Fix an issue that could cause clobbering of MacOS IP route settings on restart.
* NOTE: Windows 7 is no longer supported! Windows 7 users will have to use version 1.6.5 or earlier.
# 2021-09-15 -- Version 1.8.0 (preview release only)
* A *completely* rewritten desktop UI for Mac and Windows!
* Implement a workaround for one potential source of a "coma" bug, which can occur if buggy NATs/routers stop allowing the service to communicate on a given port. ZeroTier now reassigns a new secondary port if it's offline for a while unless a secondary port is manually specified in local.conf. Working around crummy buggy routers is an ongoing effort.
* Fix for MacOS MTU capping issue on feth devices
* Fix for mistakenly using v6 source addresses for v4 routes on some platforms
* Stop binding to temporary IPv6 addresses
* Set MAC address before bringing up Linux TAP link
* Check if DNS servers need to be applied on macOS
* Upgrade json.hpp dependency to version 3.10.2
# 2021-09-21 -- Version 1.6.6
* Backport COM hash check mitigation against network member impersonation.
# 2021-04-13 -- Version 1.6.5
* Fix a bug in potential network path filtering that could in some circumstances lead to "software laser" effects.
* Fix a printf overflow in zerotier-cli (not exploitable or a security risk)
* Windows now looks up the name of ZeroTier devices instead of relying on them having "ZeroTier" in them.
# 2021-02-15 -- Version 1.6.4
* The groundhog saw his shadow, which meant that the "connection coma" bug still wasn't gone. We think we found it this time.
# 2021-02-02 -- Version 1.6.3
* Likely fix for GitHub issue #1334, an issue that could cause ZeroTier to
go into a "coma" on some networks.
* Also groundhog day
# 2020-11-30 -- Version 1.6.2
* Fix an ARM hardware AES crypto issue (not an exploitable vulnerability).
* Fix a Linux network leave hang due to a mutex deadlock.
# 2020-11-24 -- Version 1.6.1
This release fixes some minor bugs and other issues in 1.6.0.
* Fixed a bug that caused IP addresses in the 203.0.0.0/8 block to be miscategorized as not being in global scope.
* Changed Linux builds to (hopefully) fix LXC and SELinux issues.
* Fixed unaligned memory access that caused crash on FreeBSD systems on the ARM architecture.
* Merged CLI options for controlling bonded devices into the beta multipath code.
* Updated Windows driver with Microsoft cross-signing to fix issues on some Windows systems.
# 2020-11-19 -- Version 1.6.0
Version 1.6.0 is a major release that incorporates back-ported features from the 2.0 branch, which is still under development. It also fixes a number of issues.
New features and improvements (including those listed under 1.5.0):
* **Apple Silicon** (MacOS ARM64) native support via universal binary. ZeroTier now requires the very latest Xcode to build.
* **Linux performance improvements** for up to 25% faster tun/tap I/O performance on multi-core systems.
* **Multipath support** with modes modeled after the Linux kernel's bonding driver. This includes active-passive and active-active modes with fast failover and load balancing. See section 2.1.5 of the manual.
* **DNS configuration** push from network controllers to end nodes, with locally configurable permissions for whether or not push is allowed.
* **AES-GMAC-SIV** encryption mode, which is both somewhat more secure and significantly faster than the old Salsa20/12-Poly1305 mode on hardware that supports AES acceleration. This includes virtually all X86-64 chips and most ARM64. This mode is based on AES-SIV and has been audited by Trail of Bits to ensure that it is equivalent security-wise.
Bug fixes:
* **Managed route assignment fixes** to eliminate missing routes on Linux and what we believe to be the source of sporadic high CPU usage on MacOS.
* **Hang on shutdown** issues should be fixed.
* **Sporadic multicast outages** should be fixed.
Known remaining issues:
* AES hardware acceleration is not yet supported on 32-bit ARM, PowerPC (32 or 64), or MIPS (32 or 64) systems. Currently supported are X86-64 and ARM64/AARCH64 with crypto extensions.
# 2020-10-05 -- Version 1.5.0 (actually 1.6.0-beta1)
Version 1.6.0 (1.5.0 is a beta!) is a significant release that incorporates a number of back-ported fixes and features from the ZeroTier 2.0 tree.
Major new features are:
* **Multipath support** with modes modeled after the Linux kernel's bonding driver. This includes active-passive and active-active modes with fast failover and load balancing. See section 2.1.5 of the manual.
* **DNS configuration** push from network controllers to end nodes, with locally configurable permissions for whether or not push is allowed.
* **AES-GMAC-SIV** encryption mode, which is both somewhat more secure and significantly faster than the old Salsa20/12-Poly1305 mode on hardware that supports AES acceleration. This includes virtually all X86-64 chips and most ARM64. This mode is based on AES-SIV and has been audited by Trail of Bits to ensure that it is equivalent security-wise.
Known issues that are not yet fixed in this beta:
* Some Mac users have reported periods of 100% CPU in kernel_task and connection instability after leaving networks that have been joined for a period of time, or needing to kill ZeroTier and restart it to finish leaving a network. This doesn't appear to affect all users and we haven't diagnosed the root cause yet.
* The service sometimes hangs on shutdown requiring a kill -9. This also does not affect all systems or users.
* AES hardware acceleration is not yet supported on 32-bit ARM, PowerPC (32 or 64), or MIPS (32 or 64) systems. Currently supported are X86-64 and ARM64/AARCH64 with crypto extensions.
* Some users have reported multicast/broadcast outages on networks lasting up to 30 seconds. Still investigating.
We're trying to fix all these issues before the 1.6.0 release. Stay tuned.
# 2019-08-30 -- Version 1.4.6
* Update default root list to latest

95
SECURITY.md Normal file
View File

@ -0,0 +1,95 @@
# Security
ZeroTier takes the security of our software products and services seriously, which
includes all source code repositories managed through our GitHub organization.
## Supported Versions
The following versions of ZeroTier One receive security updates
| Version | Supported |
| ------- | ------------------ |
| 1.10.x | :white_check_mark: |
| 1.8.x | :white_check_mark: |
| < 1.8.0 | :x: |
## Reporting a Vulnerability
**Please do not report security issues through public GitHub issues**
Instead, please report vulnerabilities via email to security@zerotier.com. If possible,
please encrypt with our PGP key (see below).
Please include the following information, or as much as you can provide to help us
understand the nature and scope of the issue:
* Type of issue (e.g. buffer overflow, SQL injection, cross-site scripting, etc.)
* Full paths of source file(s) related to the manifestation of the issue
* The location of the affected source code (tag/branch/commit or direct URL)
* Any special configuration required to reproduce the issue
* Step-by-step instructions to reproduce the issue
* Proof-of-concept or exploit code (if possible)
* Impact of the issue, including how an attacker might exploit the issue
## Preferred Languages
We prefer all communications to be in English.
## security@zerotier.com PGP key
```
-----BEGIN PGP PUBLIC KEY BLOCK-----
mQINBGQGOVIBEACalXTnNqaiSOVLFEiqHpDMg8N/OI5D5850Xy1ZEvx3B3rz7cbn
k30ozHtJKbh+vqpyItE7DjyQAuF19gP5Q64Yh0Y+MmLHq60q/GwOwAYz7cI+UzA3
5x8YqcmTp32LAM1xJn+iMlMLBuAmJl4kULKmOXPlpqPiyTFs5saizvm7fgRmfgJJ
HpsnIrTkaDFJhAR+jvMJohVYwmhuydeI0DsHu7KGpG1ddcHDrUjOPNqXnnAPSPwx
llw4yfKlQb8GYErsv/G5QVyzd5+SxEuiI4MARRnrk8LlMQ33CR6pzIQ/Bk5AAmye
mHqfEAknkiOf++urYhRs9BL3Kz3MdV0cg92zr9EFOg0u56jxf5OnAiTOhGUUA0hn
dS7peVGl46R9Oy2JYIazNDGi+4NIsYDFXsnsss9xOQVygPyeQd71zFHfix0jct9w
j3o/kj7Egsnm9nc13354bYT6bbalqXiRWwGH1eAFpjueNWiVFwZS6NZUP3WeNDiY
BlPo1LodvolbXiJcTILTCyEkERJPCK2zoE2nTdVfvTLWsuehw1M6Yd2/q74TVYy/
RY+KjHkrChEBQ9PqXsXRHj6opKbT8JLfZkvU5k+3IiqqxOpB+QXFI/whj493CxWW
so7QAmzOCyJq8GDVPxzkwUac22YIkXdiOmb8i/HWq+kLY/HjQE259Gx6KwARAQAB
tClaZXJvVGllciBTZWN1cml0eSA8c2VjdXJpdHlAemVyb3RpZXIuY29tPokCTAQT
AQoANhYhBH1HQGb+4jzl6mnFqf09m6uqADkABQJkBjlSAhsDBAsJCAcEFQoJCAUW
AgMBAAIeAQIXgAAKCRD9PZurqgA5ACqPD/sFt6SG6Tu0HwTY2ofJtYsa2GBLL0pf
dYlX4cWSs1PVB5+m5Oj18y+GB2umA9GnsVtmvaSfp3XEngt2zNWX27uUsVfL35b2
/5TVVe8RjzOedqMN+lQWMvO+f/C1zmWYXjjpC+iGjgMMaRRrofkkn+7uL4N9y6gY
rcXtpACT1rYFC+i1AKnZfUO8Vr5ji7odq0f7bDkN/N38rB0kRRwEmO8wqdpQK6gK
nxf9vgJl5ggimDk5Xtz1sfd3y28bf5N4hdOCkXUbd10nUFY3wDNTM4VxozxTGJeG
imdcc19Wuw/1fGUZ5SIjgPanCdPLGYwSTr+M6Fuern9uTtlC1GOby3BUtmVGP6EU
1pSAJSRpmoBPHKKOYtSMwV8PCboXru9P1ab8y8STKM3SKyghUJrl17gdc0LaksZa
E54pJudGPIQMFRqZjMdV6jgMuaLTozjZ4mW8EThf4mkX4xDkO8l7cOn0225ZYJZC
lZKpdnwzk9owkJA80u4KBNJxTtB4ZAPzjBsD5hFzCZQTLNQp/psU3EjZsau28eXT
E/C1QjEQHgy4ohkgQlCm1H1+clKssCWcdmsVGXuS1u8gh4K6X9b0Z6LeCGRaQvH2
+DB8oTAdqp9nUZv9rP4pbo+sR4fF67CFLriVuxjedAiFkbM4uHMFcL4tc/X9+DRo
YN5X7oEkZvO507kCDQRkBjlSARAAz58UMF7K1qKyQjzKTcutaYZ5SaIGky9lCLZn
/2vjpFCoBogkxS/6IKQcwZk8b4S9QstaaQZDFEkxqNeKC0GiFTAMAb6SmYcK495h
EZnHl0NA5Nc2dBlZk5E/ENzTCz2bXaxCcVESc2z+xCzu07brbhGrqvliKiwOUzt9
JzqEsar6I95OutBcZvkFCs44/Uf9bS1qf1w4klE8w3vdMtGH23umrET4tFZ+sh6o
ZFtQx0u2eKjsRdn/RMtsxLNaJlcE1DdIAqBpQrcmuwMC8v5wUGfCGZjhClzmyQlq
akUkayir7UtbHbFT/mgO+YI77YGXWk5QrwPscqqT2l8KB/YMujNDmaWa/0KV1lIY
zr5s4dzVeiwqFLR9ANFIhzFwzf3JLi6XSx123Qix0TxZoYPZCHl7yoi9qi6qybz5
0Od2LSz3jbApeKYymZ+zjE+YV5y9DI6Wzy1j2M1FogNvTO9fMk+6dLt4HhTdSNvH
cKya462YCcy+tnZTkhmh+FTebbJlV6D4wG7skE5KCdBhjm53xLwp6XW9L6n2CrkL
W1IDBcCz0oPd1sMkXbO3wnxdXprV2XurCfsg/R2nszSNzvdJ8/xj3cr9hpoJ714R
qqyoEDRZ1Ss9kGL166o5MpN5qb/EewdkqGgWP7YFXbhsdHQiW7Z7dAqzjoaybD4O
nakkwyUAEQEAAYkCNgQYAQoAIBYhBH1HQGb+4jzl6mnFqf09m6uqADkABQJkBjlS
AhsMAAoJEP09m6uqADkAax0P/Rh8EZYRqW6dPYTl1YQusAK10rAcRNq3ekjofXGk
oXK1S7HWGoFgl5++5nfSfNgFJ5VLcgIM56wtIf49zFjWe5oC6fw8k+ghh4d2chMP
hdDILx6e0c30Iq1+EvovGR9hWa0wJ4cKTdzlwhY9ZC09q0ia+bl2mwpie1JQDR0c
zXCjt+PldLeeK9z1/XT0Q7KowYC+U18oR+KFm+EaRV4QT85JVequnIeGkmaHJrHB
lH4T5A5ib7y8edon1c0Zx3GsaxJUojkEJ0SX7ffVDu6ztUZfkHfCVpMW4VzUeGA/
m+CtFO9ciLRGZEkRa+zhIGoBvwEXU0GiwiF4nZ0F2C8UioeW0YIEV9zl3nXJctYE
ZKc2whSENQRTGgaYHVoVZhznt71LKWgFLshwBo81UCXVkzwAjMW1ActDnmPw5M7q
xR5Qp5G49Z1GmfSozazha0HVFPKNV5i3RlTzs4yLUnZyH0yC9IvtOefMHcLjG96L
N5miEV97gvJJjrn8rhRvpUwAWgmT/9IuYjBNQTtNN40arto5HxezR76WCjdKYxdL
p3dM1iiBDShHNm7LdyZlLFhTOMU0tNBxJJ7B09ar5gakeZjD+2aB1ODX9VuFtozL
onBjI2gIkry0UIkuznHfFw05lZAZAiqHEVgVi/WTk4C/bklDZNgE0lx+IWzEz2iS
L455
=lheL
-----END PGP PUBLIC KEY BLOCK-----
```

View File

@ -272,7 +272,7 @@ namespace WinUI
}
}
public void JoinNetwork(Dispatcher d, string nwid, bool allowManaged = true, bool allowGlobal = false, bool allowDefault = false)
public void JoinNetwork(Dispatcher d, string nwid, bool allowManaged = true, bool allowGlobal = false, bool allowDefault = false, bool allowDNS = false)
{
Task.Factory.StartNew(() =>
{
@ -291,7 +291,8 @@ namespace WinUI
{
string json = "{\"allowManaged\":" + (allowManaged ? "true" : "false") + "," +
"\"allowGlobal\":" + (allowGlobal ? "true" : "false") + "," +
"\"allowDefault\":" + (allowDefault ? "true" : "false") + "}";
"\"allowDefault\":" + (allowDefault ? "true" : "false") + "," +
"\"allowDNS\":" + (allowDNS ? "true" : "false") + "}";
streamWriter.Write(json);
streamWriter.Flush();
streamWriter.Close();

View File

@ -19,9 +19,9 @@
<Run Text="ZeroTier One"/>
</Paragraph>
<Paragraph TextAlignment="Center">
<Run FontSize="14" Text="Version 1.4.6"/>
<Run FontSize="14" Text="Version 1.6.6"/>
<LineBreak/>
<Run FontSize="14" Text="(c) 2011-2019 ZeroTier, Inc."/>
<Run FontSize="14" Text="(c) 2011-2021 ZeroTier, Inc."/>
<LineBreak/>
<Run FontSize="14" Text="www.zerotier.com"/>
</Paragraph>

View File

@ -75,7 +75,15 @@ namespace WinUI
{
byte[] tmp = File.ReadAllBytes(centralConfigPath);
string json = Encoding.UTF8.GetString(tmp).Trim();
Central = JsonConvert.DeserializeObject<CentralServer>(json);
CentralServer ctmp = JsonConvert.DeserializeObject<CentralServer>(json);
if (ctmp != null)
{
Central = ctmp;
}
else
{
Central = new CentralServer();
}
}
else
{
@ -105,7 +113,10 @@ namespace WinUI
{
string json = JsonConvert.SerializeObject(Central);
byte[] tmp = Encoding.UTF8.GetBytes(json);
File.WriteAllBytes(CentralConfigFile(), tmp);
if (tmp != null)
{
File.WriteAllBytes(CentralConfigFile(), tmp);
}
}
private void UpdateRequestHeaders()

View File

@ -10,7 +10,8 @@
<TextBox x:Name="joinNetworkBox" HorizontalAlignment="Left" Height="23" Margin="10,10,0,0" TextWrapping="Wrap" VerticalAlignment="Top" Width="291" PreviewTextInput="joinNetworkBox_OnTextEntered" PreviewKeyDown="joinNetworkBox_OnKeyDown"/>
<CheckBox x:Name="allowManagedCheckbox" Content="Allow Managed" HorizontalAlignment="Left" Margin="10,38,0,0" VerticalAlignment="Top" IsChecked="True"/>
<CheckBox x:Name="allowGlobalCheckbox" Content="Allow Global" HorizontalAlignment="Left" Margin="118,38,0,0" VerticalAlignment="Top"/>
<CheckBox x:Name="allowDefaultCheckbox" Content="Allow Default" HorizontalAlignment="Left" Margin="210,38,-6,0" VerticalAlignment="Top"/>
<CheckBox x:Name="allowDefaultCheckbox" Content="Allow Default" HorizontalAlignment="Left" Margin="10,58,0,0" VerticalAlignment="Top"/>
<CheckBox x:Name="allowDNSCheckbox" Content="Allow DNS" HorizontalAlignment="Left" VerticalAlignment="Top" Margin="118,58,0,0"/>
<Button x:Name="joinButton" Content="Join" HorizontalAlignment="Left" Margin="226,58,0,10" Background="#FFFFB354" VerticalAlignment="Top" Width="75" Click="joinButton_Click" IsEnabled="False"/>
</Grid>
</Window>

View File

@ -117,8 +117,9 @@ namespace WinUI
bool allowDefault = allowDefaultCheckbox.IsChecked.Value;
bool allowGlobal = allowGlobalCheckbox.IsChecked.Value;
bool allowManaged = allowManagedCheckbox.IsChecked.Value;
bool allowDNS = allowDNSCheckbox.IsChecked.Value;
APIHandler.Instance.JoinNetwork(this.Dispatcher, joinNetworkBox.Text, allowManaged, allowGlobal, allowDefault);
APIHandler.Instance.JoinNetwork(this.Dispatcher, joinNetworkBox.Text, allowManaged, allowGlobal, allowDefault, allowDNS);
Close();
}

View File

@ -29,6 +29,7 @@
<RowDefinition Height="auto"/>
<RowDefinition Height="auto"/>
<RowDefinition Height="auto"/>
<RowDefinition Height="auto"/>
</Grid.RowDefinitions>
<Grid Grid.Column="0" Grid.Row="0" Grid.ColumnSpan="3">
@ -54,8 +55,9 @@
<TextBlock TextWrapping="Wrap" Text="Allow Global IP" HorizontalAlignment="Right" Grid.Column="0" Grid.Row="10" Foreground="#FF000000"/>
<TextBlock TextWrapping="Wrap" Text="Allow Managed IP" HorizontalAlignment="Right" Grid.Column="0" Grid.Row="11" Foreground="#FF000000"/>
<TextBlock TextWrapping="Wrap" Text="Allow Default Route" HorizontalAlignment="Right" Grid.Column="0" Grid.Row="12" Foreground="#FF000000"/>
<Rectangle Grid.Column="2" Grid.Row="2" Grid.RowSpan="11" Fill="#FFEEEEEE"/>
<TextBlock TextWrapping="Wrap" Text="Allow DNS" HorizontalAlignment="Right" Grid.Column="0" Grid.Row="13" Foreground="#FF000000"/>
<Rectangle Grid.Column="2" Grid.Row="2" Grid.RowSpan="12" Fill="#FFEEEEEE"/>
<TextBlock x:Name="networkStatus" FontFamily="Lucida Console" TextWrapping="Wrap" HorizontalAlignment="Right" Text="OK" TextAlignment="Right" Grid.Column="2" Grid.Row="2" Foreground="#FF000000"/>
<TextBlock x:Name="networkType" FontFamily="Lucida Console" TextWrapping="Wrap" Text="PUBLIC" HorizontalAlignment="Right" Grid.Column="2" Grid.Row="3" Foreground="#FF000000"/>
@ -68,10 +70,11 @@
<CheckBox x:Name="allowGlobal" HorizontalAlignment="Right" Grid.Column="2" Grid.Row="10" />
<CheckBox x:Name="allowManaged" HorizontalAlignment="Right" Grid.Column="2" Grid.Row="11" />
<CheckBox x:Name="allowDefault" HorizontalAlignment="Right" Grid.Column="2" Grid.Row="12" />
<CheckBox x:Name="allowDNS" HorizontalAlignment="Right" Grid.Column="2" Grid.Row="13"/>
<Separator Grid.Column="0" Grid.Row="14" Grid.ColumnSpan="3"/>
<Separator Grid.Column="0" Grid.Row="13" Grid.ColumnSpan="3"/>
<Grid Grid.Column="0" Grid.Row="14" Grid.ColumnSpan="3" Background="GhostWhite">
<Grid Grid.Column="0" Grid.Row="15" Grid.ColumnSpan="3" Background="GhostWhite">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="auto"/>
<ColumnDefinition Width="*"/>

View File

@ -36,6 +36,8 @@ namespace WinUI
allowGlobal.Unchecked += AllowGlobal_CheckStateChanged;
allowManaged.Checked += AllowManaged_CheckStateChanged;
allowManaged.Unchecked += AllowManaged_CheckStateChanged;
allowDNS.Checked += AllowDNS_CheckStateChanged;
allowDNS.Unchecked += AllowDNS_CheckStateChanged;
}
private void UpdateNetworkData()
@ -79,6 +81,7 @@ namespace WinUI
this.allowDefault.IsChecked = network.AllowDefault;
this.allowGlobal.IsChecked = network.AllowGlobal;
this.allowManaged.IsChecked = network.AllowManaged;
this.allowDNS.IsChecked = network.AllowDNS;
this.connectedCheckBox.Checked -= connectedCheckBox_Checked;
this.connectedCheckBox.Unchecked -= connectedCheckbox_Unchecked;
@ -116,7 +119,8 @@ namespace WinUI
APIHandler.Instance.JoinNetwork(this.Dispatcher, network.NetworkId,
allowManaged.IsChecked ?? false,
allowGlobal.IsChecked ?? false,
allowDefault.IsChecked ?? false);
allowDefault.IsChecked ?? false,
allowDNS.IsChecked ?? false);
}
private void AllowGlobal_CheckStateChanged(object sender, RoutedEventArgs e)
@ -125,7 +129,8 @@ namespace WinUI
APIHandler.Instance.JoinNetwork(this.Dispatcher, network.NetworkId,
allowManaged.IsChecked ?? false,
allowGlobal.IsChecked ?? false,
allowDefault.IsChecked ?? false);
allowDefault.IsChecked ?? false,
allowDNS.IsChecked ?? false);
}
private void AllowDefault_CheckStateChanged(object sender, RoutedEventArgs e)
@ -134,7 +139,18 @@ namespace WinUI
APIHandler.Instance.JoinNetwork(this.Dispatcher, network.NetworkId,
allowManaged.IsChecked ?? false,
allowGlobal.IsChecked ?? false,
allowDefault.IsChecked ?? false);
allowDefault.IsChecked ?? false,
allowDNS.IsChecked ?? false);
}
private void AllowDNS_CheckStateChanged(object sender, RoutedEventArgs e)
{
CheckBox cb = sender as CheckBox;
APIHandler.Instance.JoinNetwork(this.Dispatcher, network.NetworkId,
allowManaged.IsChecked ?? false,
allowGlobal.IsChecked ?? false,
allowDefault.IsChecked ?? false,
allowDNS.IsChecked ?? false);
}
private void connectedCheckBox_Checked(object sender, RoutedEventArgs e)
@ -154,8 +170,9 @@ namespace WinUI
bool global = allowGlobal.IsChecked.Value;
bool managed = allowManaged.IsChecked.Value;
bool defRoute = allowDefault.IsChecked.Value;
bool dns = allowDNS.IsChecked.Value;
APIHandler.Instance.JoinNetwork(this.Dispatcher, networkId.Text, managed, global, defRoute);
APIHandler.Instance.JoinNetwork(this.Dispatcher, networkId.Text, managed, global, defRoute, dns);
}
else
{

View File

Before

Width:  |  Height:  |  Size: 44 KiB

After

Width:  |  Height:  |  Size: 44 KiB

View File

@ -260,7 +260,6 @@
<None Include="Resources\ZeroTierIcon.ico" />
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
<Import Project="$(MSBuildExtensionsPath)\Microsoft\Expression\Blend\.NETFramework\v4.5\Microsoft.Expression.Blend.WPF.targets" />
<PropertyGroup>
<PostBuildEvent>copy "$(SolutionDir)\copyutil\bin\$(ConfigurationName)\copyutil.exe" "$(ProjectDir)\$(OutDir)\copyutil.exe"</PostBuildEvent>
</PropertyGroup>

View File

Before

Width:  |  Height:  |  Size: 361 KiB

After

Width:  |  Height:  |  Size: 361 KiB

View File

@ -30,6 +30,7 @@ namespace WinUI
private bool allowManaged;
private bool allowGlobal;
private bool allowDefault;
private bool allowDNS;
private bool isConnected;
protected ZeroTierNetwork(SerializationInfo info, StreamingContext ctx)
@ -53,6 +54,7 @@ namespace WinUI
AllowManaged = info.GetBoolean("allowManaged");
AllowGlobal = info.GetBoolean("allowGlobal");
AllowDefault = info.GetBoolean("allowDefault");
AllowDNS = info.GetBoolean("allowDNS");
}
catch { }
IsConnected = false;
@ -79,6 +81,7 @@ namespace WinUI
info.AddValue("allowManaged", AllowManaged);
info.AddValue("allowGlobal", AllowGlobal);
info.AddValue("allowDefault", AllowDefault);
info.AddValue("allowDNS", AllowDNS);
}
public void UpdateNetwork(ZeroTierNetwork network)
@ -165,6 +168,11 @@ namespace WinUI
AllowDefault = network.AllowDefault;
}
if (AllowDNS != network.AllowDNS)
{
AllowDNS = network.AllowDNS;
}
if (IsConnected != network.IsConnected)
{
IsConnected = network.IsConnected;
@ -413,6 +421,20 @@ namespace WinUI
NotifyPropertyChanged();
}
}
[JsonProperty("allowDNS")]
public bool AllowDNS
{
get
{
return allowDNS;
}
set
{
allowDNS = value;
NotifyPropertyChanged();
}
}
public bool IsConnected
{

View File

@ -65,6 +65,7 @@
93DAFB261D3F0BEE004D5417 /* about.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = about.html; sourceTree = "<group>"; };
93DAFE4A1CFE53CA00547CC4 /* AuthtokenCopy.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AuthtokenCopy.m; sourceTree = "<group>"; };
93DAFE4C1CFE53DA00547CC4 /* AuthtokenCopy.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AuthtokenCopy.h; sourceTree = "<group>"; };
C13C72B12527E1B20094F8B4 /* ZeroTier One.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = "ZeroTier One.entitlements"; sourceTree = "<group>"; };
/* End PBXFileReference section */
/* Begin PBXFrameworksBuildPhase section */
@ -99,6 +100,7 @@
93326BDA1CE7C816005CA2AC /* ZeroTier One */ = {
isa = PBXGroup;
children = (
C13C72B12527E1B20094F8B4 /* ZeroTier One.entitlements */,
932D472E1D1CD499004BCFE2 /* ZeroTierIcon.icns */,
93326BDD1CE7C816005CA2AC /* Assets.xcassets */,
93326BDF1CE7C816005CA2AC /* MainMenu.xib */,
@ -175,6 +177,7 @@
developmentRegion = English;
hasScannedForEncodings = 0;
knownRegions = (
English,
en,
Base,
);
@ -330,7 +333,10 @@
isa = XCBuildConfiguration;
buildSettings = {
CLANG_ENABLE_MODULES = YES;
CODE_SIGN_ENTITLEMENTS = "ZeroTier One/ZeroTier One.entitlements";
CODE_SIGN_IDENTITY = "-";
COMBINE_HIDPI_IMAGES = YES;
ENABLE_HARDENED_RUNTIME = YES;
INFOPLIST_FILE = "ZeroTier One/Info.plist";
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks";
MACOSX_DEPLOYMENT_TARGET = 10.10;
@ -345,7 +351,10 @@
isa = XCBuildConfiguration;
buildSettings = {
CLANG_ENABLE_MODULES = YES;
CODE_SIGN_ENTITLEMENTS = "ZeroTier One/ZeroTier One.entitlements";
CODE_SIGN_IDENTITY = "-";
COMBINE_HIDPI_IMAGES = YES;
ENABLE_HARDENED_RUNTIME = YES;
INFOPLIST_FILE = "ZeroTier One/Info.plist";
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks";
MACOSX_DEPLOYMENT_TARGET = 10.10;

View File

@ -0,0 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>IDEDidComputeMac32BitWarning</key>
<true/>
</dict>
</plist>

View File

@ -336,6 +336,7 @@
allowManaged:network.allowManaged
allowGlobal:network.allowGlobal
allowDefault:(network.allowDefault && ![Network defaultRouteExists:self.networks])
allowDNS:network.allowDNS
error:&error];
if (error) {

View File

Before

Width:  |  Height:  |  Size: 17 KiB

After

Width:  |  Height:  |  Size: 17 KiB

View File

@ -30,6 +30,7 @@ extern NSString * const JoinedNetworksKey;
@property (nonatomic, weak) IBOutlet NSButton *allowManagedCheckBox;
@property (nonatomic, weak) IBOutlet NSButton *allowGlobalCheckBox;
@property (nonatomic, weak) IBOutlet NSButton *allowDefaultCheckBox;
@property (nonatomic, weak) IBOutlet NSButton *allowDNSCheckBox;
@property (nonatomic, weak) IBOutlet AppDelegate *appDelegate;
@property (nonatomic) NSMutableArray<NSString*> *values;

View File

@ -54,6 +54,7 @@ NSString * const JoinedNetworksKey = @"com.zerotier.one.joined-networks";
self.allowManagedCheckBox.state = NSOnState;
self.allowGlobalCheckBox.state = NSOffState;
self.allowDefaultCheckBox.state = NSOffState;
self.allowDNSCheckBox.state = NSOffState;
self.network.stringValue = @"";
@ -82,6 +83,7 @@ NSString * const JoinedNetworksKey = @"com.zerotier.one.joined-networks";
allowManaged:(self.allowManagedCheckBox.state == NSOnState)
allowGlobal:(self.allowGlobalCheckBox.state == NSOnState)
allowDefault:(self.allowDefaultCheckBox.state == NSOnState)
allowDNS:(self.allowDNSCheckBox.state == NSOnState)
error:&error];
if(error) {

View File

@ -1,13 +1,14 @@
<?xml version="1.0" encoding="UTF-8"?>
<document type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="3.0" toolsVersion="11762" systemVersion="16D32" targetRuntime="MacOSX.Cocoa" propertyAccessControl="none" useAutolayout="YES" customObjectInstantitationMethod="direct">
<document type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="3.0" toolsVersion="16097.3" targetRuntime="MacOSX.Cocoa" propertyAccessControl="none" useAutolayout="YES" customObjectInstantitationMethod="direct">
<dependencies>
<deployment identifier="macosx"/>
<plugIn identifier="com.apple.InterfaceBuilder.CocoaPlugin" version="11762"/>
<plugIn identifier="com.apple.InterfaceBuilder.CocoaPlugin" version="16097.3"/>
<capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
</dependencies>
<objects>
<customObject id="-2" userLabel="File's Owner" customClass="JoinNetworkViewController" customModule="ZeroTier_One" customModuleProvider="target">
<connections>
<outlet property="allowDNSCheckBox" destination="LKY-vN-prS" id="COu-3z-092"/>
<outlet property="allowDefaultCheckBox" destination="rz3-0a-oNA" id="mYu-Wq-MHW"/>
<outlet property="allowGlobalCheckBox" destination="BH2-2O-Qeu" id="alx-Je-q9I"/>
<outlet property="allowManagedCheckBox" destination="OQS-QZ-zcY" id="7pz-vO-3IC"/>
@ -19,11 +20,11 @@
<customObject id="-1" userLabel="First Responder" customClass="FirstResponder"/>
<customObject id="-3" userLabel="Application" customClass="NSObject"/>
<customView id="Hz6-mo-xeY">
<rect key="frame" x="0.0" y="0.0" width="397" height="123"/>
<rect key="frame" x="0.0" y="0.0" width="397" height="106"/>
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
<subviews>
<textField horizontalHuggingPriority="251" verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="puT-Yk-CWC">
<rect key="frame" x="18" y="83" width="107" height="17"/>
<textField horizontalHuggingPriority="251" verticalHuggingPriority="750" fixedFrame="YES" allowsCharacterPickerTouchBarItem="YES" translatesAutoresizingMaskIntoConstraints="NO" id="puT-Yk-CWC">
<rect key="frame" x="18" y="66" width="107" height="17"/>
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
<textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" sendsActionOnEndEditing="YES" title="Enter Network ID" id="oYH-gS-BX5">
<font key="font" metaFont="system"/>
@ -31,6 +32,47 @@
<color key="backgroundColor" name="controlColor" catalog="System" colorSpace="catalog"/>
</textFieldCell>
</textField>
<comboBox verticalHuggingPriority="750" fixedFrame="YES" allowsCharacterPickerTouchBarItem="YES" translatesAutoresizingMaskIntoConstraints="NO" id="BQy-d9-BNg">
<rect key="frame" x="131" y="62" width="249" height="26"/>
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
<comboBoxCell key="cell" scrollable="YES" lineBreakMode="clipping" selectable="YES" editable="YES" sendsActionOnEndEditing="YES" borderStyle="bezel" drawsBackground="YES" usesDataSource="YES" numberOfVisibleItems="5" id="n71-4S-AaI">
<font key="font" metaFont="system"/>
<color key="textColor" name="controlTextColor" catalog="System" colorSpace="catalog"/>
<color key="backgroundColor" name="textBackgroundColor" catalog="System" colorSpace="catalog"/>
</comboBoxCell>
</comboBox>
<button fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="OQS-QZ-zcY">
<rect key="frame" x="18" y="42" width="115" height="18"/>
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
<buttonCell key="cell" type="check" title="Allow Managed" bezelStyle="regularSquare" imagePosition="left" state="on" inset="2" id="QEN-MJ-xaj">
<behavior key="behavior" changeContents="YES" doesNotDimImage="YES" lightByContents="YES"/>
<font key="font" metaFont="system"/>
</buttonCell>
</button>
<button fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="BH2-2O-Qeu">
<rect key="frame" x="18" y="22" width="97" height="18"/>
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
<buttonCell key="cell" type="check" title="Allow Global" bezelStyle="regularSquare" imagePosition="left" inset="2" id="epO-Uh-aHN">
<behavior key="behavior" changeContents="YES" doesNotDimImage="YES" lightByContents="YES"/>
<font key="font" metaFont="system"/>
</buttonCell>
</button>
<button fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="rz3-0a-oNA">
<rect key="frame" x="137" y="42" width="141" height="18"/>
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
<buttonCell key="cell" type="check" title="Allow Default Route" bezelStyle="regularSquare" imagePosition="left" inset="2" id="Lkd-XI-Kcu">
<behavior key="behavior" changeContents="YES" doesNotDimImage="YES" lightByContents="YES"/>
<font key="font" metaFont="system"/>
</buttonCell>
</button>
<button verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="LKY-vN-prS">
<rect key="frame" x="137" y="22" width="86" height="18"/>
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
<buttonCell key="cell" type="check" title="Allow DNS" bezelStyle="regularSquare" imagePosition="left" inset="2" id="gGS-NZ-yu1">
<behavior key="behavior" changeContents="YES" doesNotDimImage="YES" lightByContents="YES"/>
<font key="font" metaFont="system"/>
</buttonCell>
</button>
<button verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="BGy-vd-NQX">
<rect key="frame" x="302" y="13" width="81" height="32"/>
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
@ -42,41 +84,8 @@
<action selector="onJoinClicked:" target="-2" id="kzC-GT-JKb"/>
</connections>
</button>
<comboBox verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="BQy-d9-BNg">
<rect key="frame" x="131" y="79" width="249" height="26"/>
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
<comboBoxCell key="cell" scrollable="YES" lineBreakMode="clipping" selectable="YES" editable="YES" sendsActionOnEndEditing="YES" borderStyle="bezel" drawsBackground="YES" usesDataSource="YES" numberOfVisibleItems="5" id="n71-4S-AaI">
<font key="font" metaFont="system"/>
<color key="textColor" name="controlTextColor" catalog="System" colorSpace="catalog"/>
<color key="backgroundColor" name="textBackgroundColor" catalog="System" colorSpace="catalog"/>
</comboBoxCell>
</comboBox>
<button fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="OQS-QZ-zcY">
<rect key="frame" x="18" y="59" width="115" height="18"/>
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
<buttonCell key="cell" type="check" title="Allow Managed" bezelStyle="regularSquare" imagePosition="left" state="on" inset="2" id="QEN-MJ-xaj">
<behavior key="behavior" changeContents="YES" doesNotDimImage="YES" lightByContents="YES"/>
<font key="font" metaFont="system"/>
</buttonCell>
</button>
<button fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="BH2-2O-Qeu">
<rect key="frame" x="137" y="59" width="97" height="18"/>
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
<buttonCell key="cell" type="check" title="Allow Global" bezelStyle="regularSquare" imagePosition="left" inset="2" id="epO-Uh-aHN">
<behavior key="behavior" changeContents="YES" doesNotDimImage="YES" lightByContents="YES"/>
<font key="font" metaFont="system"/>
</buttonCell>
</button>
<button fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="rz3-0a-oNA">
<rect key="frame" x="238" y="59" width="141" height="18"/>
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
<buttonCell key="cell" type="check" title="Allow Default Route" bezelStyle="regularSquare" imagePosition="left" inset="2" id="Lkd-XI-Kcu">
<behavior key="behavior" changeContents="YES" doesNotDimImage="YES" lightByContents="YES"/>
<font key="font" metaFont="system"/>
</buttonCell>
</button>
</subviews>
<point key="canvasLocation" x="263.5" y="372.5"/>
<point key="canvasLocation" x="263.5" y="364"/>
</customView>
</objects>
</document>

View File

@ -50,6 +50,7 @@ enum NetworkType {
@property (readonly) BOOL allowManaged;
@property (readonly) BOOL allowGlobal;
@property (readonly) BOOL allowDefault;
@property (readonly) BOOL allowDNS;
@property (readonly) BOOL connected; // not persisted. set to YES if loaded via json
- (id)initWithJsonData:(NSDictionary*)jsonData;

View File

@ -35,6 +35,7 @@ NSString *NetworkTypeKey = @"type";
NSString *NetworkAllowManagedKey = @"allowManaged";
NSString *NetworkAllowGlobalKey = @"allowGlobal";
NSString *NetworkAllowDefaultKey = @"allowDefault";
NSString *NetworkAllowDNSKey = @"allowDNS";
@implementation Network
@ -101,6 +102,11 @@ NSString *NetworkAllowDefaultKey = @"allowDefault";
if([jsonData objectForKey:@"allowDefault"]) {
_allowDefault = [(NSNumber*)[jsonData objectForKey:@"allowDefault"] boolValue];
}
if([jsonData objectForKey:@"allowDNS"]) {
_allowDNS = [(NSNumber*)[jsonData objectForKey:@"allowDNS"] boolValue];
} else {
_allowDNS = false;
}
if([jsonData objectForKey:@"status"]) {
NSString *statusStr = (NSString*)[jsonData objectForKey:@"status"];
@ -207,6 +213,12 @@ NSString *NetworkAllowDefaultKey = @"allowDefault";
if([aDecoder containsValueForKey:NetworkAllowDefaultKey]) {
_allowDefault = [aDecoder decodeBoolForKey:NetworkAllowDefaultKey];
}
if([aDecoder containsValueForKey:NetworkAllowDNSKey]) {
_allowDNS = [aDecoder decodeBoolForKey:NetworkAllowDNSKey];
} else {
_allowDNS = false;
}
_connected = NO;
}
@ -233,6 +245,7 @@ NSString *NetworkAllowDefaultKey = @"allowDefault";
[aCoder encodeBool:_allowManaged forKey:NetworkAllowManagedKey];
[aCoder encodeBool:_allowGlobal forKey:NetworkAllowGlobalKey];
[aCoder encodeBool:_allowDefault forKey:NetworkAllowDefaultKey];
[aCoder encodeBool:_allowDNS forKey:NetworkAllowDNSKey];
}
+ (BOOL)defaultRouteExists:(NSArray<Network *>*)netList
@ -297,6 +310,7 @@ NSString *NetworkAllowDefaultKey = @"allowDefault";
self.allowManaged == network.allowManaged &&
self.allowGlobal == network.allowGlobal &&
self.allowDefault == network.allowDefault &&
self.allowDNS == network.allowDNS &&
self.connected == network.connected;
}
@ -331,6 +345,7 @@ NSString *NetworkAllowDefaultKey = @"allowDefault";
self.allowManaged ^
self.allowGlobal ^
self.allowDefault ^
self.allowDNS ^
self.connected;
}

View File

@ -37,6 +37,7 @@
@property (weak, nonatomic) IBOutlet NSButton *allowManaged;
@property (weak, nonatomic) IBOutlet NSButton *allowGlobal;
@property (weak, nonatomic) IBOutlet NSButton *allowDefault;
@property (weak, nonatomic) IBOutlet NSButton *allowDNS;
@property (weak, nonatomic) IBOutlet NSButton *connectedCheckbox;
@property (weak, nonatomic) IBOutlet NSButton *deleteButton;

View File

@ -57,6 +57,7 @@
allowManaged:(self.allowManaged.state == NSOnState)
allowGlobal:(self.allowGlobal.state == NSOnState)
allowDefault:![Network defaultRouteExists:_parent.networkList] && (self.allowDefault.state == NSOnState)
allowDNS:(self.allowDNS.state == NSOnState)
error:&error];
if (error) {

Some files were not shown because too many files have changed in this diff Show More