mirror of
https://github.com/zerotier/ZeroTierOne.git
synced 2026-09-22 15:29:03 -07:00
Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
4a2c75a609 | ||
|
|
34a64f30de | ||
|
|
4bdf0317c3 | ||
|
|
8624972d01 | ||
|
|
6bfaaaa557 | ||
|
|
b42c998095 | ||
|
|
56357c077b | ||
|
|
3def00370e | ||
|
|
e1a3285273 | ||
|
|
a8dde7b89b | ||
|
|
567969d33c | ||
|
|
c341bf6d8c | ||
|
|
1f73ab4b05 | ||
|
|
15ddf28c6a | ||
|
|
16b5274963 | ||
|
|
8b9a7d2c8f | ||
|
|
b4b5a70a03 | ||
|
|
1b0c183913 | ||
|
|
5d4a9a4aa1 | ||
|
|
31c12aebb5 | ||
|
|
40269c2a97 | ||
|
|
ed74ed6ed2 | ||
|
|
26e684eb0e | ||
|
|
fc66f79988 | ||
|
|
3c85a7f074 | ||
|
|
62d2a00e74 | ||
|
|
bb2b109707 | ||
|
|
c5008031b9 | ||
|
|
1d15d4e8d3 | ||
|
|
da898d5a19 | ||
|
|
f9c84c8c52 | ||
|
|
5d63ed6739 | ||
|
|
fdf4ebd43c | ||
|
|
dc9fdb7da8 | ||
|
|
2652c71c9e | ||
|
|
806d1fff42 | ||
|
|
c065e88e1e | ||
|
|
4641a44029 | ||
|
|
f544f75c36 | ||
|
|
720168f0a0 | ||
|
|
6dfecca91e | ||
|
|
10b38b5b0a | ||
|
|
dbc5d5c453 | ||
|
|
a3e0ba16f5 | ||
|
|
3c906102e1 | ||
|
|
566ac113e4 | ||
|
|
5abc8bd2af | ||
|
|
926b2e168e | ||
|
|
e475e8151d | ||
|
|
440f10e353 | ||
|
|
30256c7106 | ||
|
|
21946f38d0 | ||
|
|
549673664d | ||
|
|
b45d0c5a36 | ||
|
|
4df05c2890 | ||
|
|
d886089091 | ||
|
|
51158dde93 | ||
|
|
09fff7f1cb | ||
|
|
91f435f32f | ||
|
|
726ffddce2 | ||
|
|
4ecf692f46 | ||
|
|
2a461a9aac | ||
|
|
211b1fc23c | ||
|
|
df6bbb0b0c | ||
|
|
cfae20e0df | ||
|
|
3c0adde0c7 | ||
|
|
f511c9c938 | ||
|
|
20f88b37ef | ||
|
|
269501eaa0 | ||
|
|
330e1de3d1 | ||
|
|
25e14e2164 | ||
|
|
aa97aabb4e | ||
|
|
59cd2766e3 | ||
|
|
b7952d7f39 | ||
|
|
c380a4e4bd | ||
|
|
9c487cbfb8 | ||
|
|
6fc636535f | ||
|
|
4190318c85 | ||
|
|
2f554fd6f8 | ||
|
|
ae93cccde6 | ||
|
|
46e955e3a1 | ||
|
|
60057d7072 | ||
|
|
2850f131e2 | ||
|
|
440568a516 | ||
|
|
e31088aaf9 | ||
|
|
63b36e8569 | ||
|
|
726d359335 | ||
|
|
fc0858a4a3 | ||
|
|
f80103778a | ||
|
|
c09010c25a | ||
|
|
9cd1466e6b | ||
|
|
801be64ed3 | ||
|
|
d719137565 | ||
|
|
58aba96494 | ||
|
|
f8d7796099 | ||
|
|
241c41267b | ||
|
|
2ac1ff9be2 | ||
|
|
cb31b3987f | ||
|
|
c256398095 | ||
|
|
7bb8703bf9 | ||
|
|
0da00bf546 | ||
|
|
4866490cdf | ||
|
|
1547b1a581 | ||
|
|
511c77aa99 | ||
|
|
692a0e7ac2 | ||
|
|
fa25b45198 | ||
|
|
cdd25c389e | ||
|
|
133a6ff7b3 | ||
|
|
96add0ba65 | ||
|
|
f5096a1f26 | ||
|
|
3d4d087f07 | ||
|
|
953e62f103 | ||
|
|
084727c54a | ||
|
|
8ea192fcab | ||
|
|
dceba1f2f1 | ||
|
|
73878fbdc4 | ||
|
|
87d17088cc | ||
|
|
cc6c48fca8 | ||
|
|
e556a2ee23 | ||
|
|
50b866c5cf | ||
|
|
f83eed9ef9 | ||
|
|
cb9313a454 | ||
|
|
cf411efd1d | ||
|
|
1c956494a4 | ||
|
|
dbe3aa1efc | ||
|
|
4128d80974 | ||
|
|
057356a725 | ||
|
|
a69e91c541 | ||
|
|
8fccf3136c | ||
|
|
2435ab70ab | ||
|
|
f489862500 | ||
|
|
2642fa1ee2 | ||
|
|
2293b0703f | ||
|
|
1375e3e2f5 | ||
|
|
0ab5cce878 | ||
|
|
b567e91f68 | ||
|
|
eee31605b1 | ||
|
|
df9a7497b1 | ||
|
|
c6adb6df12 | ||
|
|
aeec7dae36 | ||
|
|
fa58909d44 | ||
|
|
06ed114fb6 | ||
|
|
bdef9d3bd7 | ||
|
|
b154b7296c | ||
|
|
8019f13479 | ||
|
|
1c6fd4125d | ||
|
|
1f99f1d5f4 | ||
|
|
30c77cfee5 | ||
|
|
afdc91f21f | ||
|
|
3470c5314d | ||
|
|
f0e824416b | ||
|
|
52ff67fb2c | ||
|
|
e9375b50b0 | ||
|
|
1f43a736b2 | ||
|
|
05a0a20197 | ||
|
|
2ee595553a | ||
|
|
2d4fe9e6d0 | ||
|
|
dc12bde068 | ||
|
|
b3fbbd3124 | ||
|
|
983336911c | ||
|
|
48b39ab005 | ||
|
|
5095d73de3 | ||
|
|
1192b1b422 | ||
|
|
43c528fdb6 | ||
|
|
da4b9922d4 | ||
|
|
7a8c89be9d | ||
|
|
3b37db1a36 | ||
|
|
5ae0f9d03f | ||
|
|
1dd1bf8bac | ||
|
|
8966002685 | ||
|
|
4ce810b421 | ||
|
|
730482e62f | ||
|
|
eac56a2e25 | ||
|
|
5c3a2357ef | ||
|
|
663a09b38d | ||
|
|
eaccce743f | ||
|
|
7cce23ae79 | ||
|
|
73c186b111 | ||
|
|
5ce0019ee5 | ||
|
|
ca8d315924 | ||
|
|
dfdac7adbd | ||
|
|
a33d7c64fe | ||
|
|
e37c9055b3 | ||
|
|
d15516f0ef | ||
|
|
4a1d6f4cc8 | ||
|
|
6393a4beec | ||
|
|
06125c48bc | ||
|
|
8cda04cc98 | ||
|
|
f20b7e8cee | ||
|
|
19dded141a | ||
|
|
d19cf1eaac | ||
|
|
d6b00bcd40 | ||
|
|
1b1fe61fd0 | ||
|
|
3bce783cbc | ||
|
|
5966f7d9d2 | ||
|
|
aed0b4941f | ||
|
|
9ef75c0e13 | ||
|
|
5f548705dd | ||
|
|
39d3c8402e | ||
|
|
5cb6265547 | ||
|
|
03dd537ea4 | ||
|
|
4af8f1bf03 | ||
|
|
ae8df648d5 | ||
|
|
5e24166318 | ||
|
|
4e10b4e017 | ||
|
|
87fdd644d4 | ||
|
|
2e356613ec | ||
|
|
91e9b736dd | ||
|
|
7f4cc1a239 | ||
|
|
3e3d46e72e | ||
|
|
460c2552a8 | ||
|
|
1a7fb83882 | ||
|
|
dfac6303bc | ||
|
|
8b77a93d60 | ||
|
|
fabfb10b97 | ||
|
|
65549cb0da | ||
|
|
bee137c6d9 | ||
|
|
a2a7122da9 | ||
|
|
0e798222a7 | ||
|
|
c890f1762a | ||
|
|
ea4d7ae92f | ||
|
|
1ef385b685 | ||
|
|
0875fb5fe0 | ||
|
|
b5186f7293 | ||
|
|
fa21fdc1cc | ||
|
|
3f4cd7f5a2 | ||
|
|
272fb2ca96 | ||
|
|
f8ca7002c2 | ||
|
|
6c728313f5 | ||
|
|
f268237372 | ||
|
|
4d021e16a5 | ||
|
|
43433cdb5a | ||
|
|
8d39c9a861 | ||
|
|
f8bf91426b | ||
|
|
f7934972ea | ||
|
|
4cadfd736f | ||
|
|
1c7a5439d5 | ||
|
|
ebc4c898ff | ||
|
|
56cf874d99 | ||
|
|
079ff50622 | ||
|
|
31888f5ef8 | ||
|
|
0069b1bac3 | ||
|
|
c689c0bd8c | ||
|
|
271dfc0d2b | ||
|
|
0032df3bf1 | ||
|
|
95032cc74d | ||
|
|
3818351287 | ||
|
|
4d26b5a868 | ||
|
|
ac0dc7844f | ||
|
|
27e3597d5e | ||
|
|
12900d914a | ||
|
|
b403f106fb | ||
|
|
30d5d5a892 | ||
|
|
c8a58b4b04 | ||
|
|
565885a4c0 | ||
|
|
134d33c218 | ||
|
|
9cfb807fcb | ||
|
|
46adc1f059 | ||
|
|
9002555596 | ||
|
|
3b375b55c2 | ||
|
|
af79be5002 | ||
|
|
2aecb547d9 | ||
|
|
bfe5c758ba | ||
|
|
c9f07e855e |
No files matched your search
+267
@@ -0,0 +1,267 @@
|
||||
---
|
||||
kind: pipeline
|
||||
type: docker
|
||||
name: build 386
|
||||
|
||||
clone:
|
||||
depth: 1
|
||||
|
||||
steps:
|
||||
- name: build 386
|
||||
image: registry.sean.farm/honda-builder
|
||||
commands:
|
||||
- ./ci/scripts/build.sh linux 386 $${DRONE_COMMIT_SHA}
|
||||
- name: notify-mattermost
|
||||
pull: always
|
||||
image: registry.sean.farm/mattermost-notify
|
||||
environment:
|
||||
token:
|
||||
from_secret: mattermost-token
|
||||
host:
|
||||
from_secret: mattermost-host
|
||||
channel:
|
||||
from_secret: mattermost-channel
|
||||
maxRetry: 3
|
||||
when:
|
||||
status:
|
||||
- failure
|
||||
- success
|
||||
|
||||
image_pull_secrets:
|
||||
- dockerconfigjson
|
||||
|
||||
---
|
||||
kind: pipeline
|
||||
type: docker
|
||||
name: build amd64
|
||||
|
||||
clone:
|
||||
depth: 1
|
||||
|
||||
steps:
|
||||
- name: build amd64
|
||||
image: registry.sean.farm/honda-builder
|
||||
commands:
|
||||
- ./ci/scripts/build.sh linux amd64 $${DRONE_COMMIT_SHA}
|
||||
- name: notify-mattermost
|
||||
pull: always
|
||||
image: registry.sean.farm/mattermost-notify
|
||||
environment:
|
||||
token:
|
||||
from_secret: mattermost-token
|
||||
host:
|
||||
from_secret: mattermost-host
|
||||
channel:
|
||||
from_secret: mattermost-channel
|
||||
maxRetry: 3
|
||||
when:
|
||||
status:
|
||||
- failure
|
||||
- success
|
||||
|
||||
image_pull_secrets:
|
||||
- dockerconfigjson
|
||||
|
||||
---
|
||||
kind: pipeline
|
||||
type: docker
|
||||
name: build arm64
|
||||
|
||||
clone:
|
||||
depth: 1
|
||||
|
||||
steps:
|
||||
- name: build arm64
|
||||
image: registry.sean.farm/honda-builder
|
||||
commands:
|
||||
- ./ci/scripts/build.sh linux arm64 $${DRONE_COMMIT_SHA}
|
||||
- name: notify-mattermost
|
||||
pull: always
|
||||
image: registry.sean.farm/mattermost-notify
|
||||
environment:
|
||||
token:
|
||||
from_secret: mattermost-token
|
||||
host:
|
||||
from_secret: mattermost-host
|
||||
channel:
|
||||
from_secret: mattermost-channel
|
||||
maxRetry: 3
|
||||
when:
|
||||
status:
|
||||
- failure
|
||||
- success
|
||||
|
||||
platform:
|
||||
os: linux
|
||||
arch: arm64
|
||||
|
||||
image_pull_secrets:
|
||||
- dockerconfigjson
|
||||
|
||||
---
|
||||
kind: pipeline
|
||||
type: docker
|
||||
name: build armv7
|
||||
|
||||
platform:
|
||||
os: linux
|
||||
arch: arm64
|
||||
|
||||
clone:
|
||||
depth: 1
|
||||
|
||||
steps:
|
||||
- name: build armv7
|
||||
image: registry.sean.farm/honda-builder
|
||||
commands:
|
||||
- ./ci/scripts/build.sh linux armv7 $${DRONE_COMMIT_SHA}
|
||||
- name: notify-mattermost
|
||||
pull: always
|
||||
image: registry.sean.farm/mattermost-notify
|
||||
environment:
|
||||
token:
|
||||
from_secret: mattermost-token
|
||||
host:
|
||||
from_secret: mattermost-host
|
||||
channel:
|
||||
from_secret: mattermost-channel
|
||||
maxRetry: 3
|
||||
when:
|
||||
status:
|
||||
- failure
|
||||
- success
|
||||
|
||||
platform:
|
||||
os: linux
|
||||
arch: arm64
|
||||
|
||||
image_pull_secrets:
|
||||
- dockerconfigjson
|
||||
|
||||
---
|
||||
kind: pipeline
|
||||
type: docker
|
||||
name: build riscv64
|
||||
|
||||
clone:
|
||||
depth: 1
|
||||
|
||||
steps:
|
||||
- name: build riscv64
|
||||
image: registry.sean.farm/honda-builder
|
||||
commands:
|
||||
- ./ci/scripts/build.sh linux riscv64 $${DRONE_COMMIT_SHA}
|
||||
- name: notify-mattermost
|
||||
pull: always
|
||||
image: registry.sean.farm/mattermost-notify
|
||||
environment:
|
||||
token:
|
||||
from_secret: mattermost-token
|
||||
host:
|
||||
from_secret: mattermost-host
|
||||
channel:
|
||||
from_secret: mattermost-channel
|
||||
maxRetry: 3
|
||||
when:
|
||||
status:
|
||||
- failure
|
||||
- success
|
||||
|
||||
image_pull_secrets:
|
||||
- dockerconfigjson
|
||||
|
||||
---
|
||||
kind: pipeline
|
||||
type: docker
|
||||
name: build mips64le
|
||||
|
||||
clone:
|
||||
depth: 1
|
||||
|
||||
steps:
|
||||
- name: build mips64le
|
||||
image: registry.sean.farm/honda-builder
|
||||
commands:
|
||||
- ./ci/scripts/build.sh linux mips64le $${DRONE_COMMIT_SHA}
|
||||
- name: notify-mattermost
|
||||
pull: always
|
||||
image: registry.sean.farm/mattermost-notify
|
||||
environment:
|
||||
token:
|
||||
from_secret: mattermost-token
|
||||
host:
|
||||
from_secret: mattermost-host
|
||||
channel:
|
||||
from_secret: mattermost-channel
|
||||
maxRetry: 3
|
||||
when:
|
||||
status:
|
||||
- failure
|
||||
- success
|
||||
|
||||
image_pull_secrets:
|
||||
- dockerconfigjson
|
||||
|
||||
---
|
||||
kind: pipeline
|
||||
type: docker
|
||||
name: build ppc64le
|
||||
|
||||
clone:
|
||||
depth: 1
|
||||
|
||||
steps:
|
||||
- name: build ppc64le
|
||||
image: registry.sean.farm/honda-builder
|
||||
commands:
|
||||
- ./ci/scripts/build.sh linux ppc64le $${DRONE_COMMIT_SHA}
|
||||
- name: notify-mattermost
|
||||
pull: always
|
||||
image: registry.sean.farm/mattermost-notify
|
||||
environment:
|
||||
token:
|
||||
from_secret: mattermost-token
|
||||
host:
|
||||
from_secret: mattermost-host
|
||||
channel:
|
||||
from_secret: mattermost-channel
|
||||
maxRetry: 3
|
||||
when:
|
||||
status:
|
||||
- failure
|
||||
- success
|
||||
|
||||
image_pull_secrets:
|
||||
- dockerconfigjson
|
||||
|
||||
---
|
||||
kind: pipeline
|
||||
type: docker
|
||||
name: build s390x
|
||||
|
||||
clone:
|
||||
depth: 1
|
||||
|
||||
steps:
|
||||
- name: build s390x
|
||||
image: registry.sean.farm/honda-builder
|
||||
commands:
|
||||
- ./ci/scripts/build.sh linux s390x $${DRONE_COMMIT_SHA}
|
||||
- name: notify-mattermost
|
||||
pull: always
|
||||
image: registry.sean.farm/mattermost-notify
|
||||
environment:
|
||||
token:
|
||||
from_secret: mattermost-token
|
||||
host:
|
||||
from_secret: mattermost-host
|
||||
channel:
|
||||
from_secret: mattermost-channel
|
||||
maxRetry: 3
|
||||
when:
|
||||
status:
|
||||
- failure
|
||||
- success
|
||||
|
||||
image_pull_secrets:
|
||||
- dockerconfigjson
|
||||
@@ -11,39 +11,21 @@ assignees: ''
|
||||
|
||||
_Using these will ensure you get quicker support, and make this space available for code-related issues. Thank you!_
|
||||
|
||||
- [Knowledge Base](https://zerotier.atlassian.net/wiki/spaces/SD/overview) => Guides and documentation on how to use ZeroTier.
|
||||
- [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
|
||||
|
||||
## Required
|
||||
## Please let us know
|
||||
|
||||
- What you expect to be happening.
|
||||
- What is actually happening?
|
||||
- Any steps to reproduce the error.
|
||||
- Any screenshots that would help us out.
|
||||
- Any relevant console output or screenshots.
|
||||
- What operating system and ZeroTier version. Please try the latest ZeroTier release.
|
||||
|
||||
## Additional information
|
||||
|
||||
**Desktop (please complete the following information):**
|
||||
- OS: [e.g. Mac, Linux, Windows, BSD]
|
||||
- OS/Distribution Version
|
||||
- ZeroTier Version [e.g. 1.4.6]
|
||||
|
||||
**Smartphone (please complete the following information):**
|
||||
- Device: [e.g. iPhone6]
|
||||
- OS: [e.g. iOS8.1]
|
||||
- ZeroTier Version [e.g. 1.4.6]
|
||||
|
||||
**Embedded & NAS (please complete the following information):**
|
||||
- Device: [e.g. Synology, Pi4]
|
||||
- OS/Distribution (if applicable)
|
||||
- ZeroTier Version [e.g. 1.4.6]
|
||||
|
||||
**Additional context**
|
||||
- ZeroTier Network Configuration: IPv4 & IPv6 networks defined on your ZeroTier Central
|
||||
- Router Config: are you permitting port 9993, uPnP, and NAT-PMP?
|
||||
- Firewall Config: are you permitting port 9993 on your OS; setting it to "Private" on Windows?
|
||||
- Are you using this at home, in an office, college, etc?
|
||||
- Have you tried screaming into your router?
|
||||
@@ -1,17 +0,0 @@
|
||||
name: badstrings
|
||||
on: [pull_request, push]
|
||||
jobs:
|
||||
badstrings:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: scanning commit message for bad strings
|
||||
run: |
|
||||
#!/bin/bash
|
||||
set -euo pipefail
|
||||
IFS=$'\n\t'
|
||||
message="${{ github.event.head_commit.message }}"
|
||||
|
||||
strings=($(curl -s https://raw.githubusercontent.com/someara/badstrings/main/strings.txt))
|
||||
for i in ${strings[@]} ; do
|
||||
echo "${message}" | grep -v "$i" &>/dev/null;
|
||||
done
|
||||
@@ -122,6 +122,8 @@ attic/world/*.c25519
|
||||
attic/world/mkworld
|
||||
workspace/
|
||||
workspace2/
|
||||
zeroidc/target/
|
||||
tmp/
|
||||
|
||||
#snapcraft specifics
|
||||
/parts/
|
||||
|
||||
@@ -1,6 +1,36 @@
|
||||
ZeroTier Release Notes
|
||||
======
|
||||
|
||||
# 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.
|
||||
|
||||
@@ -0,0 +1,7 @@
|
||||
FROM registry.sean.farm/sid-builder as stage
|
||||
COPY . .
|
||||
RUN /usr/bin/make -j 8
|
||||
|
||||
FROM scratch AS export
|
||||
COPY --from=stage /zerotier-one .
|
||||
COPY --from=stage /zerotier-cli .
|
||||
Executable
+28
@@ -0,0 +1,28 @@
|
||||
#!/bin/bash
|
||||
set -euo pipefail
|
||||
IFS=$'\n\t'
|
||||
|
||||
export GOOS=$1
|
||||
export GOARCH=$2
|
||||
export VERSION=$3
|
||||
export DOCKER_BUILDKIT=1
|
||||
|
||||
echo "nproc: $(nproc)"
|
||||
|
||||
case $GOARCH in
|
||||
armv5)
|
||||
export ARCH=arm/v5
|
||||
;;
|
||||
armv7)
|
||||
export ARCH=arm/v7
|
||||
;;
|
||||
arm64)
|
||||
export ARCH=arm64/v8
|
||||
;;
|
||||
*)
|
||||
export ARCH=$GOARCH
|
||||
;;
|
||||
esac
|
||||
|
||||
docker run --privileged --rm tonistiigi/binfmt --install all
|
||||
docker buildx build --platform ${GOOS}/${ARCH} -f ci/Dockerfile.sid --target export -t test . --output out/${GOOS}/${GOARCH}
|
||||
@@ -95,7 +95,7 @@ public:
|
||||
|
||||
if(m_pool.size()==0){
|
||||
|
||||
if ((m_pool.size() + m_borrowed.size()) <= m_maxPoolSize) {
|
||||
if ((m_pool.size() + m_borrowed.size()) < m_maxPoolSize) {
|
||||
try {
|
||||
std::shared_ptr<Connection> conn = m_factory->create();
|
||||
m_borrowed.insert(conn);
|
||||
|
||||
+27
-1
@@ -40,6 +40,32 @@
|
||||
namespace ZeroTier
|
||||
{
|
||||
|
||||
struct AuthInfo
|
||||
{
|
||||
public:
|
||||
AuthInfo()
|
||||
: enabled(false)
|
||||
, version(0)
|
||||
, authenticationURL()
|
||||
, authenticationExpiryTime(0)
|
||||
, issuerURL()
|
||||
, centralAuthURL()
|
||||
, ssoNonce()
|
||||
, ssoState()
|
||||
, ssoClientID()
|
||||
{}
|
||||
|
||||
bool enabled;
|
||||
uint64_t version;
|
||||
std::string authenticationURL;
|
||||
uint64_t authenticationExpiryTime;
|
||||
std::string issuerURL;
|
||||
std::string centralAuthURL;
|
||||
std::string ssoNonce;
|
||||
std::string ssoState;
|
||||
std::string ssoClientID;
|
||||
};
|
||||
|
||||
/**
|
||||
* Base class with common infrastructure for all controller DB implementations
|
||||
*/
|
||||
@@ -108,7 +134,7 @@ public:
|
||||
virtual void eraseMember(const uint64_t networkId,const uint64_t memberId) = 0;
|
||||
virtual void nodeIsOnline(const uint64_t networkId,const uint64_t memberId,const InetAddress &physicalAddress) = 0;
|
||||
|
||||
virtual std::string getSSOAuthURL(const nlohmann::json &member, const std::string &redirectURL) { return ""; }
|
||||
virtual AuthInfo getSSOAuthInfo(const nlohmann::json &member, const std::string &redirectURL) { return AuthInfo(); }
|
||||
virtual void networkMemberSSOHasExpired(uint64_t nwid, int64_t ts);
|
||||
|
||||
inline void addListener(DB::ChangeListener *const listener)
|
||||
|
||||
@@ -125,16 +125,16 @@ bool DBMirrorSet::get(const uint64_t networkId,nlohmann::json &network,std::vect
|
||||
return false;
|
||||
}
|
||||
|
||||
std::string DBMirrorSet::getSSOAuthURL(const nlohmann::json &member, const std::string &redirectURL)
|
||||
AuthInfo DBMirrorSet::getSSOAuthInfo(const nlohmann::json &member, const std::string &redirectURL)
|
||||
{
|
||||
std::lock_guard<std::mutex> l(_dbs_l);
|
||||
for(auto d=_dbs.begin();d!=_dbs.end();++d) {
|
||||
std::string url = (*d)->getSSOAuthURL(member, redirectURL);
|
||||
if (!url.empty()) {
|
||||
return url;
|
||||
AuthInfo info = (*d)->getSSOAuthInfo(member, redirectURL);
|
||||
if (info.enabled) {
|
||||
return info;
|
||||
}
|
||||
}
|
||||
return "";
|
||||
return AuthInfo();
|
||||
}
|
||||
|
||||
void DBMirrorSet::networkMemberSSOHasExpired(uint64_t nwid, int64_t ts)
|
||||
|
||||
@@ -51,7 +51,7 @@ public:
|
||||
virtual void onNetworkMemberUpdate(const void *db,uint64_t networkId,uint64_t memberId,const nlohmann::json &member);
|
||||
virtual void onNetworkMemberDeauthorize(const void *db,uint64_t networkId,uint64_t memberId);
|
||||
|
||||
std::string getSSOAuthURL(const nlohmann::json &member, const std::string &redirectURL);
|
||||
AuthInfo getSSOAuthInfo(const nlohmann::json &member, const std::string &redirectURL);
|
||||
void networkMemberSSOHasExpired(uint64_t nwid, int64_t ts);
|
||||
|
||||
inline void addDB(const std::shared_ptr<DB> &db)
|
||||
|
||||
@@ -63,29 +63,6 @@ namespace ZeroTier {
|
||||
|
||||
namespace {
|
||||
|
||||
std::string url_encode(const std::string &value) {
|
||||
std::ostringstream escaped;
|
||||
escaped.fill('0');
|
||||
escaped << std::hex;
|
||||
|
||||
for (std::string::const_iterator i = value.begin(), n = value.end(); i != n; ++i) {
|
||||
std::string::value_type c = (*i);
|
||||
|
||||
// Keep alphanumeric and other accepted characters intact
|
||||
if (isalnum(c) || c == '-' || c == '_' || c == '.' || c == '~') {
|
||||
escaped << c;
|
||||
continue;
|
||||
}
|
||||
|
||||
// Any other characters are percent-encoded
|
||||
escaped << std::uppercase;
|
||||
escaped << '%' << std::setw(2) << int((unsigned char) c);
|
||||
escaped << std::nouppercase;
|
||||
}
|
||||
|
||||
return escaped.str();
|
||||
}
|
||||
|
||||
static json _renderRule(ZT_VirtualNetworkRule &rule)
|
||||
{
|
||||
char tmp[128];
|
||||
@@ -503,7 +480,7 @@ EmbeddedNetworkController::~EmbeddedNetworkController()
|
||||
}
|
||||
|
||||
void EmbeddedNetworkController::setSSORedirectURL(const std::string &url) {
|
||||
_ssoRedirectURL = url_encode(url);
|
||||
_ssoRedirectURL = url;
|
||||
}
|
||||
|
||||
void EmbeddedNetworkController::init(const Identity &signingId,Sender *sender)
|
||||
@@ -1360,29 +1337,61 @@ void EmbeddedNetworkController::_request(
|
||||
// Otherwise no, we use standard auth logic.
|
||||
bool networkSSOEnabled = OSUtils::jsonBool(network["ssoEnabled"], false);
|
||||
bool memberSSOExempt = OSUtils::jsonBool(member["ssoExempt"], false);
|
||||
std::string authenticationURL;
|
||||
AuthInfo info;
|
||||
if (networkSSOEnabled && !memberSSOExempt) {
|
||||
authenticationURL = _db.getSSOAuthURL(member, _ssoRedirectURL);
|
||||
// TODO: Get expiry time if auth is still valid
|
||||
|
||||
// else get new auth info & stuff
|
||||
info = _db.getSSOAuthInfo(member, _ssoRedirectURL);
|
||||
assert(info.enabled == networkSSOEnabled);
|
||||
|
||||
std::string memberId = member["id"];
|
||||
//fprintf(stderr, "ssoEnabled && !ssoExempt %s-%s\n", nwids, memberId.c_str());
|
||||
uint64_t authenticationExpiryTime = (int64_t)OSUtils::jsonInt(member["authenticationExpiryTime"], 0);
|
||||
//fprintf(stderr, "authExpiryTime: %lld\n", authenticationExpiryTime);
|
||||
fprintf(stderr, "authExpiryTime: %lld\n", authenticationExpiryTime);
|
||||
if (authenticationExpiryTime < now) {
|
||||
if (!authenticationURL.empty()) {
|
||||
fprintf(stderr, "Handling expired member\n");
|
||||
if (info.version == 0) {
|
||||
if (!info.authenticationURL.empty()) {
|
||||
_db.networkMemberSSOHasExpired(nwid, now);
|
||||
onNetworkMemberDeauthorize(&_db, nwid, identity.address().toInt());
|
||||
|
||||
Dictionary<4096> authInfo;
|
||||
authInfo.add(ZT_AUTHINFO_DICT_KEY_VERSION, (uint64_t)0ULL);
|
||||
authInfo.add(ZT_AUTHINFO_DICT_KEY_AUTHENTICATION_URL, info.authenticationURL.c_str());
|
||||
//fprintf(stderr, "sending auth URL: %s\n", authenticationURL.c_str());
|
||||
|
||||
DB::cleanMember(member);
|
||||
_db.save(member,true);
|
||||
|
||||
_sender->ncSendError(nwid,requestPacketId,identity.address(),NetworkController::NC_ERROR_AUTHENTICATION_REQUIRED, authInfo.data(), authInfo.sizeBytes());
|
||||
return;
|
||||
}
|
||||
}
|
||||
else if (info.version == 1) {
|
||||
_db.networkMemberSSOHasExpired(nwid, now);
|
||||
onNetworkMemberDeauthorize(&_db, nwid, identity.address().toInt());
|
||||
|
||||
Dictionary<3072> authInfo;
|
||||
authInfo.add("aU", authenticationURL.c_str());
|
||||
//fprintf(stderr, "sending auth URL: %s\n", authenticationURL.c_str());
|
||||
Dictionary<8192> authInfo;
|
||||
authInfo.add(ZT_AUTHINFO_DICT_KEY_VERSION, info.version);
|
||||
authInfo.add(ZT_AUTHINFO_DICT_KEY_ISSUER_URL, info.issuerURL.c_str());
|
||||
authInfo.add(ZT_AUTHINFO_DICT_KEY_CENTRAL_ENDPOINT_URL, info.centralAuthURL.c_str());
|
||||
authInfo.add(ZT_AUTHINFO_DICT_KEY_NONCE, info.ssoNonce.c_str());
|
||||
authInfo.add(ZT_AUTHINFO_DICT_KEY_STATE, info.ssoState.c_str());
|
||||
authInfo.add(ZT_AUTHINFO_DICT_KEY_CLIENT_ID, info.ssoClientID.c_str());
|
||||
|
||||
DB::cleanMember(member);
|
||||
_db.save(member,true);
|
||||
_db.save(member, true);
|
||||
|
||||
fprintf(stderr, "Sending NC_ERROR_AUTHENTICATION_REQUIRED\n");
|
||||
_sender->ncSendError(nwid,requestPacketId,identity.address(),NetworkController::NC_ERROR_AUTHENTICATION_REQUIRED, authInfo.data(), authInfo.sizeBytes());
|
||||
return;
|
||||
}
|
||||
else {
|
||||
fprintf(stderr, "invalid sso info.version %llu\n", info.version);
|
||||
}
|
||||
} else if (authorized) {
|
||||
fprintf(stderr, "Setting member will expire to: %lld\n", authenticationExpiryTime);
|
||||
_db.memberWillExpire(authenticationExpiryTime, nwid, identity.address().toInt());
|
||||
}
|
||||
}
|
||||
@@ -1452,9 +1461,36 @@ void EmbeddedNetworkController::_request(
|
||||
nc->multicastLimit = (unsigned int)OSUtils::jsonInt(network["multicastLimit"],32ULL);
|
||||
|
||||
nc->ssoEnabled = OSUtils::jsonBool(network["ssoEnabled"], false);
|
||||
nc->authenticationExpiryTime = OSUtils::jsonInt(member["authenticationExpiryTime"], 0LL);
|
||||
if (!authenticationURL.empty())
|
||||
Utils::scopy(nc->authenticationURL, sizeof(nc->authenticationURL), authenticationURL.c_str());
|
||||
nc->ssoVersion = info.version;
|
||||
|
||||
if (info.version == 0) {
|
||||
nc->authenticationExpiryTime = OSUtils::jsonInt(member["authenticationExpiryTime"], 0LL);
|
||||
if (!info.authenticationURL.empty()) {
|
||||
Utils::scopy(nc->authenticationURL, sizeof(nc->authenticationURL), info.authenticationURL.c_str());
|
||||
}
|
||||
}
|
||||
else if (info.version == 1) {
|
||||
nc->authenticationExpiryTime = OSUtils::jsonInt(member["authenticationExpiryTime"], 0LL);
|
||||
if (!info.authenticationURL.empty()) {
|
||||
Utils::scopy(nc->authenticationURL, sizeof(nc->authenticationURL), info.authenticationURL.c_str());
|
||||
}
|
||||
if (!info.centralAuthURL.empty()) {
|
||||
Utils::scopy(nc->centralAuthURL, sizeof(nc->centralAuthURL), info.centralAuthURL.c_str());
|
||||
}
|
||||
if (!info.issuerURL.empty()) {
|
||||
fprintf(stderr, "copying issuerURL to nc: %s\n", info.issuerURL.c_str());
|
||||
Utils::scopy(nc->issuerURL, sizeof(nc->issuerURL), info.issuerURL.c_str());
|
||||
}
|
||||
if (!info.ssoNonce.empty()) {
|
||||
Utils::scopy(nc->ssoNonce, sizeof(nc->ssoNonce), info.ssoNonce.c_str());
|
||||
}
|
||||
if (!info.ssoState.empty()) {
|
||||
Utils::scopy(nc->ssoState, sizeof(nc->ssoState), info.ssoState.c_str());
|
||||
}
|
||||
if (!info.ssoClientID.empty()) {
|
||||
Utils::scopy(nc->ssoClientID, sizeof(nc->ssoClientID), info.ssoClientID.c_str());
|
||||
}
|
||||
}
|
||||
|
||||
std::string rtt(OSUtils::jsonString(member["remoteTraceTarget"],""));
|
||||
if (rtt.length() == 10) {
|
||||
|
||||
+202
-128
File diff suppressed because it is too large.
Load diff
@@ -107,7 +107,7 @@ public:
|
||||
virtual void eraseNetwork(const uint64_t networkId);
|
||||
virtual void eraseMember(const uint64_t networkId, const uint64_t memberId);
|
||||
virtual void nodeIsOnline(const uint64_t networkId, const uint64_t memberId, const InetAddress &physicalAddress);
|
||||
virtual std::string getSSOAuthURL(const nlohmann::json &member, const std::string &redirectURL);
|
||||
virtual AuthInfo getSSOAuthInfo(const nlohmann::json &member, const std::string &redirectURL);
|
||||
|
||||
protected:
|
||||
struct _PairHasher
|
||||
|
||||
Vendored
+24
@@ -1,3 +1,27 @@
|
||||
zerotier-one (1.8.6) unstable; urgency=medium
|
||||
|
||||
* See RELEASE-NOTES.md for release notes.
|
||||
|
||||
-- Adam Ierymenko <adam.ierymenko@zerotier.com> Mon, 07 Mar 2022 01:00:00 -0700
|
||||
|
||||
zerotier-one (1.8.5) unstable; urgency=medium
|
||||
|
||||
* See RELEASE-NOTES.md for release notes.
|
||||
|
||||
-- Adam Ierymenko <adam.ierymenko@zerotier.com> Fri, 17 Dec 2021 01:00:00 -0700
|
||||
|
||||
zerotier-one (1.8.4) unstable; urgency=medium
|
||||
|
||||
* See RELEASE-NOTES.md for release notes.
|
||||
|
||||
-- Adam Ierymenko <adam.ierymenko@zerotier.com> Mon, 23 Nov 2021 01:00:00 -0700
|
||||
|
||||
zerotier-one (1.8.3) unstable; urgency=medium
|
||||
|
||||
* See RELEASE-NOTES.md for release notes.
|
||||
|
||||
-- Adam Ierymenko <adam.ierymenko@zerotier.com> Mon, 15 Nov 2021 01:00:00 -0700
|
||||
|
||||
zerotier-one (1.8.2) unstable; urgency=medium
|
||||
|
||||
* See RELEASE-NOTES.md for release notes.
|
||||
|
||||
Vendored
+1
-1
@@ -10,7 +10,7 @@ Homepage: https://www.zerotier.com/
|
||||
|
||||
Package: zerotier-one
|
||||
Architecture: any
|
||||
Depends: ${shlibs:Depends}, ${misc:Depends}, iproute2, adduser, libstdc++6
|
||||
Depends: ${shlibs:Depends}, ${misc:Depends}, iproute2, adduser, libstdc++6, openssl
|
||||
Homepage: https://www.zerotier.com/
|
||||
Description: ZeroTier network virtualization service
|
||||
ZeroTier One lets you join ZeroTier virtual networks and
|
||||
|
||||
Vendored
+1
-1
@@ -3,7 +3,7 @@
|
||||
case "$1" in
|
||||
configure)
|
||||
if ! id zerotier-one >>/dev/null 2>&1; then
|
||||
useradd --system --user-group --home-dir /var/lib/zerotier-one --no-create-home zerotier-one
|
||||
useradd --system --user-group --home-dir /var/lib/zerotier-one --shell /usr/sbin/nologin --no-create-home zerotier-one
|
||||
fi
|
||||
;;
|
||||
esac
|
||||
|
||||
Vendored
+1
-1
@@ -7,7 +7,7 @@ CXXFLAGS=-O3 -fstack-protector-strong
|
||||
dh $@ --with systemd
|
||||
|
||||
override_dh_auto_build:
|
||||
make -j4
|
||||
make
|
||||
|
||||
override_dh_systemd_start:
|
||||
dh_systemd_start --restart-after-upgrade
|
||||
|
||||
Vendored
+1
-1
@@ -1,6 +1,6 @@
|
||||
[Unit]
|
||||
Description=ZeroTier One
|
||||
After=network-online.target
|
||||
After=network-online.target network.target
|
||||
Wants=network-online.target
|
||||
|
||||
[Service]
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
FROM registry.zerotier.com/zerotier/controller-builder:latest as builder
|
||||
MAINTAINER Adam Ierymekno <adam.ierymenko@zerotier.com>, Grant Limberg <grant.limberg@zerotier.com>
|
||||
ADD . /ZeroTierOne
|
||||
RUN cd ZeroTierOne && make clean && make central-controller -j8
|
||||
RUN export PATH=$PATH:~/.cargo/bin && cd ZeroTierOne && make clean && make central-controller -j8
|
||||
|
||||
FROM registry.zerotier.com/zerotier/controller-run:latest
|
||||
COPY --from=builder /ZeroTierOne/zerotier-one /usr/local/bin/zerotier-one
|
||||
|
||||
Loaded 20 of 104 files, more files were not shown because too many files have changed in this diff.
Show more
Reference in new issue
Block a user