mirror of
https://github.com/zerotier/ZeroTierOne.git
synced 2026-09-22 15:29:03 -07:00
Compare commits
191
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
7412076a0a | ||
|
|
8affcb0e3d | ||
|
|
16dd3fd7af | ||
|
|
db6045fe9c | ||
|
|
4efd206dd4 | ||
|
|
b0889e1454 | ||
|
|
226bb1d4ef | ||
|
|
8753829c1b | ||
|
|
55e9320299 | ||
|
|
c4af2d79c5 | ||
|
|
ce708df877 | ||
|
|
342fa9d33f | ||
|
|
fd9a23f30f | ||
|
|
d72b98b434 | ||
|
|
813fb7a394 | ||
|
|
6d532944bd | ||
|
|
ba2a4a605c | ||
|
|
d45f280cb7 | ||
|
|
7cf0d7a5d8 | ||
|
|
8b77ef538a | ||
|
|
e366661a09 | ||
|
|
8636fe3c33 | ||
|
|
08e0da7921 | ||
|
|
27021ff425 | ||
|
|
ecedddb19b | ||
|
|
ee73ac1a74 | ||
|
|
169250d484 | ||
|
|
4fea4fc76f | ||
|
|
6fa849c956 | ||
|
|
3cef1b0842 | ||
|
|
08b1ceb9a1 | ||
|
|
af0a9118c1 | ||
|
|
568da750bb | ||
|
|
d5f6f6b98e | ||
|
|
10ac0c2e1a | ||
|
|
1ffadf31de | ||
|
|
224ee88b91 | ||
|
|
b42067e654 | ||
|
|
c9e08c951a | ||
|
|
42f760d72f | ||
|
|
c68acebe31 | ||
|
|
4b7c5159a3 | ||
|
|
4a8daf43e4 | ||
|
|
182148a26c | ||
|
|
af715ca0ff | ||
|
|
990ecb5eb1 | ||
|
|
7c88b3f124 | ||
|
|
f4053c8af3 | ||
|
|
af3f8b00a4 | ||
|
|
db06c98608 | ||
|
|
332a7d1488 | ||
|
|
48f9f7de14 | ||
|
|
35d37559c8 | ||
|
|
1a6c0a5f12 | ||
|
|
2c8f032a76 | ||
|
|
bcc766f70d | ||
|
|
dcadc2c4d4 | ||
|
|
55ed5d61e0 | ||
|
|
86f424130d | ||
|
|
4e9b69f0a7 | ||
|
|
0a17738f39 | ||
|
|
fb7b07fc42 | ||
|
|
1d2130610c | ||
|
|
0b04f772ef | ||
|
|
5c73fe9304 | ||
|
|
2af105000f | ||
|
|
cadfa0bc4d | ||
|
|
f2521c8536 | ||
|
|
d353e0c6fa | ||
|
|
346731ea5d | ||
|
|
2ef38d84d1 | ||
|
|
5630d48a66 | ||
|
|
b44a9b8b62 | ||
|
|
f5b0fc6a8f | ||
|
|
a20bc772f2 | ||
|
|
010c4b0d64 | ||
|
|
5998f1497a | ||
|
|
a2162c01e3 | ||
|
|
870c221690 | ||
|
|
87ad848202 | ||
|
|
b736b6835d | ||
|
|
91bec01da8 | ||
|
|
a0c3f432c4 | ||
|
|
b5c51796b9 | ||
|
|
724002f142 | ||
|
|
377a9d6f41 | ||
|
|
003b4cf876 | ||
|
|
b12dd19d44 | ||
|
|
82c6454950 | ||
|
|
969c0ee6e3 | ||
|
|
c092b63987 | ||
|
|
47efee1df4 | ||
|
|
18a5452de8 | ||
|
|
c3794ba8d4 | ||
|
|
75a5b4438b | ||
|
|
185a3a2c76 | ||
|
|
3fcef51137 | ||
|
|
f959c2f4ca | ||
|
|
b7a6e106fd | ||
|
|
7dca7fac11 | ||
|
|
4ef2d4cc8e | ||
|
|
55bbd2aec6 | ||
|
|
36b4659f77 | ||
|
|
0b5666bde2 | ||
|
|
e1c72e6d51 | ||
|
|
5799d9a15b | ||
|
|
74404f56ee | ||
|
|
e53abe8bde | ||
|
|
29ef10e759 | ||
|
|
1e679cc94d | ||
|
|
96ba1079b2 | ||
|
|
f190df8621 | ||
|
|
6b078ee935 | ||
|
|
3de5cbd105 | ||
|
|
6faee38395 | ||
|
|
a44fd40889 | ||
|
|
5b7e1ceb68 | ||
|
|
d9d58c8bde | ||
|
|
d34481d830 | ||
|
|
307befa892 | ||
|
|
7647c8e8d1 | ||
|
|
b2d71f900a | ||
|
|
9e4ce68444 | ||
|
|
4920b68d2c | ||
|
|
5ce3d1e7a1 | ||
|
|
a0acc82e99 | ||
|
|
98e532de20 | ||
|
|
e1ee3eb494 | ||
|
|
4a485df0c7 | ||
|
|
2522d29fdc | ||
|
|
560d6fba1b | ||
|
|
223ec0c59d | ||
|
|
6bc785e771 | ||
|
|
fb8cbb69aa | ||
|
|
861147b845 | ||
|
|
763caaebab | ||
|
|
276259394a | ||
|
|
46c0d1a732 | ||
|
|
31d2dcec17 | ||
|
|
c9234ee027 | ||
|
|
9a8d715666 | ||
|
|
8d474e1395 | ||
|
|
52e3d9b804 | ||
|
|
8f5cc4ed33 | ||
|
|
059d05f41f | ||
|
|
c86b91c5f0 | ||
|
|
e42848d37d | ||
|
|
bf7dddbd84 | ||
|
|
95983ba168 | ||
|
|
c97943d69d | ||
|
|
b813ea70a5 | ||
|
|
e734019216 | ||
|
|
b7d9290de9 | ||
|
|
b1a30ae4ff | ||
|
|
8283a6d6d4 | ||
|
|
36adae3d82 | ||
|
|
f176e2539e | ||
|
|
d6bfb8889a | ||
|
|
24fb1ced3c | ||
|
|
82b8a4f584 | ||
|
|
979bca57d5 | ||
|
|
93fd93da5c | ||
|
|
508527f7cd | ||
|
|
64634c916c | ||
|
|
34cc26176c | ||
|
|
e2840b0eb8 | ||
|
|
f4edb092b7 | ||
|
|
8caede300c | ||
|
|
f9c6ee0181 | ||
|
|
f5cc7746b6 | ||
|
|
41a4690372 | ||
|
|
9d57ccd7b1 | ||
|
|
ad60d708e1 | ||
|
|
f79af92599 | ||
|
|
2f3ea8882b | ||
|
|
e32fecd16d | ||
|
|
dca77cb0d2 | ||
|
|
9ec6c2901c | ||
|
|
e915d10953 | ||
|
|
ddb2759a52 | ||
|
|
28cf1423c9 | ||
|
|
9de2b90528 | ||
|
|
280cc77e23 | ||
|
|
b9d0cf9c89 | ||
|
|
80cfc2bd26 | ||
|
|
43b141547e | ||
|
|
683d332abc | ||
|
|
8b44ac984c | ||
|
|
1aa31e0414 | ||
|
|
5533b82450 | ||
|
|
e171384c19 |
No files matched your search
@@ -0,0 +1,9 @@
|
||||
CompileFlags:
|
||||
Add:
|
||||
- "-std=c++17"
|
||||
- "-I../ext"
|
||||
- "-I../ext/prometheus-cpp-lite-1.0/core/include"
|
||||
- "-I../ext/prometheus-cpp-lite-1.0/simpleapi/include"
|
||||
- "-I./ext"
|
||||
- "-I./ext/prometheus-cpp-lite-1.0/core/include"
|
||||
- "-I./ext/prometheus-cpp-lite-1.0/simpleapi/include"
|
||||
-256
@@ -1,256 +0,0 @@
|
||||
//
|
||||
// tweakables
|
||||
//
|
||||
|
||||
local registry = "084037375216.dkr.ecr.us-east-2.amazonaws.com";
|
||||
local build_channel = "zerotier-builds";
|
||||
local release_channel = "zerotier-releases";
|
||||
|
||||
local targets = [
|
||||
{ "os": "linux", distro: "redhat", "name": "el9", "isas": [ "amd64", "arm64", "ppc64le", "s390x" ], "events": [ "tag", "custom" ] },
|
||||
{ "os": "linux", distro: "redhat", "name": "el8", "isas": [ "amd64", "arm64", "ppc64le", "s390x" ], "events": [ "tag" ] },
|
||||
{ "os": "linux", distro: "redhat", "name": "el7", "isas": [ "386", "amd64", "ppc64le"], "events": [ "tag" ] },
|
||||
{ "os": "linux", distro: "amazon", "name": "amzn2", "isas": [ "amd64", "arm64" ], "events": [ "tag" ] },
|
||||
{ "os": "linux", distro: "amazon", "name": "amzn2022", "isas": [ "amd64", "arm64" ], "events": [ "tag" ] },
|
||||
{ "os": "linux", distro: "fedora", "name": "fc38", "isas": [ "amd64", "arm64", "ppc64le", "s390x" ], "events": [ "tag" ] },
|
||||
{ "os": "linux", distro: "fedora", "name": "fc37", "isas": [ "amd64", "arm64", "ppc64le", "s390x" ], "events": [ "tag" ] },
|
||||
{ "os": "linux", distro: "fedora", "name": "fc36", "isas": [ "amd64", "arm64", "ppc64le", "s390x" ], "events": [ "tag" ] },
|
||||
{ "os": "linux", distro: "ubuntu", "name": "jammy", "isas": [ "armv7", "amd64", "arm64", "ppc64le", "s390x", "riscv64" ], "events": [ "tag" ] },
|
||||
{ "os": "linux", distro: "ubuntu", "name": "focal", "isas": [ "armv7", "amd64", "arm64", "ppc64le", "s390x", "riscv64" ], "events": [ "tag" ] },
|
||||
{ "os": "linux", distro: "ubuntu", "name": "bionic", "isas": [ "386", "armv7", "amd64", "arm64", "ppc64le", "s390x" ], "events": [ "tag" ] },
|
||||
{ "os": "linux", distro: "ubuntu", "name": "xenial", "isas": [ "386", "armv7", "amd64", "arm64", "ppc64le", "s390x" ], "events": [ "tag" ] },
|
||||
{ "os": "linux", distro: "ubuntu", "name": "trusty", "isas": [ "386", "armv7", "amd64", "arm64" ], "events": [ "tag" ] },
|
||||
{ "os": "linux", distro: "debian", "name": "bookworm", "isas": [ "386", "armv7", "amd64", "arm64", "mips64le", "ppc64le", "s390x" ], "events": [ "tag"] },
|
||||
{ "os": "linux", distro: "debian", "name": "bullseye", "isas": [ "386", "armv7", "amd64", "arm64", "mips64le", "ppc64le", "s390x" ], "events": [ "push", "tag", "custom" ] },
|
||||
{ "os": "linux", distro: "debian", "name": "buster", "isas": [ "386", "armv7", "amd64", "arm64" ], "events": [ "tag" ] },
|
||||
{ "os": "linux", distro: "debian", "name": "stretch", "isas": [ "386", "armv7", "amd64", "arm64" ], "events": [ "tag" ] },
|
||||
{ "os": "linux", distro: "debian", "name": "jessie", "isas": [ "386", "armv7", "amd64" ], "events": [ "tag" ] },
|
||||
|
||||
// { "os": "windows", distro: "windows", "name": "windows", "isas": [ "amd64" ], "events": [ "push", "tag", "custom" ] },
|
||||
// { "os": "darwin", distro: "darwin", "name": "darwin", "isas": [ "amd64" ], "events": [ "push", "tag", "custom" ] },
|
||||
|
||||
];
|
||||
|
||||
local less_targets = [
|
||||
{ "os": "linux", distro: "redhat", "name": "el9", "isas": [ "amd64", "arm64" ], "events": [ "push", "tag", "custom" ] },
|
||||
{ "os": "linux", distro: "redhat", "name": "el8", "isas": [ "amd64", "arm64" ], "events": [ "push", "tag", "custom" ] },
|
||||
{ "os": "linux", distro: "ubuntu", "name": "jammy", "isas": [ "armv7", "amd64", "arm64" ], "events": [ "push", "tag", "custom" ] },
|
||||
{ "os": "linux", distro: "ubuntu", "name": "focal", "isas": [ "armv7", "amd64", "arm64" ], "events": [ "push", "tag", "custom" ] },
|
||||
];
|
||||
|
||||
|
||||
local native_targets = [
|
||||
{ "os": "linux", distro: "debian", "name": "bullseye", "isas": [ "386", "armv7", "amd64", "arm64" ], "events": [ "push", "tag", "custom" ] },
|
||||
];
|
||||
|
||||
local master_targets = [
|
||||
//
|
||||
// copypasta from here
|
||||
//
|
||||
{ "os": "linux", distro: "redhat", "name": "el9", "isas": [ "amd64", "arm64", "ppc64le", "s390x" ], "events": [ "push", "tag", "custom" ] },
|
||||
{ "os": "linux", distro: "redhat", "name": "el8", "isas": [ "amd64", "arm64", "ppc64le", "s390x" ], "events": [ "push", "tag", "custom" ] },
|
||||
{ "os": "linux", distro: "redhat", "name": "el7", "isas": [ "386", "amd64", "ppc64le"], "events": [ "push", "tag", "custom" ] },
|
||||
{ "os": "linux", distro: "amazon", "name": "amzn2", "isas": [ "amd64", "arm64" ], "events": [ "push", "tag", "custom" ] },
|
||||
{ "os": "linux", distro: "amazon", "name": "amzn2022", "isas": [ "amd64", "arm64" ], "events": [ "push", "tag", "custom" ] },
|
||||
{ "os": "linux", distro: "fedora", "name": "fc38", "isas": [ "amd64", "arm64", "ppc64le", "s390x" ], "events": [ "push", "tag", "custom" ] },
|
||||
{ "os": "linux", distro: "fedora", "name": "fc37", "isas": [ "amd64", "arm64", "ppc64le", "s390x" ], "events": [ "push", "tag", "custom" ] },
|
||||
{ "os": "linux", distro: "fedora", "name": "fc36", "isas": [ "amd64", "arm64", "ppc64le", "s390x" ], "events": [ "push", "tag", "custom" ] },
|
||||
{ "os": "linux", distro: "ubuntu", "name": "jammy", "isas": [ "armv7", "amd64", "arm64", "ppc64le", "s390x", "riscv64" ], "events": [ "push", "tag", "custom" ] },
|
||||
{ "os": "linux", distro: "ubuntu", "name": "focal", "isas": [ "armv7", "amd64", "arm64", "ppc64le", "s390x", "riscv64" ], "events": [ "push", "tag", "custom" ] },
|
||||
{ "os": "linux", distro: "ubuntu", "name": "bionic", "isas": [ "386", "armv7", "amd64", "arm64", "ppc64le", "s390x" ], "events": [ "push", "tag", "custom" ] },
|
||||
{ "os": "linux", distro: "ubuntu", "name": "xenial", "isas": [ "386", "armv7", "amd64", "arm64", "ppc64le", "s390x" ], "events": [ "push", "tag", "custom" ] },
|
||||
{ "os": "linux", distro: "ubuntu", "name": "trusty", "isas": [ "386", "armv7", "amd64", "arm64" ], "events": [ "push", "tag", "custom" ] },
|
||||
{ "os": "linux", distro: "debian", "name": "sid", "isas": [ "386", "armv7", "amd64", "arm64", "mips64le", "ppc64le", "s390x", "riscv64" ], "events": [ "push", "tag", "custom" ] },
|
||||
{ "os": "linux", distro: "debian", "name": "bookworm", "isas": [ "386", "armv7", "amd64", "arm64", "mips64le", "ppc64le", "s390x" ], "events": [ "push", "tag", "custom" ] },
|
||||
{ "os": "linux", distro: "debian", "name": "bullseye", "isas": [ "386", "armv7", "amd64", "arm64", "mips64le", "ppc64le", "s390x" ], "events": [ "push", "tag", "custom" ] },
|
||||
{ "os": "linux", distro: "debian", "name": "buster", "isas": [ "386", "armv7", "amd64", "arm64" ], "events": [ "push", "tag", "custom" ] },
|
||||
{ "os": "linux", distro: "debian", "name": "stretch", "isas": [ "386", "armv7", "amd64", "arm64" ], "events": [ "push", "tag", "custom" ] },
|
||||
{ "os": "linux", distro: "debian", "name": "jessie", "isas": [ "386", "armv7", "amd64" ], "events": [ "push", "tag", "custom" ] },
|
||||
{ "os": "windows", distro: "windows", "name": "win2k22", "isas": [ "amd64" ], "events": [ "push", "tag", "custom" ] }
|
||||
];
|
||||
|
||||
//
|
||||
// functions
|
||||
//
|
||||
|
||||
local pipeline_type(os) = if os == "darwin" then "exec" else "docker";
|
||||
local builder_image(os) = if os == "linux" then registry + "/honda-builder" else registry + "/windows-builder";
|
||||
local tester_image(os) = if os == "linux" then registry + "/honda-builder" else registry + "/windows-tester";
|
||||
local build_step_volumes(os) = if os == "linux" then [ { name: "zerotier-builds", path: "/zerotier-builds" } ] else [];
|
||||
local release_step_volumes(os) = if os == "linux" then [ { name: "zerotier-releases", path: "/zerotier-releases" } ] else [];
|
||||
local host_volumes(os) = if os == "linux" then [
|
||||
{ name: "zerotier-builds", host: { path: "/zerotier-builds" } },
|
||||
{ name: "zerotier-releases", host: { path: "/zerotier-releases" } },
|
||||
] else [];
|
||||
|
||||
local index_image(distro) =
|
||||
if distro == "debian" || distro == "ubuntu" then
|
||||
registry + "/apt-builder"
|
||||
else if distro == "redhat" || distro == "fedora" || distro == "amazon" then
|
||||
registry + "/dnf-builder"
|
||||
else if distro == "windows" then
|
||||
registry + "/msi-builder"
|
||||
;
|
||||
|
||||
local copy_commands(os, distro, name, isa, version) =
|
||||
if os == "linux" then [
|
||||
std.join(" ", [ "./ci/scripts/publish.sh", name, distro, isa, version, "${DRONE_BUILD_EVENT}" ])
|
||||
]
|
||||
else if os == "windows" then [
|
||||
"C:\\scripts\\fix-ec2-metadata.ps1",
|
||||
"Get-ChildItem windows",
|
||||
// "aws s3 cp windows\\bytey-SetupFiles\\bytey.msi s3://zerotier-builds/windows/" + version + "/bytey.msi",
|
||||
] else if os == "darwin" then [
|
||||
"echo hello"
|
||||
]
|
||||
;
|
||||
|
||||
local index_commands(os, channel, distro, name, isas) =
|
||||
if os == "linux" then
|
||||
[ "/usr/local/bin/index " + channel + " " + distro + " " + name + " " + std.join(" ", isas) ]
|
||||
else if os == "windows" then
|
||||
[ "Get-ChildItem -Recurse windows" ]
|
||||
;
|
||||
|
||||
local build_commands(os, distro, name, isa, version) =
|
||||
if os == "linux" then
|
||||
[ std.join(" ", [ "./ci/scripts/build.sh", name, distro, isa, version, "${DRONE_BUILD_EVENT}" ]) ]
|
||||
else
|
||||
if os == "windows" then
|
||||
[ "windows/build.ps1", "windows/package.ps1" ]
|
||||
else
|
||||
if os == "darwin" then
|
||||
[ "whoami" ]
|
||||
;
|
||||
|
||||
local test_commands(os, distro, name, isa, version) =
|
||||
if os == "linux" then
|
||||
[ std.join(" ", [ "./ci/scripts/test.sh", name, distro, isa, version, "${DRONE_BUILD_EVENT}" ]) ]
|
||||
else
|
||||
if os == "windows" then
|
||||
[ "windows/testpackage.ps1 " + version ]
|
||||
;
|
||||
|
||||
//
|
||||
// render
|
||||
//
|
||||
|
||||
local Build(os, distro, name, isa, events) = {
|
||||
"kind": "pipeline",
|
||||
"type": pipeline_type(os),
|
||||
"name": std.join(" ", [ name, isa, "build" ]),
|
||||
"pull": "always",
|
||||
"clone": { "depth": 1, [ if os == "darwin" then "disable" ]: true },
|
||||
"steps": [
|
||||
{
|
||||
"name": "build",
|
||||
"image": builder_image(os),
|
||||
"commands": build_commands(os, distro, name, isa, "100.0.0+${DRONE_COMMIT_SHA:0:8}"),
|
||||
"when": { "event": [ "push" ]},
|
||||
},
|
||||
{
|
||||
"name": "release",
|
||||
"image": builder_image(os),
|
||||
"commands": build_commands(os, distro, name, isa, "${DRONE_TAG}"),
|
||||
"when": { "event": [ "tag" ]},
|
||||
},
|
||||
{
|
||||
"name": "copy build",
|
||||
"image": builder_image(os),
|
||||
"commands": copy_commands(os, distro, name, isa, "100.0.0+${DRONE_COMMIT_SHA:0:8}"),
|
||||
"volumes": build_step_volumes(os),
|
||||
"when": { "event": [ "push" ]},
|
||||
},
|
||||
{
|
||||
"name": "copy relase",
|
||||
"image": builder_image(os),
|
||||
"commands": copy_commands(os, distro, name, isa, "${DRONE_TAG}"),
|
||||
"volumes": release_step_volumes(os),
|
||||
"when": { "event": [ "tag" ]},
|
||||
},
|
||||
],
|
||||
"volumes": host_volumes(os),
|
||||
"platform": { "os": os, [ if isa == "arm64" || isa == "armv7" then "arch" ]: "arm64" },
|
||||
"trigger": { "event": events }
|
||||
};
|
||||
|
||||
local Test(os, distro, name, isa, events) = {
|
||||
"kind": "pipeline",
|
||||
"type": pipeline_type(os),
|
||||
"name": std.join(" ", [ name, isa, "test"]),
|
||||
"pull": "always",
|
||||
"clone": { "depth": 1 },
|
||||
"steps": [
|
||||
{
|
||||
"name": "test build",
|
||||
"image": tester_image(os),
|
||||
"volumes": build_step_volumes(os),
|
||||
"commands": test_commands(os, distro, name, isa, "100.0.0+${DRONE_COMMIT_SHA:0:8}"),
|
||||
"when": { "event": [ "push" ]},
|
||||
},
|
||||
{
|
||||
"name": "test release",
|
||||
"image": tester_image(os),
|
||||
"volumes": release_step_volumes(os),
|
||||
"commands": test_commands(os, distro, name, isa, "${DRONE_TAG}"),
|
||||
"when": { "event": [ "tag" ]},
|
||||
},
|
||||
],
|
||||
"volumes": host_volumes(os),
|
||||
"platform": { "os": os, [ if isa == "arm64" || isa == "armv7" then "arch" ]: "arm64" },
|
||||
"depends_on": [ std.join(" ", [ name, "index" ]) ],
|
||||
"trigger": { "event": events }
|
||||
};
|
||||
|
||||
local Index(p) = {
|
||||
"kind": "pipeline",
|
||||
"type": pipeline_type(p.os),
|
||||
"name": std.join(" ", [ p.name, "index" ]),
|
||||
"pull": "always",
|
||||
"clone": { "depth": 1 },
|
||||
"steps": [
|
||||
{
|
||||
"name": "index build",
|
||||
"image": index_image(p.distro),
|
||||
"commands": index_commands(p.os, "zerotier-builds", p.distro, p.name, p.isas),
|
||||
"volumes": build_step_volumes(p.os),
|
||||
"environment":{ "GPG_PRIVATE_KEY": { from_secret: "gpg-private-key" }},
|
||||
"when": { "event": [ "push" ]},
|
||||
},
|
||||
{
|
||||
"name": "index release",
|
||||
"image": index_image(p.distro),
|
||||
"commands": index_commands(p.os, "zerotier-releases", p.distro, p.name, p.isas),
|
||||
"volumes": release_step_volumes(p.os),
|
||||
"environment":{ "GPG_PRIVATE_KEY": { from_secret: "gpg-private-key" }},
|
||||
"when": { "event": [ "tag" ]},
|
||||
},
|
||||
],
|
||||
"volumes": host_volumes(p.os),
|
||||
"platform": { "os": p.os },
|
||||
depends_on: std.flattenArrays([ [ std.join(" ", [ p.name, isa, "build" ]) ] for isa in p.isas ]),
|
||||
"trigger": { "event": p.events }
|
||||
};
|
||||
|
||||
//
|
||||
// print
|
||||
//
|
||||
|
||||
std.flattenArrays([
|
||||
[
|
||||
Build(p.os, p.distro, p.name, isa, p.events)
|
||||
for isa in p.isas
|
||||
] +
|
||||
[
|
||||
Index(p)
|
||||
]
|
||||
for p in native_targets
|
||||
]) +
|
||||
std.flattenArrays([
|
||||
[
|
||||
Test(p.os, p.distro, p.name, isa, p.events)
|
||||
for isa in p.isas
|
||||
]
|
||||
for p in native_targets
|
||||
])
|
||||
|
||||
-465
@@ -1,465 +0,0 @@
|
||||
---
|
||||
clone:
|
||||
depth: 1
|
||||
kind: pipeline
|
||||
name: bullseye 386 build
|
||||
platform:
|
||||
os: linux
|
||||
pull: always
|
||||
steps:
|
||||
- commands:
|
||||
- ./ci/scripts/build.sh bullseye debian 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
|
||||
when:
|
||||
event:
|
||||
- push
|
||||
- commands:
|
||||
- ./ci/scripts/build.sh bullseye debian 386 ${DRONE_TAG} ${DRONE_BUILD_EVENT}
|
||||
image: 084037375216.dkr.ecr.us-east-2.amazonaws.com/honda-builder
|
||||
name: release
|
||||
when:
|
||||
event:
|
||||
- tag
|
||||
- commands:
|
||||
- ./ci/scripts/publish.sh bullseye debian 386 100.0.0+${DRONE_COMMIT_SHA:0:8} ${DRONE_BUILD_EVENT}
|
||||
image: 084037375216.dkr.ecr.us-east-2.amazonaws.com/honda-builder
|
||||
name: copy build
|
||||
volumes:
|
||||
- name: zerotier-builds
|
||||
path: /zerotier-builds
|
||||
when:
|
||||
event:
|
||||
- push
|
||||
- commands:
|
||||
- ./ci/scripts/publish.sh bullseye debian 386 ${DRONE_TAG} ${DRONE_BUILD_EVENT}
|
||||
image: 084037375216.dkr.ecr.us-east-2.amazonaws.com/honda-builder
|
||||
name: copy relase
|
||||
volumes:
|
||||
- name: zerotier-releases
|
||||
path: /zerotier-releases
|
||||
when:
|
||||
event:
|
||||
- tag
|
||||
trigger:
|
||||
event:
|
||||
- push
|
||||
- tag
|
||||
- custom
|
||||
type: docker
|
||||
volumes:
|
||||
- host:
|
||||
path: /zerotier-builds
|
||||
name: zerotier-builds
|
||||
- host:
|
||||
path: /zerotier-releases
|
||||
name: zerotier-releases
|
||||
---
|
||||
clone:
|
||||
depth: 1
|
||||
kind: pipeline
|
||||
name: bullseye armv7 build
|
||||
platform:
|
||||
arch: arm64
|
||||
os: linux
|
||||
pull: always
|
||||
steps:
|
||||
- commands:
|
||||
- ./ci/scripts/build.sh bullseye debian 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
|
||||
when:
|
||||
event:
|
||||
- push
|
||||
- commands:
|
||||
- ./ci/scripts/build.sh bullseye debian armv7 ${DRONE_TAG} ${DRONE_BUILD_EVENT}
|
||||
image: 084037375216.dkr.ecr.us-east-2.amazonaws.com/honda-builder
|
||||
name: release
|
||||
when:
|
||||
event:
|
||||
- tag
|
||||
- commands:
|
||||
- ./ci/scripts/publish.sh bullseye debian armv7 100.0.0+${DRONE_COMMIT_SHA:0:8}
|
||||
${DRONE_BUILD_EVENT}
|
||||
image: 084037375216.dkr.ecr.us-east-2.amazonaws.com/honda-builder
|
||||
name: copy build
|
||||
volumes:
|
||||
- name: zerotier-builds
|
||||
path: /zerotier-builds
|
||||
when:
|
||||
event:
|
||||
- push
|
||||
- commands:
|
||||
- ./ci/scripts/publish.sh bullseye debian armv7 ${DRONE_TAG} ${DRONE_BUILD_EVENT}
|
||||
image: 084037375216.dkr.ecr.us-east-2.amazonaws.com/honda-builder
|
||||
name: copy relase
|
||||
volumes:
|
||||
- name: zerotier-releases
|
||||
path: /zerotier-releases
|
||||
when:
|
||||
event:
|
||||
- tag
|
||||
trigger:
|
||||
event:
|
||||
- push
|
||||
- tag
|
||||
- custom
|
||||
type: docker
|
||||
volumes:
|
||||
- host:
|
||||
path: /zerotier-builds
|
||||
name: zerotier-builds
|
||||
- host:
|
||||
path: /zerotier-releases
|
||||
name: zerotier-releases
|
||||
---
|
||||
clone:
|
||||
depth: 1
|
||||
kind: pipeline
|
||||
name: bullseye amd64 build
|
||||
platform:
|
||||
os: linux
|
||||
pull: always
|
||||
steps:
|
||||
- commands:
|
||||
- ./ci/scripts/build.sh bullseye debian 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
|
||||
when:
|
||||
event:
|
||||
- push
|
||||
- commands:
|
||||
- ./ci/scripts/build.sh bullseye debian amd64 ${DRONE_TAG} ${DRONE_BUILD_EVENT}
|
||||
image: 084037375216.dkr.ecr.us-east-2.amazonaws.com/honda-builder
|
||||
name: release
|
||||
when:
|
||||
event:
|
||||
- tag
|
||||
- commands:
|
||||
- ./ci/scripts/publish.sh bullseye debian amd64 100.0.0+${DRONE_COMMIT_SHA:0:8}
|
||||
${DRONE_BUILD_EVENT}
|
||||
image: 084037375216.dkr.ecr.us-east-2.amazonaws.com/honda-builder
|
||||
name: copy build
|
||||
volumes:
|
||||
- name: zerotier-builds
|
||||
path: /zerotier-builds
|
||||
when:
|
||||
event:
|
||||
- push
|
||||
- commands:
|
||||
- ./ci/scripts/publish.sh bullseye debian amd64 ${DRONE_TAG} ${DRONE_BUILD_EVENT}
|
||||
image: 084037375216.dkr.ecr.us-east-2.amazonaws.com/honda-builder
|
||||
name: copy relase
|
||||
volumes:
|
||||
- name: zerotier-releases
|
||||
path: /zerotier-releases
|
||||
when:
|
||||
event:
|
||||
- tag
|
||||
trigger:
|
||||
event:
|
||||
- push
|
||||
- tag
|
||||
- custom
|
||||
type: docker
|
||||
volumes:
|
||||
- host:
|
||||
path: /zerotier-builds
|
||||
name: zerotier-builds
|
||||
- host:
|
||||
path: /zerotier-releases
|
||||
name: zerotier-releases
|
||||
---
|
||||
clone:
|
||||
depth: 1
|
||||
kind: pipeline
|
||||
name: bullseye arm64 build
|
||||
platform:
|
||||
arch: arm64
|
||||
os: linux
|
||||
pull: always
|
||||
steps:
|
||||
- commands:
|
||||
- ./ci/scripts/build.sh bullseye debian 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
|
||||
when:
|
||||
event:
|
||||
- push
|
||||
- commands:
|
||||
- ./ci/scripts/build.sh bullseye debian arm64 ${DRONE_TAG} ${DRONE_BUILD_EVENT}
|
||||
image: 084037375216.dkr.ecr.us-east-2.amazonaws.com/honda-builder
|
||||
name: release
|
||||
when:
|
||||
event:
|
||||
- tag
|
||||
- commands:
|
||||
- ./ci/scripts/publish.sh bullseye debian arm64 100.0.0+${DRONE_COMMIT_SHA:0:8}
|
||||
${DRONE_BUILD_EVENT}
|
||||
image: 084037375216.dkr.ecr.us-east-2.amazonaws.com/honda-builder
|
||||
name: copy build
|
||||
volumes:
|
||||
- name: zerotier-builds
|
||||
path: /zerotier-builds
|
||||
when:
|
||||
event:
|
||||
- push
|
||||
- commands:
|
||||
- ./ci/scripts/publish.sh bullseye debian arm64 ${DRONE_TAG} ${DRONE_BUILD_EVENT}
|
||||
image: 084037375216.dkr.ecr.us-east-2.amazonaws.com/honda-builder
|
||||
name: copy relase
|
||||
volumes:
|
||||
- name: zerotier-releases
|
||||
path: /zerotier-releases
|
||||
when:
|
||||
event:
|
||||
- tag
|
||||
trigger:
|
||||
event:
|
||||
- push
|
||||
- tag
|
||||
- custom
|
||||
type: docker
|
||||
volumes:
|
||||
- host:
|
||||
path: /zerotier-builds
|
||||
name: zerotier-builds
|
||||
- host:
|
||||
path: /zerotier-releases
|
||||
name: zerotier-releases
|
||||
---
|
||||
clone:
|
||||
depth: 1
|
||||
depends_on:
|
||||
- bullseye 386 build
|
||||
- bullseye armv7 build
|
||||
- bullseye amd64 build
|
||||
- bullseye arm64 build
|
||||
kind: pipeline
|
||||
name: bullseye index
|
||||
platform:
|
||||
os: linux
|
||||
pull: always
|
||||
steps:
|
||||
- commands:
|
||||
- /usr/local/bin/index zerotier-builds debian bullseye 386 armv7 amd64 arm64
|
||||
environment:
|
||||
GPG_PRIVATE_KEY:
|
||||
from_secret: gpg-private-key
|
||||
image: 084037375216.dkr.ecr.us-east-2.amazonaws.com/apt-builder
|
||||
name: index build
|
||||
volumes:
|
||||
- name: zerotier-builds
|
||||
path: /zerotier-builds
|
||||
when:
|
||||
event:
|
||||
- push
|
||||
- commands:
|
||||
- /usr/local/bin/index zerotier-releases debian bullseye 386 armv7 amd64 arm64
|
||||
environment:
|
||||
GPG_PRIVATE_KEY:
|
||||
from_secret: gpg-private-key
|
||||
image: 084037375216.dkr.ecr.us-east-2.amazonaws.com/apt-builder
|
||||
name: index release
|
||||
volumes:
|
||||
- name: zerotier-releases
|
||||
path: /zerotier-releases
|
||||
when:
|
||||
event:
|
||||
- tag
|
||||
trigger:
|
||||
event:
|
||||
- push
|
||||
- tag
|
||||
- custom
|
||||
type: docker
|
||||
volumes:
|
||||
- host:
|
||||
path: /zerotier-builds
|
||||
name: zerotier-builds
|
||||
- host:
|
||||
path: /zerotier-releases
|
||||
name: zerotier-releases
|
||||
---
|
||||
clone:
|
||||
depth: 1
|
||||
depends_on:
|
||||
- bullseye index
|
||||
kind: pipeline
|
||||
name: bullseye 386 test
|
||||
platform:
|
||||
os: linux
|
||||
pull: always
|
||||
steps:
|
||||
- commands:
|
||||
- ./ci/scripts/test.sh bullseye debian 386 100.0.0+${DRONE_COMMIT_SHA:0:8} ${DRONE_BUILD_EVENT}
|
||||
image: 084037375216.dkr.ecr.us-east-2.amazonaws.com/honda-builder
|
||||
name: test build
|
||||
volumes:
|
||||
- name: zerotier-builds
|
||||
path: /zerotier-builds
|
||||
when:
|
||||
event:
|
||||
- push
|
||||
- commands:
|
||||
- ./ci/scripts/test.sh bullseye debian 386 ${DRONE_TAG} ${DRONE_BUILD_EVENT}
|
||||
image: 084037375216.dkr.ecr.us-east-2.amazonaws.com/honda-builder
|
||||
name: test release
|
||||
volumes:
|
||||
- name: zerotier-releases
|
||||
path: /zerotier-releases
|
||||
when:
|
||||
event:
|
||||
- tag
|
||||
trigger:
|
||||
event:
|
||||
- push
|
||||
- tag
|
||||
- custom
|
||||
type: docker
|
||||
volumes:
|
||||
- host:
|
||||
path: /zerotier-builds
|
||||
name: zerotier-builds
|
||||
- host:
|
||||
path: /zerotier-releases
|
||||
name: zerotier-releases
|
||||
---
|
||||
clone:
|
||||
depth: 1
|
||||
depends_on:
|
||||
- bullseye index
|
||||
kind: pipeline
|
||||
name: bullseye armv7 test
|
||||
platform:
|
||||
arch: arm64
|
||||
os: linux
|
||||
pull: always
|
||||
steps:
|
||||
- commands:
|
||||
- ./ci/scripts/test.sh bullseye debian armv7 100.0.0+${DRONE_COMMIT_SHA:0:8} ${DRONE_BUILD_EVENT}
|
||||
image: 084037375216.dkr.ecr.us-east-2.amazonaws.com/honda-builder
|
||||
name: test build
|
||||
volumes:
|
||||
- name: zerotier-builds
|
||||
path: /zerotier-builds
|
||||
when:
|
||||
event:
|
||||
- push
|
||||
- commands:
|
||||
- ./ci/scripts/test.sh bullseye debian armv7 ${DRONE_TAG} ${DRONE_BUILD_EVENT}
|
||||
image: 084037375216.dkr.ecr.us-east-2.amazonaws.com/honda-builder
|
||||
name: test release
|
||||
volumes:
|
||||
- name: zerotier-releases
|
||||
path: /zerotier-releases
|
||||
when:
|
||||
event:
|
||||
- tag
|
||||
trigger:
|
||||
event:
|
||||
- push
|
||||
- tag
|
||||
- custom
|
||||
type: docker
|
||||
volumes:
|
||||
- host:
|
||||
path: /zerotier-builds
|
||||
name: zerotier-builds
|
||||
- host:
|
||||
path: /zerotier-releases
|
||||
name: zerotier-releases
|
||||
---
|
||||
clone:
|
||||
depth: 1
|
||||
depends_on:
|
||||
- bullseye index
|
||||
kind: pipeline
|
||||
name: bullseye amd64 test
|
||||
platform:
|
||||
os: linux
|
||||
pull: always
|
||||
steps:
|
||||
- commands:
|
||||
- ./ci/scripts/test.sh bullseye debian amd64 100.0.0+${DRONE_COMMIT_SHA:0:8} ${DRONE_BUILD_EVENT}
|
||||
image: 084037375216.dkr.ecr.us-east-2.amazonaws.com/honda-builder
|
||||
name: test build
|
||||
volumes:
|
||||
- name: zerotier-builds
|
||||
path: /zerotier-builds
|
||||
when:
|
||||
event:
|
||||
- push
|
||||
- commands:
|
||||
- ./ci/scripts/test.sh bullseye debian amd64 ${DRONE_TAG} ${DRONE_BUILD_EVENT}
|
||||
image: 084037375216.dkr.ecr.us-east-2.amazonaws.com/honda-builder
|
||||
name: test release
|
||||
volumes:
|
||||
- name: zerotier-releases
|
||||
path: /zerotier-releases
|
||||
when:
|
||||
event:
|
||||
- tag
|
||||
trigger:
|
||||
event:
|
||||
- push
|
||||
- tag
|
||||
- custom
|
||||
type: docker
|
||||
volumes:
|
||||
- host:
|
||||
path: /zerotier-builds
|
||||
name: zerotier-builds
|
||||
- host:
|
||||
path: /zerotier-releases
|
||||
name: zerotier-releases
|
||||
---
|
||||
clone:
|
||||
depth: 1
|
||||
depends_on:
|
||||
- bullseye index
|
||||
kind: pipeline
|
||||
name: bullseye arm64 test
|
||||
platform:
|
||||
arch: arm64
|
||||
os: linux
|
||||
pull: always
|
||||
steps:
|
||||
- commands:
|
||||
- ./ci/scripts/test.sh bullseye debian arm64 100.0.0+${DRONE_COMMIT_SHA:0:8} ${DRONE_BUILD_EVENT}
|
||||
image: 084037375216.dkr.ecr.us-east-2.amazonaws.com/honda-builder
|
||||
name: test build
|
||||
volumes:
|
||||
- name: zerotier-builds
|
||||
path: /zerotier-builds
|
||||
when:
|
||||
event:
|
||||
- push
|
||||
- commands:
|
||||
- ./ci/scripts/test.sh bullseye debian arm64 ${DRONE_TAG} ${DRONE_BUILD_EVENT}
|
||||
image: 084037375216.dkr.ecr.us-east-2.amazonaws.com/honda-builder
|
||||
name: test release
|
||||
volumes:
|
||||
- name: zerotier-releases
|
||||
path: /zerotier-releases
|
||||
when:
|
||||
event:
|
||||
- tag
|
||||
trigger:
|
||||
event:
|
||||
- push
|
||||
- tag
|
||||
- custom
|
||||
type: docker
|
||||
volumes:
|
||||
- host:
|
||||
path: /zerotier-builds
|
||||
name: zerotier-builds
|
||||
- host:
|
||||
path: /zerotier-releases
|
||||
name: zerotier-releases
|
||||
---
|
||||
kind: signature
|
||||
hmac: 887a3ef78d3fe8f0149911e1e4876401dd7dd313b36eb893e791fa42f45d7768
|
||||
|
||||
...
|
||||
+37
-16
@@ -1,4 +1,7 @@
|
||||
on: [ push ]
|
||||
on:
|
||||
pull_request:
|
||||
push:
|
||||
workflow_dispatch:
|
||||
|
||||
jobs:
|
||||
build_ubuntu:
|
||||
@@ -9,13 +12,12 @@ jobs:
|
||||
git config --global core.autocrlf input
|
||||
# git config --global core.eol lf
|
||||
- name: checkout
|
||||
uses: actions/checkout@v3
|
||||
uses: actions/checkout@v4
|
||||
- name: Install Rust
|
||||
uses: actions-rs/toolchain@v1
|
||||
uses: dtolnay/rust-toolchain@stable
|
||||
with:
|
||||
toolchain: stable
|
||||
target: x86_64-unknown-linux-gnu
|
||||
override: true
|
||||
targets: x86_64-unknown-linux-gnu
|
||||
components: rustfmt, clippy
|
||||
|
||||
- name: Set up cargo cache
|
||||
@@ -33,6 +35,14 @@ jobs:
|
||||
run: |
|
||||
make selftest
|
||||
./zerotier-selftest
|
||||
- name: 'Tar files' # keeps permissions (execute)
|
||||
run: tar -cvf zerotier-one.tar zerotier-one
|
||||
- name: Archive production artifacts
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: zerotier-one-ubuntu-x64
|
||||
path: zerotier-one.tar
|
||||
retention-days: 7
|
||||
|
||||
build_macos:
|
||||
runs-on: macos-latest
|
||||
@@ -42,20 +52,18 @@ jobs:
|
||||
git config --global core.autocrlf input
|
||||
# git config --global core.eol lf
|
||||
- name: checkout
|
||||
uses: actions/checkout@v3
|
||||
uses: actions/checkout@v4
|
||||
- name: Install Rust aarch64
|
||||
uses: actions-rs/toolchain@v1
|
||||
uses: dtolnay/rust-toolchain@stable
|
||||
with:
|
||||
toolchain: stable
|
||||
target: aarch64-apple-darwin
|
||||
override: true
|
||||
components: rustfmt, clippy
|
||||
- name: Install Rust x86_64
|
||||
uses: actions-rs/toolchain@v1
|
||||
uses: dtolnay/rust-toolchain@stable
|
||||
with:
|
||||
toolchain: stable
|
||||
target: x86_64-apple-darwin
|
||||
override: true
|
||||
components: rustfmt, clippy
|
||||
- name: Set up cargo cache
|
||||
uses: Swatinem/rust-cache@v2
|
||||
@@ -65,13 +73,21 @@ jobs:
|
||||
shared-key: ${{ runner.os }}-cargo-
|
||||
workspaces: |
|
||||
rustybits/
|
||||
|
||||
- name: make
|
||||
run: make
|
||||
- name: selftest
|
||||
run: |
|
||||
make selftest
|
||||
./zerotier-selftest
|
||||
- name: 'Tar files' # keeps permissions (execute)
|
||||
run: tar -cvf zerotier-one.tar zerotier-one
|
||||
- name: Archive production artifacts
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: zerotier-one-mac
|
||||
path: zerotier-one.tar
|
||||
retention-days: 7
|
||||
|
||||
|
||||
build_windows:
|
||||
runs-on: windows-latest
|
||||
@@ -81,13 +97,12 @@ jobs:
|
||||
git config --global core.autocrlf true
|
||||
# git config --global core.eol lf
|
||||
- name: checkout
|
||||
uses: actions/checkout@v3
|
||||
uses: actions/checkout@v4
|
||||
- name: Install Rust
|
||||
uses: actions-rs/toolchain@v1
|
||||
uses: dtolnay/rust-toolchain@stable
|
||||
with:
|
||||
toolchain: stable
|
||||
target: aarch64-apple-darwin
|
||||
override: true
|
||||
components: rustfmt, clippy
|
||||
- name: Set up cargo cache
|
||||
uses: Swatinem/rust-cache@v2
|
||||
@@ -99,7 +114,13 @@ jobs:
|
||||
rustybits/
|
||||
|
||||
- name: setup msbuild
|
||||
uses: microsoft/setup-msbuild@v1.1.3
|
||||
uses: microsoft/setup-msbuild@v2
|
||||
- name: msbuild
|
||||
run: |
|
||||
msbuild windows\ZeroTierOne.sln /m /p:Configuration=Release /property:Platform=x64 /t:ZeroTierOne
|
||||
msbuild windows\ZeroTierOne.sln /m /p:Configuration=Release /property:Platform=x64 /t:ZeroTierOne
|
||||
- name: Archive production artifacts
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: zerotier-one-windows
|
||||
path: windows/Build
|
||||
retention-days: 7
|
||||
@@ -1,4 +1,5 @@
|
||||
on:
|
||||
pull_request:
|
||||
push:
|
||||
workflow_dispatch:
|
||||
|
||||
@@ -44,7 +45,7 @@ jobs:
|
||||
sudo ./.github/workflows/validate-linux.sh
|
||||
|
||||
- name: Archive test results
|
||||
uses: actions/upload-artifact@v3
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: ${{github.sha}}-test-results
|
||||
path: "*test-results*"
|
||||
|
||||
@@ -124,6 +124,7 @@ attic/world/mkworld
|
||||
workspace/
|
||||
workspace2/
|
||||
zeroidc/target/
|
||||
tcp-proxy/target
|
||||
|
||||
#snapcraft specifics
|
||||
/parts/
|
||||
|
||||
@@ -1,14 +0,0 @@
|
||||
kick
|
||||
kick
|
||||
kick
|
||||
kick
|
||||
kick
|
||||
kick
|
||||
kick
|
||||
kick
|
||||
kick
|
||||
kick
|
||||
kick
|
||||
kick
|
||||
kick
|
||||
kick
|
||||
-75
@@ -1,75 +0,0 @@
|
||||
# Authors and Third Party Code Licensing Information
|
||||
|
||||
## Primary Authors
|
||||
|
||||
* ZeroTier Core and ZeroTier One virtual networking service<br>
|
||||
Adam Ierymenko / adam.ierymenko@zerotier.com
|
||||
Joseph Henry / joseph.henry@zerotier.com (QoS and multipath)
|
||||
|
||||
* Java JNI Interface to enable Android application development, and Android app itself (code for that is elsewhere)<br>
|
||||
Grant Limberg / glimberg@gmail.com
|
||||
|
||||
* ZeroTier SDK (formerly known as Network Containers)<br>
|
||||
Joseph Henry / joseph.henry@zerotier.com
|
||||
|
||||
## Third Party Contributors
|
||||
|
||||
* A number of fixes and improvements to the new controller, other stuff.<br>
|
||||
Kees Bos / https://github.com/keesbos/
|
||||
|
||||
* Debugging and testing, OpenWRT support fixes.<br>
|
||||
Moritz Warning / moritzwarning@web.de
|
||||
|
||||
* Debian GNU/Linux packaging, manual pages, and license compliance edits.<br>
|
||||
Ben Finney <ben+zerotier@benfinney.id.au>
|
||||
|
||||
* Several others made smaller contributions, which GitHub tracks here:<br>
|
||||
https://github.com/zerotier/ZeroTierOne/graphs/contributors/
|
||||
|
||||
## Third-Party Code
|
||||
|
||||
ZeroTier includes the following third party code, either in ext/ or incorporated into the ZeroTier core. This third party code remains licensed under its original license and is not subject to ZeroTier's BSL license.
|
||||
|
||||
* LZ4 compression algorithm by Yann Collet
|
||||
|
||||
* Files: node/Packet.cpp (bundled within anonymous namespace)
|
||||
* Home page: http://code.google.com/p/lz4/
|
||||
* License grant: BSD 2-clause
|
||||
|
||||
* http-parser by Joyent, Inc. (many authors)
|
||||
|
||||
* Files: ext/http-parser/*
|
||||
* Home page: https://github.com/joyent/http-parser/
|
||||
* License grant: MIT/Expat
|
||||
|
||||
* C++11 json (nlohmann/json) by Niels Lohmann
|
||||
|
||||
* Files: ext/json/*
|
||||
* Home page: https://github.com/nlohmann/json
|
||||
* License grant: MIT
|
||||
|
||||
* tap-windows6 by the OpenVPN project
|
||||
|
||||
* Files: windows/TapDriver6/*
|
||||
* Home page: https://github.com/OpenVPN/tap-windows6/
|
||||
* License grant: GNU GPL v2
|
||||
* ZeroTier Modifications: change name of driver to ZeroTier, add ioctl() to get L2 multicast memberships (source is in ext/ and modifications inherit GPL)
|
||||
|
||||
* Salsa20 stream cipher, Curve25519 elliptic curve cipher, Ed25519 digital signature algorithm, and Poly1305 MAC algorithm, all by Daniel J. Bernstein
|
||||
|
||||
* Files: node/Salsa20.* node/C25519.* node/Poly1305.*
|
||||
* Home page: http://cr.yp.to/
|
||||
* License grant: public domain
|
||||
* ZeroTier Modifications: slight cryptographically-irrelevant modifications for inclusion into ZeroTier core
|
||||
|
||||
* MiniUPNPC and libnatpmp by Thomas Bernard
|
||||
|
||||
* Files: ext/libnatpmp/* ext/miniupnpc/*
|
||||
* Home page: http://miniupnp.free.fr/
|
||||
* License grant: BSD attribution no-endorsement
|
||||
|
||||
* cpp-httplib by yhirose
|
||||
|
||||
* Files: ext/cpp-httplib/*
|
||||
* Home page: https://github.com/yhirose/cpp-httplib
|
||||
* License grant: MIT
|
||||
@@ -1,7 +1,7 @@
|
||||
ZeroTier One, an endpoint server for the ZeroTier virtual network layer.
|
||||
Copyright © 2011–2019 ZeroTier, Inc.
|
||||
|
||||
ZeroTier is released under the terms of the BSL version 1.1. See the
|
||||
ZeroTier is released under the terms of the BUSL version 1.1. See the
|
||||
file LICENSE.txt for details.
|
||||
|
||||
..
|
||||
|
||||
+3
-3
@@ -1,6 +1,6 @@
|
||||
# vim: ft=dockerfile
|
||||
|
||||
FROM debian:bullseye
|
||||
FROM debian:bookworm
|
||||
|
||||
ARG VERSION
|
||||
|
||||
@@ -9,9 +9,9 @@ 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
|
||||
echo "deb [signed-by=/usr/share/zerotier/zerotier.gpg] http://download.zerotier.com/debian/bookworm bookworm 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 apt-get update -qq && apt-get install zerotier-one=${VERSION} curl iproute2 net-tools iputils-ping openssl libssl3 -y
|
||||
RUN rm -rf /var/lib/zerotier-one
|
||||
|
||||
COPY entrypoint.sh.release /entrypoint.sh
|
||||
|
||||
@@ -31,3 +31,6 @@ drone:
|
||||
@echo "rendering .drone.yaml from .drone.jsonnet"
|
||||
drone jsonnet --format --stream
|
||||
drone sign zerotier/ZeroTierOne --save
|
||||
|
||||
clang-format:
|
||||
find node osdep service tcp-proxy controller -iname '*.cpp' -o -iname '*.hpp' | xargs clang-format -i
|
||||
@@ -14,6 +14,7 @@ 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
|
||||
../DesktopUI/mac-app-template/ZeroTier.app/Contents/Info.plist
|
||||
|
||||
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.)
|
||||
|
||||
@@ -29,4 +30,4 @@ You will need [Packages](http://s.sudre.free.fr/Software/Packages/about.html) an
|
||||
|
||||
## Windows
|
||||
|
||||
First load the Visual Studio solution and rebuild the UI and ZeroTier One in both x64 and i386 `Release` mode. Then load [Advanced Installer Enterprise](http://www.advancedinstaller.com/), check that the version is correct, and build. The build will fail if any build artifacts are missing, and Windows must have our product singing key (from DigiCert) available to sign the resulting MSI file. The MSI must then be tested on at least a few different CLEAN Windows VMs to ensure that the installer is valid and properly signed.
|
||||
First load the Visual Studio solution and rebuild the UI and ZeroTier One in both x64, i386, and arm64 `Release` mode. Then load [Advanced Installer Enterprise](http://www.advancedinstaller.com/), check that the version is correct, and build. The build will fail if any build artifacts are missing, and Windows must have our product singing key (from DigiCert) available to sign the resulting MSI file. The MSI must then be tested on at least a few different CLEAN Windows VMs to ensure that the installer is valid and properly signed.
|
||||
@@ -64,6 +64,7 @@ You can control a few settings including the identity used and the authtoken use
|
||||
- `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.
|
||||
- `ZEROTIER_LOCAL_CONF`: Sets the the `local.conf` file content for zerotier-one
|
||||
|
||||
### Tips
|
||||
|
||||
|
||||
@@ -58,7 +58,7 @@ To build on Mac and Linux just type `make`. On FreeBSD and OpenBSD `gmake` (GNU
|
||||
- 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.)
|
||||
- The minimum compiler versions required are GCC/G++ 8.x or CLANG/CLANG++ 5.x.
|
||||
- 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**
|
||||
|
||||
@@ -1,6 +1,29 @@
|
||||
ZeroTier Release Notes
|
||||
======
|
||||
|
||||
# 2024-10-23 -- Version 1.14.2
|
||||
|
||||
* Fix for missing entitlement on macOS Sequoia.
|
||||
* Fix for a problem correctly parsing local.conf to enable low bandwidth mode.
|
||||
* Increment versions of some dependent libraries.
|
||||
* Other fixes.
|
||||
|
||||
# 2024-09-12 -- Version 1.14.1
|
||||
|
||||
* Multithreaded packet I/O support! Currently this is just for Linux and must
|
||||
be enabled in local.conf. It will likely make the largest difference on small
|
||||
multi-core devices where CPU is a bottleneck and high throughput is desired.
|
||||
It may be enabled by default in the future but we want it to be thoroughly
|
||||
tested. It's a little harder than it seems at first glance due to the need
|
||||
to keep packets in sequence and balance load.
|
||||
* Several multipath bug fixes.
|
||||
* Updated the versions on a number of libraries related to OIDC support and HTTP.
|
||||
* MacOS .app now shows the correct version in its Info.plist manifest.
|
||||
* Sanitize MAC addresses in JSON format rules parser.
|
||||
* Some basic information about the platform (OS, CPU architecture) is now reported
|
||||
to network controllers when networks are joined so it can be displayed to
|
||||
network admins and in the future used in policy checking and inventory operations.
|
||||
|
||||
# 2024-05-02 -- Version 1.14.0
|
||||
|
||||
* Linux I/O performance improvements under heavy load
|
||||
|
||||
@@ -1,459 +0,0 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using System.Net;
|
||||
using System.IO;
|
||||
using System.Windows;
|
||||
using Newtonsoft.Json;
|
||||
using System.Diagnostics;
|
||||
using System.Windows.Threading;
|
||||
|
||||
namespace WinUI
|
||||
{
|
||||
|
||||
|
||||
public class APIHandler
|
||||
{
|
||||
private string authtoken;
|
||||
|
||||
private string url = null;
|
||||
|
||||
private static volatile APIHandler instance;
|
||||
private static object syncRoot = new Object();
|
||||
|
||||
public delegate void NetworkListCallback(List<ZeroTierNetwork> networks);
|
||||
public delegate void StatusCallback(ZeroTierStatus status);
|
||||
|
||||
private string ZeroTierAddress = "";
|
||||
|
||||
public static APIHandler Instance
|
||||
{
|
||||
get
|
||||
{
|
||||
if (instance == null)
|
||||
{
|
||||
lock (syncRoot)
|
||||
{
|
||||
if (instance == null)
|
||||
{
|
||||
if (!initHandler())
|
||||
{
|
||||
return null;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return instance;
|
||||
}
|
||||
}
|
||||
|
||||
private static bool initHandler(bool resetToken = false)
|
||||
{
|
||||
String localZtDir = Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData) + "\\ZeroTier\\One";
|
||||
String globalZtDir = Environment.GetFolderPath(Environment.SpecialFolder.CommonApplicationData) + "\\ZeroTier\\One";
|
||||
|
||||
String authToken = "";
|
||||
Int32 port = 9993;
|
||||
|
||||
if (resetToken)
|
||||
{
|
||||
instance = null;
|
||||
if (File.Exists(localZtDir + "\\authtoken.secret"))
|
||||
{
|
||||
File.Delete(localZtDir + "\\authtoken.secret");
|
||||
}
|
||||
|
||||
if (File.Exists(localZtDir + "\\zerotier-one.port"))
|
||||
{
|
||||
File.Delete(localZtDir + "\\zerotier-one.port");
|
||||
}
|
||||
}
|
||||
|
||||
if (!File.Exists(localZtDir + "\\authtoken.secret") || !File.Exists(localZtDir + "\\zerotier-one.port"))
|
||||
{
|
||||
// launch external process to copy file into place
|
||||
String curPath = System.Reflection.Assembly.GetEntryAssembly().Location;
|
||||
int index = curPath.LastIndexOf("\\");
|
||||
curPath = curPath.Substring(0, index);
|
||||
ProcessStartInfo startInfo = new ProcessStartInfo(curPath + "\\copyutil.exe", "\"" + globalZtDir + "\"" + " " + "\"" + localZtDir + "\"");
|
||||
startInfo.Verb = "runas";
|
||||
|
||||
|
||||
var process = Process.Start(startInfo);
|
||||
process.WaitForExit();
|
||||
}
|
||||
|
||||
authToken = readAuthToken(localZtDir + "\\authtoken.secret");
|
||||
|
||||
if ((authToken == null) || (authToken.Length <= 0))
|
||||
{
|
||||
MessageBox.Show("Unable to read ZeroTier One authtoken", "ZeroTier One");
|
||||
return false;
|
||||
}
|
||||
|
||||
port = readPort(localZtDir + "\\zerotier-one.port");
|
||||
instance = new APIHandler(port, authToken);
|
||||
return true;
|
||||
}
|
||||
|
||||
private static String readAuthToken(String path)
|
||||
{
|
||||
String authToken = "";
|
||||
|
||||
if (File.Exists(path))
|
||||
{
|
||||
try
|
||||
{
|
||||
byte[] tmp = File.ReadAllBytes(path);
|
||||
authToken = System.Text.Encoding.UTF8.GetString(tmp).Trim();
|
||||
}
|
||||
catch
|
||||
{
|
||||
MessageBox.Show("Unable to read ZeroTier One Auth Token from:\r\n" + path, "ZeroTier One");
|
||||
}
|
||||
}
|
||||
|
||||
return authToken;
|
||||
}
|
||||
|
||||
private static Int32 readPort(String path)
|
||||
{
|
||||
Int32 port = 9993;
|
||||
|
||||
try
|
||||
{
|
||||
byte[] tmp = File.ReadAllBytes(path);
|
||||
port = Int32.Parse(System.Text.Encoding.ASCII.GetString(tmp).Trim());
|
||||
if ((port <= 0) || (port > 65535))
|
||||
port = 9993;
|
||||
}
|
||||
catch
|
||||
{
|
||||
}
|
||||
|
||||
return port;
|
||||
}
|
||||
|
||||
private APIHandler()
|
||||
{
|
||||
url = "http://127.0.0.1:9993";
|
||||
}
|
||||
|
||||
public APIHandler(int port, string authtoken)
|
||||
{
|
||||
url = "http://127.0.0.1:" + port;
|
||||
this.authtoken = authtoken;
|
||||
}
|
||||
|
||||
|
||||
|
||||
public void GetStatus(StatusCallback cb)
|
||||
{
|
||||
var request = WebRequest.Create(url + "/status" + "?auth=" + authtoken) as HttpWebRequest;
|
||||
if (request != null)
|
||||
{
|
||||
request.Method = "GET";
|
||||
request.ContentType = "application/json";
|
||||
}
|
||||
|
||||
try
|
||||
{
|
||||
var httpResponse = (HttpWebResponse)request.GetResponse();
|
||||
if (httpResponse.StatusCode == HttpStatusCode.OK)
|
||||
{
|
||||
using (var streamReader = new StreamReader(httpResponse.GetResponseStream()))
|
||||
{
|
||||
var responseText = streamReader.ReadToEnd();
|
||||
|
||||
ZeroTierStatus status = null;
|
||||
try
|
||||
{
|
||||
status = JsonConvert.DeserializeObject<ZeroTierStatus>(responseText);
|
||||
|
||||
if (ZeroTierAddress != status.Address)
|
||||
{
|
||||
ZeroTierAddress = status.Address;
|
||||
}
|
||||
}
|
||||
catch (JsonReaderException e)
|
||||
{
|
||||
Console.WriteLine(e.ToString());
|
||||
}
|
||||
cb(status);
|
||||
}
|
||||
}
|
||||
else if (httpResponse.StatusCode == HttpStatusCode.Unauthorized)
|
||||
{
|
||||
APIHandler.initHandler(true);
|
||||
}
|
||||
}
|
||||
catch (System.Net.Sockets.SocketException)
|
||||
{
|
||||
cb(null);
|
||||
}
|
||||
catch (System.Net.WebException e)
|
||||
{
|
||||
HttpWebResponse res = (HttpWebResponse)e.Response;
|
||||
if (res != null && res.StatusCode == HttpStatusCode.Unauthorized)
|
||||
{
|
||||
APIHandler.initHandler(true);
|
||||
}
|
||||
else
|
||||
{
|
||||
cb(null);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
public void GetNetworks(NetworkListCallback cb)
|
||||
{
|
||||
var request = WebRequest.Create(url + "/network" + "?auth=" + authtoken) as HttpWebRequest;
|
||||
if (request == null)
|
||||
{
|
||||
cb(null);
|
||||
}
|
||||
|
||||
request.Method = "GET";
|
||||
request.ContentType = "application/json";
|
||||
request.Timeout = 10000;
|
||||
|
||||
try
|
||||
{
|
||||
var httpResponse = (HttpWebResponse)request.GetResponse();
|
||||
|
||||
if (httpResponse.StatusCode == HttpStatusCode.OK)
|
||||
{
|
||||
using (var streamReader = new StreamReader(httpResponse.GetResponseStream()))
|
||||
{
|
||||
var responseText = streamReader.ReadToEnd();
|
||||
|
||||
List<ZeroTierNetwork> networkList = null;
|
||||
try
|
||||
{
|
||||
networkList = JsonConvert.DeserializeObject<List<ZeroTierNetwork>>(responseText);
|
||||
foreach (ZeroTierNetwork n in networkList)
|
||||
{
|
||||
// all networks received via JSON are connected by definition
|
||||
n.IsConnected = true;
|
||||
}
|
||||
}
|
||||
catch (JsonReaderException e)
|
||||
{
|
||||
Console.WriteLine(e.ToString());
|
||||
}
|
||||
cb(networkList);
|
||||
}
|
||||
}
|
||||
else if (httpResponse.StatusCode == HttpStatusCode.Unauthorized)
|
||||
{
|
||||
APIHandler.initHandler(true);
|
||||
}
|
||||
}
|
||||
catch (System.Net.Sockets.SocketException)
|
||||
{
|
||||
cb(null);
|
||||
}
|
||||
catch (System.Net.WebException e)
|
||||
{
|
||||
HttpWebResponse res = (HttpWebResponse)e.Response;
|
||||
if (res != null && res.StatusCode == HttpStatusCode.Unauthorized)
|
||||
{
|
||||
APIHandler.initHandler(true);
|
||||
}
|
||||
else
|
||||
{
|
||||
cb(null);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public void JoinNetwork(Dispatcher d, string nwid, bool allowManaged = true, bool allowGlobal = false, bool allowDefault = false, bool allowDNS = false)
|
||||
{
|
||||
Task.Factory.StartNew(() =>
|
||||
{
|
||||
var request = WebRequest.Create(url + "/network/" + nwid + "?auth=" + authtoken) as HttpWebRequest;
|
||||
if (request == null)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
request.Method = "POST";
|
||||
request.ContentType = "applicaiton/json";
|
||||
request.Timeout = 30000;
|
||||
try
|
||||
{
|
||||
using (var streamWriter = new StreamWriter(((HttpWebRequest)request).GetRequestStream()))
|
||||
{
|
||||
string json = "{\"allowManaged\":" + (allowManaged ? "true" : "false") + "," +
|
||||
"\"allowGlobal\":" + (allowGlobal ? "true" : "false") + "," +
|
||||
"\"allowDefault\":" + (allowDefault ? "true" : "false") + "," +
|
||||
"\"allowDNS\":" + (allowDNS ? "true" : "false") + "}";
|
||||
streamWriter.Write(json);
|
||||
streamWriter.Flush();
|
||||
streamWriter.Close();
|
||||
}
|
||||
}
|
||||
catch (System.Net.WebException)
|
||||
{
|
||||
d.BeginInvoke(DispatcherPriority.Normal, new Action(() =>
|
||||
{
|
||||
MessageBox.Show("Error Joining Network: Cannot connect to ZeroTier service.");
|
||||
}));
|
||||
return;
|
||||
}
|
||||
|
||||
try
|
||||
{
|
||||
var httpResponse = (HttpWebResponse)request.GetResponse();
|
||||
|
||||
if (httpResponse.StatusCode == HttpStatusCode.Unauthorized)
|
||||
{
|
||||
APIHandler.initHandler(true);
|
||||
}
|
||||
else if (httpResponse.StatusCode != HttpStatusCode.OK)
|
||||
{
|
||||
Console.WriteLine("Error sending join network message");
|
||||
}
|
||||
}
|
||||
catch (System.Net.Sockets.SocketException)
|
||||
{
|
||||
d.BeginInvoke(DispatcherPriority.Normal, new Action(() =>
|
||||
{
|
||||
MessageBox.Show("Error Joining Network: Cannot connect to ZeroTier service.");
|
||||
}));
|
||||
}
|
||||
catch (System.Net.WebException e)
|
||||
{
|
||||
HttpWebResponse res = (HttpWebResponse)e.Response;
|
||||
if (res != null && res.StatusCode == HttpStatusCode.Unauthorized)
|
||||
{
|
||||
APIHandler.initHandler(true);
|
||||
}
|
||||
d.BeginInvoke(DispatcherPriority.Normal, new Action(() =>
|
||||
{
|
||||
MessageBox.Show("Error Joining Network: Cannot connect to ZeroTier service.");
|
||||
}));
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
public void LeaveNetwork(Dispatcher d, string nwid)
|
||||
{
|
||||
Task.Factory.StartNew(() =>
|
||||
{
|
||||
var request = WebRequest.Create(url + "/network/" + nwid + "?auth=" + authtoken) as HttpWebRequest;
|
||||
if (request == null)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
request.Method = "DELETE";
|
||||
request.Timeout = 30000;
|
||||
|
||||
try
|
||||
{
|
||||
var httpResponse = (HttpWebResponse)request.GetResponse();
|
||||
|
||||
if (httpResponse.StatusCode == HttpStatusCode.Unauthorized)
|
||||
{
|
||||
APIHandler.initHandler(true);
|
||||
}
|
||||
else if (httpResponse.StatusCode != HttpStatusCode.OK)
|
||||
{
|
||||
Console.WriteLine("Error sending leave network message");
|
||||
}
|
||||
}
|
||||
catch (System.Net.Sockets.SocketException)
|
||||
{
|
||||
d.BeginInvoke(DispatcherPriority.Normal, new Action(() =>
|
||||
{
|
||||
MessageBox.Show("Error Leaving Network: Cannot connect to ZeroTier service.");
|
||||
}));
|
||||
}
|
||||
catch (System.Net.WebException e)
|
||||
{
|
||||
HttpWebResponse res = (HttpWebResponse)e.Response;
|
||||
if (res != null && res.StatusCode == HttpStatusCode.Unauthorized)
|
||||
{
|
||||
APIHandler.initHandler(true);
|
||||
}
|
||||
d.BeginInvoke(DispatcherPriority.Normal, new Action(() =>
|
||||
{
|
||||
MessageBox.Show("Error Leaving Network: Cannot connect to ZeroTier service.");
|
||||
}));
|
||||
}
|
||||
catch
|
||||
{
|
||||
Console.WriteLine("Error leaving network: Unknown error");
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
public delegate void PeersCallback(List<ZeroTierPeer> peers);
|
||||
|
||||
public void GetPeers(PeersCallback cb)
|
||||
{
|
||||
var request = WebRequest.Create(url + "/peer" + "?auth=" + authtoken) as HttpWebRequest;
|
||||
if (request == null)
|
||||
{
|
||||
cb(null);
|
||||
}
|
||||
|
||||
request.Method = "GET";
|
||||
request.ContentType = "application/json";
|
||||
|
||||
try
|
||||
{
|
||||
var httpResponse = (HttpWebResponse)request.GetResponse();
|
||||
if (httpResponse.StatusCode == HttpStatusCode.OK)
|
||||
{
|
||||
using (var streamReader = new StreamReader(httpResponse.GetResponseStream()))
|
||||
{
|
||||
var responseText = streamReader.ReadToEnd();
|
||||
//Console.WriteLine(responseText);
|
||||
List<ZeroTierPeer> peerList = null;
|
||||
try
|
||||
{
|
||||
peerList = JsonConvert.DeserializeObject<List<ZeroTierPeer>>(responseText);
|
||||
}
|
||||
catch (JsonReaderException e)
|
||||
{
|
||||
Console.WriteLine(e.ToString());
|
||||
}
|
||||
cb(peerList);
|
||||
}
|
||||
}
|
||||
else if (httpResponse.StatusCode == HttpStatusCode.Unauthorized)
|
||||
{
|
||||
APIHandler.initHandler(true);
|
||||
}
|
||||
}
|
||||
catch (System.Net.Sockets.SocketException)
|
||||
{
|
||||
cb(null);
|
||||
}
|
||||
catch (System.Net.WebException e)
|
||||
{
|
||||
HttpWebResponse res = (HttpWebResponse)e.Response;
|
||||
if (res != null && res.StatusCode == HttpStatusCode.Unauthorized)
|
||||
{
|
||||
APIHandler.initHandler(true);
|
||||
}
|
||||
else
|
||||
{
|
||||
cb(null);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public string NodeAddress()
|
||||
{
|
||||
return ZeroTierAddress;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,35 +0,0 @@
|
||||
<Window x:Class="WinUI.AboutView"
|
||||
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
|
||||
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
|
||||
xmlns:local="clr-namespace:WinUI"
|
||||
mc:Ignorable="d"
|
||||
Title="AboutView" Height="368.267" Width="300" Icon="ZeroTierIcon.ico">
|
||||
<Grid>
|
||||
<Image x:Name="image" HorizontalAlignment="Center" Height="100" Margin="0,10,0,0" VerticalAlignment="Top" Width="100" Source="ZeroTierIcon.ico"/>
|
||||
<RichTextBox x:Name="richTextBox" HorizontalAlignment="Left" Height="209" Margin="10,123,0,0" VerticalAlignment="Top" Width="275" IsReadOnly="True" IsDocumentEnabled="True" BorderThickness="0" FontSize="18" RenderTransformOrigin="0.506,0.63">
|
||||
<RichTextBox.Resources>
|
||||
<Style TargetType="Hyperlink">
|
||||
<Setter Property="Cursor" Value="Hand" />
|
||||
</Style>
|
||||
</RichTextBox.Resources>
|
||||
<FlowDocument>
|
||||
<Paragraph TextAlignment="Center">
|
||||
<Run Text="ZeroTier One"/>
|
||||
</Paragraph>
|
||||
<Paragraph TextAlignment="Center">
|
||||
<Run FontSize="14" Text="Version 1.6.6"/>
|
||||
<LineBreak/>
|
||||
<Run FontSize="14" Text="(c) 2011-2021 ZeroTier, Inc."/>
|
||||
<LineBreak/>
|
||||
<Run FontSize="14" Text="www.zerotier.com"/>
|
||||
</Paragraph>
|
||||
<Paragraph TextAlignment="Center">
|
||||
<Run FontSize="14" Text="ZeroTier One allows your computer to join virtual networks. Just select "join" and enter a network's 16-digit ID. Each network appears on your computer as a new network port."/>
|
||||
</Paragraph>
|
||||
</FlowDocument>
|
||||
</RichTextBox>
|
||||
|
||||
</Grid>
|
||||
</Window>
|
||||
@@ -1,35 +0,0 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Diagnostics;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using System.Windows;
|
||||
using System.Windows.Controls;
|
||||
using System.Windows.Data;
|
||||
using System.Windows.Documents;
|
||||
using System.Windows.Input;
|
||||
using System.Windows.Media;
|
||||
using System.Windows.Media.Imaging;
|
||||
using System.Windows.Navigation;
|
||||
using System.Windows.Shapes;
|
||||
|
||||
namespace WinUI
|
||||
{
|
||||
/// <summary>
|
||||
/// Interaction logic for AboutView.xaml
|
||||
/// </summary>
|
||||
public partial class AboutView : Window
|
||||
{
|
||||
public AboutView()
|
||||
{
|
||||
InitializeComponent();
|
||||
}
|
||||
|
||||
private void Hyperlink_MouseLeftButtonDown(object sender, RequestNavigateEventArgs e)
|
||||
{
|
||||
var hyperlink = (Hyperlink)sender;
|
||||
Process.Start(hyperlink.NavigateUri.ToString());
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,6 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8" ?>
|
||||
<configuration>
|
||||
<startup>
|
||||
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" />
|
||||
</startup>
|
||||
</configuration>
|
||||
@@ -1,14 +0,0 @@
|
||||
<Application x:Class="WinUI.App"
|
||||
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||
StartupUri="ToolbarItem.xaml">
|
||||
<Application.Resources>
|
||||
|
||||
<ResourceDictionary>
|
||||
<ResourceDictionary.MergedDictionaries>
|
||||
<ResourceDictionary Source="Simple Styles.xaml"/>
|
||||
</ResourceDictionary.MergedDictionaries>
|
||||
</ResourceDictionary>
|
||||
|
||||
</Application.Resources>
|
||||
</Application>
|
||||
Loaded 20 of 291 files, more files were not shown because too many files have changed in this diff.
Show more
Reference in new issue
Block a user