mirror of
https://github.com/zerotier/ZeroTierOne.git
synced 2026-09-22 15:29:03 -07:00
Compare commits
911
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
7d951783ca | ||
|
|
ec76f6e1d2 | ||
|
|
c943d0e807 | ||
|
|
a1ceccaf6e | ||
|
|
326a871fac | ||
|
|
e462750bdd | ||
|
|
7c599fe83e | ||
|
|
d7e4404c17 | ||
|
|
441f4986ac | ||
|
|
d70cfe6850 | ||
|
|
4ed77e0c0f | ||
|
|
f8e3251efe | ||
|
|
1bb43476e8 | ||
|
|
387d293793 | ||
|
|
bd96e53bcc | ||
|
|
bab9a7f508 | ||
|
|
31eb950750 | ||
|
|
31ef205828 | ||
|
|
a7350bc312 | ||
|
|
0e396526e4 | ||
|
|
8e5f8140a2 | ||
|
|
8f746f5099 | ||
|
|
bc8aa6c359 | ||
|
|
00714f5f2e | ||
|
|
d20470d30f | ||
|
|
c2d14599c5 | ||
|
|
896656115f | ||
|
|
72114e4cf8 | ||
|
|
2abf2c5695 | ||
|
|
fe01352412 | ||
|
|
782f15f8c9 | ||
|
|
e0492a7e69 | ||
|
|
cb147a3e8a | ||
|
|
f97e9e1f5d | ||
|
|
f1b6cb2ace | ||
|
|
27939a5233 | ||
|
|
7d5ba6f739 | ||
|
|
37360d5e2e | ||
|
|
ae13983b10 | ||
|
|
78670aea58 | ||
|
|
d0cc3ac333 | ||
|
|
4273d89373 | ||
|
|
9ef780e05c | ||
|
|
9da0b43d2d | ||
|
|
7c929099b3 | ||
|
|
ea2f95ed70 | ||
|
|
fc39894541 | ||
|
|
1fc4dce835 | ||
|
|
0c56d7c769 | ||
|
|
1f2a107d1d | ||
|
|
4474303b01 | ||
|
|
3b773da8bc | ||
|
|
7efaab2af1 | ||
|
|
064cb6dad7 | ||
|
|
d5afba2610 | ||
|
|
b4d0307d9e | ||
|
|
71b72a1ef2 | ||
|
|
b0e8bac310 | ||
|
|
9a501a76d1 | ||
|
|
becc4aa8ea | ||
|
|
95d7970f34 | ||
|
|
81530e5990 | ||
|
|
825b19aedc | ||
|
|
0f04b5afc7 | ||
|
|
189dea7c96 | ||
|
|
85ef9535d5 | ||
|
|
71a2206c5d | ||
|
|
641d1a52c8 | ||
|
|
407f737212 | ||
|
|
0d58865061 | ||
|
|
cfb0bc4f8e | ||
|
|
dfe230be8b | ||
|
|
75ecfffd52 | ||
|
|
883cbd182d | ||
|
|
866a20e85b | ||
|
|
a19bc1e826 | ||
|
|
a117c92a1e | ||
|
|
65ef40b091 | ||
|
|
15f5125c8c | ||
|
|
e5f2314055 | ||
|
|
f018fefeb4 | ||
|
|
04d8c3dd79 | ||
|
|
7994e3aa78 | ||
|
|
1eacbdf374 | ||
|
|
492e78e2cf | ||
|
|
8b1c691a5e | ||
|
|
b02fc1f28b | ||
|
|
ecf1fe9aa5 | ||
|
|
7e341ed397 | ||
|
|
e5e6f82a8e | ||
|
|
eca929faef | ||
|
|
b027a83789 | ||
|
|
1ad0fbdb76 | ||
|
|
8f1e6a2fde | ||
|
|
451e6be180 | ||
|
|
7b869684c6 | ||
|
|
0d764f5a3d | ||
|
|
899f0c9749 | ||
|
|
727aa8e71f | ||
|
|
404b7a5493 | ||
|
|
befc50ac3a | ||
|
|
94c35d395e | ||
|
|
7883e5d8ad | ||
|
|
97cd184211 | ||
|
|
c17ac16728 | ||
|
|
b696ab12b8 | ||
|
|
e7ccd74a9e | ||
|
|
676a3444cd | ||
|
|
bd0299f392 | ||
|
|
e213317532 | ||
|
|
206524b9e6 | ||
|
|
7a458e0138 | ||
|
|
9db9211ed3 | ||
|
|
2ee550bbfd | ||
|
|
9029570452 | ||
|
|
6af39da61a | ||
|
|
ad692b07c3 | ||
|
|
3f4809457f | ||
|
|
53b85a2bbb | ||
|
|
92d2bbc63c | ||
|
|
536be73006 | ||
|
|
115187204f | ||
|
|
b482064a55 | ||
|
|
722a50f7be | ||
|
|
623213ea0b | ||
|
|
0589c4ab6a | ||
|
|
46c4a11a7a | ||
|
|
16d27dfddb | ||
|
|
aee344fe47 | ||
|
|
696c77f5c8 | ||
|
|
8921914098 | ||
|
|
f33574dfbc | ||
|
|
e2bc081740 | ||
|
|
a6d7f7cac2 | ||
|
|
c714112e00 | ||
|
|
bae91724a1 | ||
|
|
daef6a24d1 | ||
|
|
661ebfee94 | ||
|
|
73d0e2e7e0 | ||
|
|
917cc58560 | ||
|
|
1eea80194b | ||
|
|
d569217ff5 | ||
|
|
d823725eb6 | ||
|
|
f08d20560b | ||
|
|
c0385466e2 | ||
|
|
c22b002226 | ||
|
|
9aac1fc47f | ||
|
|
39d4fadf90 | ||
|
|
4968afb89a | ||
|
|
8b45018f28 | ||
|
|
007b3bd10b | ||
|
|
5e1b7f2ba6 | ||
|
|
40820ddea9 | ||
|
|
4fbc29158d | ||
|
|
6e1115ea03 | ||
|
|
d5d1f4a313 | ||
|
|
1e65aad95b | ||
|
|
495ac17346 | ||
|
|
2f82db97ed | ||
|
|
35f3d16084 | ||
|
|
29dfe240e4 | ||
|
|
aa9ca845e8 | ||
|
|
05a3831acb | ||
|
|
9a7d26cd9e | ||
|
|
ab36607a48 | ||
|
|
02a810b8d6 | ||
|
|
2d1ca5f346 | ||
|
|
65aca7d84a | ||
|
|
d3a9ce95bc | ||
|
|
ee53f056ce | ||
|
|
f3defdf3a6 | ||
|
|
6d88a13407 | ||
|
|
9722bdef75 | ||
|
|
f87e41abee | ||
|
|
d7c6f8ae3f | ||
|
|
4d80f7c41d | ||
|
|
de00486b80 | ||
|
|
c2664033bc | ||
|
|
f96a9f63ea | ||
|
|
78b18f2bdb | ||
|
|
8bb0753f62 | ||
|
|
0c5d1a793c | ||
|
|
34692489cb | ||
|
|
52b619b38f | ||
|
|
9009a864ab | ||
|
|
09a8b66d3b | ||
|
|
7c6f5e2c37 | ||
|
|
930bd91598 | ||
|
|
050615f2d2 | ||
|
|
05cc4ea36a | ||
|
|
4cafc1b776 | ||
|
|
fb559434b6 | ||
|
|
02493d473f | ||
|
|
1abcb5adf5 | ||
|
|
1b8703db95 | ||
|
|
517a171a6c | ||
|
|
b126bf727a | ||
|
|
cfc2a43f51 | ||
|
|
0477e16860 | ||
|
|
cc13bf1049 | ||
|
|
a66b4a6f5e | ||
|
|
f989758159 | ||
|
|
ade8373c0c | ||
|
|
fa4ecea095 | ||
|
|
7ae9c6d55c | ||
|
|
b369d4b9a1 | ||
|
|
ea5bb43cf9 | ||
|
|
6ea60bc429 | ||
|
|
b094278b64 | ||
|
|
f21384e499 | ||
|
|
620fa9ab54 | ||
|
|
d8c83dbb08 | ||
|
|
992d1471b8 | ||
|
|
27b14aefcd | ||
|
|
a7fee6b02f | ||
|
|
cea297b69d | ||
|
|
c348bfff30 | ||
|
|
224c468aa3 | ||
|
|
a472aafb3e | ||
|
|
b165b9dd4f | ||
|
|
7d388e0c79 | ||
|
|
4036657e32 | ||
|
|
d50c6ee1ce | ||
|
|
143f4bef9f | ||
|
|
765dc413db | ||
|
|
423b0d891c | ||
|
|
3db0e9d068 | ||
|
|
1f3f9bc341 | ||
|
|
e84bfca5a5 | ||
|
|
bd488a08f8 | ||
|
|
3c6448a717 | ||
|
|
0a2dfc719a | ||
|
|
f0fc4713d8 | ||
|
|
b2132aa975 | ||
|
|
7739984c56 | ||
|
|
034188b0ee | ||
|
|
98ea27ecb0 | ||
|
|
8d2a0f764b | ||
|
|
6c43e0b946 | ||
|
|
77342f8571 | ||
|
|
e808b4b45f | ||
|
|
86d91cb625 | ||
|
|
3f21e59ab4 | ||
|
|
3669cac3c9 | ||
|
|
b919f5a95b | ||
|
|
5e6484ff5a | ||
|
|
ecb09aa2e1 | ||
|
|
346d4b572b | ||
|
|
1a38dfdbde | ||
|
|
69f1c8701b | ||
|
|
9daf4540de | ||
|
|
f447608d6b | ||
|
|
001fb54b15 | ||
|
|
ffc786d796 | ||
|
|
a1649d6cda | ||
|
|
541b2cbef0 | ||
|
|
5166aa6913 | ||
|
|
b88000c349 | ||
|
|
49eefe7e78 | ||
|
|
bfdac7a8f0 | ||
|
|
d9dd77bc6e | ||
|
|
e46a342e17 | ||
|
|
760607f58a | ||
|
|
35b5780907 | ||
|
|
51159601b0 | ||
|
|
4cb35a2975 | ||
|
|
405250ce79 | ||
|
|
81b11168c9 | ||
|
|
066cdfe2ac | ||
|
|
062189b589 | ||
|
|
a11d0027ce | ||
|
|
c9ae7e811f | ||
|
|
47ec246520 | ||
|
|
42104cfc4c | ||
|
|
1bab9b202f | ||
|
|
74ce98f39b | ||
|
|
3268effabf | ||
|
|
96965647bc | ||
|
|
808ab715d9 | ||
|
|
fa1e16085b | ||
|
|
dd46e56af2 | ||
|
|
d8d871745e | ||
|
|
09c9e338bc | ||
|
|
df9483408d | ||
|
|
cb342bfb12 | ||
|
|
04266a1180 | ||
|
|
86eda5fe65 | ||
|
|
bc1fa3bf20 | ||
|
|
e63920404c | ||
|
|
4833478eee | ||
|
|
c8b6850520 | ||
|
|
938cbba449 | ||
|
|
c8f640f3f2 | ||
|
|
2272189955 | ||
|
|
736edeeed0 | ||
|
|
bf33368add | ||
|
|
40d48c969c | ||
|
|
17f0dc9ba2 | ||
|
|
016d85b169 | ||
|
|
2bceabdfa5 | ||
|
|
d18c33d6df | ||
|
|
e2ca065f28 | ||
|
|
fe28501126 | ||
|
|
73795d05eb | ||
|
|
af846f7e3f | ||
|
|
a0374da4f3 | ||
|
|
4e44fa009c | ||
|
|
3dd2c94f4e | ||
|
|
6da8f2bb05 | ||
|
|
e21fcb8104 | ||
|
|
3c11c13af4 | ||
|
|
d3cf7b2202 | ||
|
|
03bcdf74a8 | ||
|
|
45b90a0dfa | ||
|
|
9babfcb9b6 | ||
|
|
1b2a4f00f2 | ||
|
|
90b5acfca6 | ||
|
|
741f7814c2 | ||
|
|
a4ae4941c3 | ||
|
|
8a6ef33c4a | ||
|
|
5ac2596429 | ||
|
|
5dac2e82a7 | ||
|
|
8e29acd664 | ||
|
|
1d29bc3e8e | ||
|
|
dc1ef0c49e | ||
|
|
1003455160 | ||
|
|
20ae12d385 | ||
|
|
dcc686a3a7 | ||
|
|
89c27c112a | ||
|
|
3621fe8897 | ||
|
|
33269cd29d | ||
|
|
1970dab13d | ||
|
|
a5390b1bc8 | ||
|
|
864e33cf2d | ||
|
|
b9bf6d1242 | ||
|
|
caad356b93 | ||
|
|
964c235ecf | ||
|
|
c881094202 | ||
|
|
6051c973d3 | ||
|
|
1f9717250c | ||
|
|
8ebbbc33cc | ||
|
|
98bcff1928 | ||
|
|
cef708c8ad | ||
|
|
a925e2d783 | ||
|
|
a1193f0e30 | ||
|
|
f209037efe | ||
|
|
b99dd7d916 | ||
|
|
aad21cf395 | ||
|
|
d537428421 | ||
|
|
996589894d | ||
|
|
d3777b3eb4 | ||
|
|
52e1f5502d | ||
|
|
664a128e9e | ||
|
|
666d44b14a | ||
|
|
b533c300d8 | ||
|
|
78d223d709 | ||
|
|
2b0127c26d | ||
|
|
16a3c14c53 | ||
|
|
c65391a344 | ||
|
|
fbf4ae823b | ||
|
|
3d6d9c5808 | ||
|
|
64c533c189 | ||
|
|
7fd78a87d1 | ||
|
|
b9f60fc3c2 | ||
|
|
afa01074c5 | ||
|
|
1f85b0402e | ||
|
|
b3314cd34f | ||
|
|
9428fc53f6 | ||
|
|
0d05e4bcae | ||
|
|
87da45b3f5 | ||
|
|
cbf174f96d | ||
|
|
0aa78d0ecb | ||
|
|
a87d4f1864 | ||
|
|
c0e86de6db | ||
|
|
60fa07bff2 | ||
|
|
1df7f21f5f | ||
|
|
674edab814 | ||
|
|
369df245e3 | ||
|
|
1f2e94a51d | ||
|
|
3f32cffc40 | ||
|
|
3914964a35 | ||
|
|
bedf63e257 | ||
|
|
d151d731a6 | ||
|
|
2d862f1d32 | ||
|
|
f92fca03a0 | ||
|
|
b5c01999b8 | ||
|
|
e9da35bac3 | ||
|
|
d3a7468e83 | ||
|
|
f3540a5c7c | ||
|
|
8cf6808c50 | ||
|
|
274db26339 | ||
|
|
490b9c4d79 | ||
|
|
2da096944d | ||
|
|
83f830618f | ||
|
|
cdbb86b830 | ||
|
|
483b47474d | ||
|
|
1d314858ef | ||
|
|
37d4e83fad | ||
|
|
c7f3f3add9 | ||
|
|
1c7baa544b | ||
|
|
3408839b33 | ||
|
|
a7409486bb | ||
|
|
cf24ed4108 | ||
|
|
8a379ba0a1 | ||
|
|
4b20638568 | ||
|
|
eebe2046f0 | ||
|
|
1e457dbd76 | ||
|
|
a20aebaaf8 | ||
|
|
5463c70aaf | ||
|
|
24e30a684b | ||
|
|
05e52493a4 | ||
|
|
d8f1e01b77 | ||
|
|
da5b11bf2d | ||
|
|
b824ea7bcf | ||
|
|
b96ea5ae03 | ||
|
|
fbd3e10488 | ||
|
|
51f0882849 | ||
|
|
416068f68e | ||
|
|
a8db4a8d2d | ||
|
|
6b49148d4e | ||
|
|
77e59818a3 | ||
|
|
6262374205 | ||
|
|
ed8271530f | ||
|
|
8e4d7c56d8 | ||
|
|
0598315d68 | ||
|
|
05e5d08959 | ||
|
|
ca33eaf28d | ||
|
|
13e86fdb6c | ||
|
|
ffbd18f4ef | ||
|
|
fabb0f734a | ||
|
|
1e59d92df3 | ||
|
|
ecd09946e6 | ||
|
|
789b8b8454 | ||
|
|
f107a71796 | ||
|
|
066b4c27a4 | ||
|
|
fbfa99fac5 | ||
|
|
c5bd21a23e | ||
|
|
1c7e1da4d1 | ||
|
|
5cec5fe6b1 | ||
|
|
ea0961dfd2 | ||
|
|
f20905b08a | ||
|
|
83e79e1a1b | ||
|
|
c6a7b5774c | ||
|
|
27ab88db1e | ||
|
|
1b71b6d01a | ||
|
|
dcb3d49d35 | ||
|
|
5c14a072d5 | ||
|
|
4eb491065b | ||
|
|
b87e8d8e41 | ||
|
|
a58f11e601 | ||
|
|
547f39bb49 | ||
|
|
df99f5e3f3 | ||
|
|
15e88a8b7e | ||
|
|
61b72d42b8 | ||
|
|
56bf504ec2 | ||
|
|
1f02250dd8 | ||
|
|
5d0c6db19c | ||
|
|
4af3467757 | ||
|
|
87890565f3 | ||
|
|
d603a73715 | ||
|
|
55b0555aa0 | ||
|
|
1a2378a3d4 | ||
|
|
c6ce6b46ce | ||
|
|
f109f2e612 | ||
|
|
8f8e3f4960 | ||
|
|
1d885cf810 | ||
|
|
5275a34b0b | ||
|
|
c3b5c45fea | ||
|
|
565a686be7 | ||
|
|
12cfb6501d | ||
|
|
de1b54821e | ||
|
|
320c8429c2 | ||
|
|
a4e24c8390 | ||
|
|
0589964f99 | ||
|
|
1affb6814c | ||
|
|
b70ab0d354 | ||
|
|
4a9266feef | ||
|
|
1e0a930d23 | ||
|
|
46d3780e89 | ||
|
|
311c98e24e | ||
|
|
9ad8dd3700 | ||
|
|
0dc476518b | ||
|
|
8c8a3c58ec | ||
|
|
a0ac4a744e | ||
|
|
3448e6fc76 | ||
|
|
e5c7366e71 | ||
|
|
e236d6f743 | ||
|
|
5db0d9438c | ||
|
|
08e06f9b8f | ||
|
|
018fe04163 | ||
|
|
f21ecb3762 | ||
|
|
60de5ed3dd | ||
|
|
df4b1e9b12 | ||
|
|
c3d3605f70 | ||
|
|
a9003d16f2 | ||
|
|
84619a7788 | ||
|
|
db127887b6 | ||
|
|
e0588b89b2 | ||
|
|
7d2eceef01 | ||
|
|
e5e444c7ae | ||
|
|
4b083b8c41 | ||
|
|
245d92b40c | ||
|
|
931ad1aca8 | ||
|
|
5e488d3aa0 | ||
|
|
cc52835ce3 | ||
|
|
7d11522768 | ||
|
|
417cdc17dc | ||
|
|
c537955c65 | ||
|
|
a0efea8e0f | ||
|
|
df346a6df6 | ||
|
|
cdc6c42375 | ||
|
|
d5b9a54c55 | ||
|
|
59da359b06 | ||
|
|
91ce4c4ea6 | ||
|
|
e9656ecf11 | ||
|
|
5c6bf9d0a4 | ||
|
|
0de194dab3 | ||
|
|
33bb61c63d | ||
|
|
e6273b3300 | ||
|
|
d7b31fe014 | ||
|
|
5aae5f95bf | ||
|
|
bba1324145 | ||
|
|
182561f7e6 | ||
|
|
41871c8b1e | ||
|
|
ff655292fb | ||
|
|
782b75a64e | ||
|
|
0c58901469 | ||
|
|
73b23f1b16 | ||
|
|
5a29f9ba2d | ||
|
|
03190c5a55 | ||
|
|
dab968ed96 | ||
|
|
b598263261 | ||
|
|
eef70e198b | ||
|
|
89c41f88a4 | ||
|
|
53b7c8f725 | ||
|
|
d471142908 | ||
|
|
3ff9ffd5d4 | ||
|
|
2558bd1b9b | ||
|
|
95d0944b9f | ||
|
|
6e72b6fb37 | ||
|
|
0c9be4de14 | ||
|
|
b53b7f4950 | ||
|
|
b2f0b35608 | ||
|
|
cba7a5d4d7 | ||
|
|
8e1a88c2fb | ||
|
|
ee5a988f14 | ||
|
|
f814a07ab3 | ||
|
|
a5aea2f3bb | ||
|
|
7291ac2093 | ||
|
|
790fe50fac | ||
|
|
83eacdfada | ||
|
|
2fbeaaf148 | ||
|
|
57710cbc38 | ||
|
|
8bae0acaf9 | ||
|
|
ef64e6a336 | ||
|
|
9642ff5fb9 | ||
|
|
263798d1c3 | ||
|
|
3fbfad5585 | ||
|
|
627533cf48 | ||
|
|
19899de5a6 | ||
|
|
c1b2c7903c | ||
|
|
3b94ef99ae | ||
|
|
6267c67888 | ||
|
|
23d6a3aacd | ||
|
|
72361fb1c8 | ||
|
|
b55f98b813 | ||
|
|
5a4d681af8 | ||
|
|
a16a0a8ce5 | ||
|
|
203df51752 | ||
|
|
47b4efd49b | ||
|
|
14fab11081 | ||
|
|
4c55f3eaa5 | ||
|
|
891bf99894 | ||
|
|
22e95b3bcb | ||
|
|
4da315fab2 | ||
|
|
507ba7d26a | ||
|
|
68ac884d47 | ||
|
|
e2f3996843 | ||
|
|
57ade250af | ||
|
|
c3e0f262d1 | ||
|
|
b9911d0db7 | ||
|
|
d1b780c7be | ||
|
|
1711cced3e | ||
|
|
63e6693255 | ||
|
|
9b8d191bb1 | ||
|
|
6db2b8c66d | ||
|
|
47a08ccbd4 | ||
|
|
7fc78129f4 | ||
|
|
c4504fd3ff | ||
|
|
e4799ff8c4 | ||
|
|
f680924585 | ||
|
|
b0d222768a | ||
|
|
4303c43db7 | ||
|
|
3b3e6d2bfc | ||
|
|
7061f13b24 | ||
|
|
5175636d36 | ||
|
|
570032484f | ||
|
|
9c37fc1a5f | ||
|
|
105023bd87 | ||
|
|
8a9669f130 | ||
|
|
e5bd230fb0 | ||
|
|
e3d47e588a | ||
|
|
f4a5abeed9 | ||
|
|
a7e38d2b00 | ||
|
|
84ba396ed3 | ||
|
|
6683280a37 | ||
|
|
1edf680464 | ||
|
|
4df090469a | ||
|
|
3c63f58532 | ||
|
|
64c8171e13 | ||
|
|
b6175bd408 | ||
|
|
b44bd19c53 | ||
|
|
536bc59abb | ||
|
|
70d5da1e2a | ||
|
|
90d4d79828 | ||
|
|
ccc9be2d4d | ||
|
|
3341c4a670 | ||
|
|
bcb9df9cdf | ||
|
|
2eef9d22e6 | ||
|
|
5e35346f17 | ||
|
|
bb53ee9567 | ||
|
|
9934a856dd | ||
|
|
24904c5083 | ||
|
|
6ce4663a31 | ||
|
|
fbf74d3baa | ||
|
|
b540181990 | ||
|
|
02a6b15e6b | ||
|
|
b34aa10bf8 | ||
|
|
e0ddbc2f28 | ||
|
|
ed2024285d | ||
|
|
ae2120eb96 | ||
|
|
3ceb2257e5 | ||
|
|
624efde7e4 | ||
|
|
50009fef6f | ||
|
|
dde937e197 | ||
|
|
07a480b37a | ||
|
|
9f5bccec30 | ||
|
|
ade52bf81e | ||
|
|
71c766a3b2 | ||
|
|
eef66aee9a | ||
|
|
e245eb1eb5 | ||
|
|
e08fc81397 | ||
|
|
9f9032ae36 | ||
|
|
063a16fcd6 | ||
|
|
0db4151492 | ||
|
|
e44d7a553f | ||
|
|
53a2de98de | ||
|
|
2deaaeef28 | ||
|
|
1f9e16f63e | ||
|
|
87fe69c27c | ||
|
|
2d1eeda188 | ||
|
|
5c06d40358 | ||
|
|
31e193756d | ||
|
|
5aa744db84 | ||
|
|
0ad82dad80 | ||
|
|
99c36ed2f2 | ||
|
|
44878e583a | ||
|
|
0723a85ab3 | ||
|
|
d8dae365f6 | ||
|
|
bccb86a401 | ||
|
|
592e743349 | ||
|
|
fb6161e9ac | ||
|
|
787277d282 | ||
|
|
540ee69773 | ||
|
|
0d2c87fe4e | ||
|
|
2460de9713 | ||
|
|
0d32f42d26 | ||
|
|
277497684e | ||
|
|
f4a83e516c | ||
|
|
d2eb1ed9a5 | ||
|
|
a3ec5846df | ||
|
|
b6047899a8 | ||
|
|
3516070b6e | ||
|
|
56ec87e00e | ||
|
|
fe0b896665 | ||
|
|
e4721417e6 | ||
|
|
45f5b3b648 | ||
|
|
3123102211 | ||
|
|
c6141ffbc7 | ||
|
|
c0e92d06a5 | ||
|
|
274b2682d6 | ||
|
|
171d661b84 | ||
|
|
5cea8da664 | ||
|
|
44dd52d08f | ||
|
|
70648d006d | ||
|
|
43e6a9e9ee | ||
|
|
0599c1710b | ||
|
|
abf218a9cd | ||
|
|
55f4f9aaeb | ||
|
|
82b7e1dbcb | ||
|
|
e8f8b0f8e5 | ||
|
|
7566d4fbab | ||
|
|
3a0d385119 | ||
|
|
a465afa83d | ||
|
|
185e90c40f | ||
|
|
e29c2d0260 | ||
|
|
acf6425ae9 | ||
|
|
5e8d49de0f | ||
|
|
1f9456a462 | ||
|
|
a7d8285c3a | ||
|
|
5f1dc4b851 | ||
|
|
b1c22949c5 | ||
|
|
29be175743 | ||
|
|
b6c5ba264b | ||
|
|
8e7e3c2b11 | ||
|
|
0e7df129d8 | ||
|
|
50709cbd21 | ||
|
|
fd6e8d8c5c | ||
|
|
2e7496130c | ||
|
|
9666ab5797 | ||
|
|
4c08ac7873 | ||
|
|
5435ec7545 | ||
|
|
8764d50179 | ||
|
|
62cdb8dc94 | ||
|
|
9918a1092f | ||
|
|
7d89511fda | ||
|
|
795b6d13d1 | ||
|
|
8328b6f657 | ||
|
|
9994e591bd | ||
|
|
b27a38e55e | ||
|
|
f6d747a5a0 | ||
|
|
b7da7574d1 | ||
|
|
dbad9585cd | ||
|
|
2d7a97bb94 | ||
|
|
da19da0360 | ||
|
|
ee7361ee2e | ||
|
|
6e3e09bed4 | ||
|
|
86762d2b40 | ||
|
|
ef12c5af99 | ||
|
|
933404b1dd | ||
|
|
ccec49e444 | ||
|
|
e5f1bf81f7 | ||
|
|
0e627f4f68 | ||
|
|
d33f7d2bf5 | ||
|
|
e07a019615 | ||
|
|
34ca3012e6 | ||
|
|
62634ca2da | ||
|
|
846c96e8d5 | ||
|
|
63775723c1 | ||
|
|
2f7d3e655a | ||
|
|
b19634d7e4 | ||
|
|
a92967a7c1 | ||
|
|
8915b88de5 | ||
|
|
7bca81464b | ||
|
|
b974ece24f | ||
|
|
b1c8e6ad59 | ||
|
|
64f7185e3a | ||
|
|
807cc9afc3 | ||
|
|
0adf306dd4 | ||
|
|
db0f602e86 | ||
|
|
17ec47f5c0 | ||
|
|
cf831d9cd3 | ||
|
|
5e3c633f74 | ||
|
|
4e4b27b6ab | ||
|
|
c0c9590904 | ||
|
|
24c9577e39 | ||
|
|
59ee0cfe88 | ||
|
|
1977b9b764 | ||
|
|
6f9d1fc14c | ||
|
|
8ac59ae2be | ||
|
|
46db37e06c | ||
|
|
9d1207b339 | ||
|
|
6e730cfad1 | ||
|
|
199b3345a0 | ||
|
|
b7f504b8a4 | ||
|
|
1b459b0560 | ||
|
|
40803a4dc1 | ||
|
|
6f22570648 | ||
|
|
8203547cfc | ||
|
|
dad160209e | ||
|
|
8faaaec710 | ||
|
|
012fba617d | ||
|
|
9ca495229b | ||
|
|
e63f624d3a | ||
|
|
e1dd413266 | ||
|
|
b9ef09dd58 | ||
|
|
990333e7ec | ||
|
|
ec9582f3f2 | ||
|
|
ea65386e15 | ||
|
|
a0fd4ad23f | ||
|
|
b6d7a95028 | ||
|
|
1d8f3cee62 | ||
|
|
5ba6e21967 | ||
|
|
52f7f6e6cf | ||
|
|
9fd5ec673b | ||
|
|
e905b3c963 | ||
|
|
f12370c348 | ||
|
|
b727e2a67a | ||
|
|
8e87319925 | ||
|
|
1ab29b1ab0 | ||
|
|
52d55e34e6 | ||
|
|
c79360f58b | ||
|
|
8057c826bc | ||
|
|
6f6138c500 | ||
|
|
903a18db1d | ||
|
|
0731f3f1a9 | ||
|
|
37047a39f9 | ||
|
|
91d0cbe892 | ||
|
|
b66431bc29 | ||
|
|
0e18b14087 | ||
|
|
31bd413166 | ||
|
|
95a6fce2b4 | ||
|
|
0b5472f9fb | ||
|
|
5280d28505 | ||
|
|
67a9898a99 | ||
|
|
fe8815f80f | ||
|
|
3a21fdc304 | ||
|
|
83d723eb79 | ||
|
|
6e771607c0 | ||
|
|
e73b220104 | ||
|
|
5c1fc43610 | ||
|
|
cfbd7e3bf5 | ||
|
|
c8ca1cfa3c | ||
|
|
5cfbb0a423 | ||
|
|
900ec143a8 | ||
|
|
7bda3d0f74 | ||
|
|
7650786fb5 | ||
|
|
ca60d08621 | ||
|
|
b34218c8c2 | ||
|
|
b14a59629c | ||
|
|
0914bf8cf0 | ||
|
|
7bdca83de3 | ||
|
|
846f03504e | ||
|
|
01e8fd0b07 | ||
|
|
7f301c44b7 | ||
|
|
51a25fdec9 | ||
|
|
2b681c37ac | ||
|
|
cb4ebfdbd2 | ||
|
|
206c85222c | ||
|
|
18071e038e | ||
|
|
39f7ce15ad | ||
|
|
e39b42bbd3 | ||
|
|
607d8f72e8 | ||
|
|
c483f75fb4 | ||
|
|
81f0175251 | ||
|
|
f753519729 | ||
|
|
f39693f97e | ||
|
|
f83ae0e39e | ||
|
|
521d371b5d | ||
|
|
b23d551d00 | ||
|
|
1b20cc6075 | ||
|
|
2043e12ac2 | ||
|
|
9461bc948f | ||
|
|
9740ab8bd6 | ||
|
|
6947a6b1d4 | ||
|
|
4da8036222 | ||
|
|
e6b4006c70 | ||
|
|
8f5f7f1baa | ||
|
|
573d3eea87 | ||
|
|
eb84eec0f4 | ||
|
|
d7a31088ba | ||
|
|
a028e04ab9 | ||
|
|
a0520536df | ||
|
|
af137fd5d3 | ||
|
|
f7bc9f01c9 | ||
|
|
e4ce1ffd85 | ||
|
|
2384b49156 | ||
|
|
f5e71f64ed | ||
|
|
927ef22cf8 | ||
|
|
b6eaec1278 | ||
|
|
c7d1eb71da | ||
|
|
7d41d267a3 | ||
|
|
0ead65ad2d | ||
|
|
8c5481a3d5 | ||
|
|
741258051e | ||
|
|
0f4fc8635b | ||
|
|
d02d3f72fe | ||
|
|
710b69fc75 | ||
|
|
4fae382ffd | ||
|
|
68b94a3188 | ||
|
|
8e04f83232 | ||
|
|
cc9fd9f8ce | ||
|
|
1e8fcf1344 | ||
|
|
809c8305b1 | ||
|
|
652c7e8f37 | ||
|
|
beebca98fe | ||
|
|
ce67abc32f | ||
|
|
52cc482521 | ||
|
|
5eacad444d | ||
|
|
e8155cbbeb | ||
|
|
663376e385 | ||
|
|
3c590994db | ||
|
|
14c8564893 | ||
|
|
91a37f8868 | ||
|
|
1a2ff884b3 | ||
|
|
0298719be0 | ||
|
|
d0746da5e2 | ||
|
|
5b1cf33b1b | ||
|
|
54a1bbd016 | ||
|
|
455cd5551b | ||
|
|
b3e1783658 | ||
|
|
906c83af83 | ||
|
|
f9900cc6fb | ||
|
|
8e20187d8c | ||
|
|
28dac7ff0e | ||
|
|
e385b3d377 | ||
|
|
7e5c68c553 | ||
|
|
39ad7bc741 | ||
|
|
c2f9aab068 | ||
|
|
7e105343e2 | ||
|
|
fe2215df00 | ||
|
|
640bbaabbf | ||
|
|
da2965cb4e | ||
|
|
94ba242c33 | ||
|
|
debd5a5c5e | ||
|
|
98bbb84a63 | ||
|
|
9d908a11ed | ||
|
|
4d599e2f9f | ||
|
|
d3b33e5512 | ||
|
|
c8487cc395 | ||
|
|
0b3b5f6174 |
No files matched your search
@@ -0,0 +1,3 @@
|
||||
.git/
|
||||
build/
|
||||
!build/zerotier
|
||||
Executable → Regular
+18
-102
@@ -1,60 +1,23 @@
|
||||
# Main binaries created in *nix builds
|
||||
/zerotier-one
|
||||
/zerotier-idtool
|
||||
/zerotier-cli
|
||||
/zerotier-selftest
|
||||
/zerotier
|
||||
/nltest
|
||||
|
||||
# OS-created garbage files from various platforms
|
||||
/build
|
||||
/cmake-build-debug
|
||||
/cmake-build-release
|
||||
/core/version.h
|
||||
/.idea
|
||||
/.ide-*
|
||||
.DS_Store
|
||||
.Trashes
|
||||
*.swp
|
||||
._*
|
||||
*~
|
||||
*~.nib
|
||||
*.secret
|
||||
.Apple*
|
||||
Thumbs.db
|
||||
@eaDir
|
||||
._*
|
||||
|
||||
# Windows build droppings
|
||||
/windows/ZeroTierOne.sdf
|
||||
/windows/ZeroTierOne.v11.suo
|
||||
/windows/x64
|
||||
/windows/Win32
|
||||
/windows/*/x64
|
||||
/windows/*/Win32
|
||||
/windows/ZeroTierOne/Release
|
||||
/windows/ZeroTierOneService/obj
|
||||
/windows/ZeroTierOneService/bin
|
||||
/windows/Build
|
||||
/windows/Debug
|
||||
/windows/Release
|
||||
/windows/WebUIWrapper/bin
|
||||
/windows/WebUIWrapper/obj
|
||||
/windows/lib
|
||||
/ext/installfiles/windows/ZeroTier One-SetupFiles
|
||||
/ext/installfiles/windows/Prerequisites
|
||||
/ext/installfiles/windows/*-cache
|
||||
/ZeroTier One.msi
|
||||
/windows/.vs
|
||||
*.vcxproj.backup
|
||||
/windows/TapDriver6/Win7Debug
|
||||
/windows/TapDriver6/win7Release
|
||||
/windows/*.db
|
||||
/windows/*.opendb
|
||||
enc_temp_folder
|
||||
/windows/copyutil/bin
|
||||
/windows/copyutil/obj
|
||||
|
||||
# *nix/Mac build droppings
|
||||
/build-*
|
||||
/ZeroTierOneInstaller-*
|
||||
/examples/docker/zerotier-one
|
||||
/examples/docker/test-*.env
|
||||
/world/mkworld
|
||||
/world/*.c25519
|
||||
zt1-src.tar.gz
|
||||
/MacEthernetTapAgent
|
||||
|
||||
# Miscellaneous temporaries, build files, etc.
|
||||
.vscode
|
||||
__pycache__
|
||||
*.log
|
||||
*.bak
|
||||
*.opensdf
|
||||
*.user
|
||||
*.cache
|
||||
@@ -63,10 +26,6 @@ zt1-src.tar.gz
|
||||
*.pid
|
||||
*.pkg
|
||||
*.o
|
||||
/*.a
|
||||
*.dylib
|
||||
*.so
|
||||
*.so.*
|
||||
*.o-*
|
||||
*.core
|
||||
*.deb
|
||||
@@ -75,49 +34,6 @@ zt1-src.tar.gz
|
||||
*.tmp
|
||||
.depend
|
||||
node_modules
|
||||
zt1_update_*
|
||||
debian/files
|
||||
debian/zerotier-one
|
||||
debian/zerotier-one*.debhelper
|
||||
debian/*.log
|
||||
debian/zerotier-one.substvars
|
||||
root-watcher/config.json
|
||||
|
||||
# Java/Android/JNI build droppings
|
||||
java/obj/
|
||||
java/libs/
|
||||
java/bin/
|
||||
java/classes/
|
||||
java/doc/
|
||||
java/build_win64/
|
||||
java/build_win32/
|
||||
/java/mac32_64/
|
||||
windows/WinUI/obj/
|
||||
windows/WinUI/bin/
|
||||
windows/ZeroTierOne/Debug/
|
||||
/ext/installfiles/windows/chocolatey/zerotier-one/*.nupkg
|
||||
|
||||
# Miscellaneous mac/Xcode droppings
|
||||
.DS_Store
|
||||
.Trashes
|
||||
*.swp
|
||||
*~.nib
|
||||
DerivedData/
|
||||
build/
|
||||
*.pbxuser
|
||||
*.mode1v3
|
||||
*.mode2v3
|
||||
*.perspectivev3
|
||||
!default.pbxuser
|
||||
!default.mode1v3
|
||||
!default.mode2v3
|
||||
!default.perspectivev3
|
||||
*.xccheckout
|
||||
xcuserdata/
|
||||
ext/librethinkdbxx/build
|
||||
.vscode
|
||||
__pycache__
|
||||
*~
|
||||
attic/world/*.c25519
|
||||
attic/world/mkworld
|
||||
workspace/
|
||||
*.vcxproj.backup
|
||||
/*.db
|
||||
/*.opendb
|
||||
+7
-21
@@ -9,7 +9,7 @@
|
||||
* 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>
|
||||
* ZeroTier SDK / libzt<br>
|
||||
Joseph Henry / joseph.henry@zerotier.com
|
||||
|
||||
## Third Party Contributors
|
||||
@@ -32,44 +32,30 @@ ZeroTier includes the following third party code, either in ext/ or incorporated
|
||||
|
||||
* LZ4 compression algorithm by Yann Collet
|
||||
|
||||
* Files: node/Packet.cpp (bundled within anonymous namespace)
|
||||
* Files: node/LZ4.cpp
|
||||
* 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
|
||||
* License: BSD 2-clause
|
||||
|
||||
* C++11 json (nlohmann/json) by Niels Lohmann
|
||||
|
||||
* Files: ext/json/*
|
||||
* Home page: https://github.com/nlohmann/json
|
||||
* License grant: MIT
|
||||
* License: 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)
|
||||
* License: GNU GPL v2
|
||||
|
||||
* 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
|
||||
* License: public domain
|
||||
|
||||
* cpp-httplib by yhirose
|
||||
|
||||
* Files: ext/cpp-httplib/*
|
||||
* Home page: https://github.com/yhirose/cpp-httplib
|
||||
* License grant: MIT
|
||||
* License: MIT
|
||||
+342
-8
@@ -1,12 +1,346 @@
|
||||
# CMake build script for libzerotiercore.a
|
||||
cmake_minimum_required (VERSION 3.8)
|
||||
|
||||
cmake_minimum_required (VERSION 2.8)
|
||||
project (zerotiercore)
|
||||
cmake_policy(SET CMP0048 NEW)
|
||||
|
||||
set (PROJ_DIR ${PROJECT_SOURCE_DIR})
|
||||
set (ZT_DEFS -std=c++11)
|
||||
if(${CMAKE_VERSION} VERSION_LESS 3.15)
|
||||
cmake_policy(VERSION ${CMAKE_MAJOR_VERSION}.${CMAKE_MINOR_VERSION})
|
||||
else()
|
||||
cmake_policy(VERSION 3.15)
|
||||
endif()
|
||||
|
||||
file(GLOB core_src_glob ${PROJ_DIR}/node/*.cpp)
|
||||
add_library(zerotiercore STATIC ${core_src_glob})
|
||||
set(ZEROTIER_VERSION_MAJOR 1 CACHE INTERNAL "")
|
||||
set(ZEROTIER_VERSION_MINOR 9 CACHE INTERNAL "")
|
||||
set(ZEROTIER_VERSION_REVISION 0 CACHE INTERNAL "")
|
||||
set(ZEROTIER_VERSION_BUILD 0 CACHE INTERNAL "")
|
||||
|
||||
target_compile_options(zerotiercore PRIVATE ${ZT_DEFS})
|
||||
project(zerotier
|
||||
VERSION ${ZEROTIER_VERSION_MAJOR}.${ZEROTIER_VERSION_MINOR}.${ZEROTIER_VERSION_REVISION}.${ZEROTIER_VERSION_BUILD}
|
||||
DESCRIPTION "ZeroTier Network Hypervisor"
|
||||
LANGUAGES CXX C)
|
||||
|
||||
if(NOT PACKAGE_STATIC)
|
||||
|
||||
find_program(
|
||||
GO go
|
||||
HINTS "/usr/local/go/bin" "/usr/bin" "/usr/local/bin" "C:/go/bin"
|
||||
)
|
||||
if(NOT GO)
|
||||
message(FATAL_ERROR "Golang not found")
|
||||
else(NOT GO)
|
||||
message(STATUS "Found Golang at ${GO}")
|
||||
endif(NOT GO)
|
||||
|
||||
set(default_build_type "Release")
|
||||
|
||||
if(WIN32)
|
||||
set(CMAKE_CXX_STANDARD 17)
|
||||
set(CMAKE_SYSTEM_VERSION "7" CACHE STRING INTERNAL FORCE)
|
||||
else(WIN32)
|
||||
if(APPLE)
|
||||
set(CMAKE_CXX_STANDARD 17)
|
||||
else(APPLE)
|
||||
set(CMAKE_CXX_STANDARD 11)
|
||||
endif(APPLE)
|
||||
endif(WIN32)
|
||||
|
||||
if(NOT CMAKE_BUILD_TYPE AND NOT CMAKE_CONFIGURATION_TYPES)
|
||||
message(STATUS "Setting build type to '${default_build_type}' as none was specified.")
|
||||
set(CMAKE_BUILD_TYPE "${default_build_type}" CACHE STRING "Choose the type of build." FORCE)
|
||||
set_property(CACHE CMAKE_BUILD_TYPE PROPERTY STRINGS "Debug" "Release" "MinSizeRel" "RelWithDebInfo")
|
||||
endif()
|
||||
|
||||
option(BUILD_CENTRAL_CONTROLLER "Build ZeroTier Central Controller" OFF)
|
||||
if(BUILD_CENTRAL_CONTROLLER)
|
||||
find_package(PkgConfig REQUIRED)
|
||||
if(APPLE)
|
||||
set(CMAKE_PREFIX_PATH
|
||||
${CMAKE_PREFIX_PATH}
|
||||
/usr/local/opt/libpq
|
||||
/usr/local/lib
|
||||
)
|
||||
endif(APPLE)
|
||||
find_package(PostgreSQL REQUIRED)
|
||||
|
||||
pkg_check_modules(hiredis REQUIRED IMPORTED_TARGET hiredis)
|
||||
|
||||
add_subdirectory(controller/thirdparty/redis-plus-plus-1.1.1)
|
||||
set(redispp_INCLUDE_DIRS ${CMAKE_CURRENT_SOURCE_DIR}/controller/thirdparty/redis-plus-plus-1.1.1/src/sw)
|
||||
set(redispp_STATIC_LIB redispp_static)
|
||||
endif(BUILD_CENTRAL_CONTROLLER)
|
||||
|
||||
if(CMAKE_BUILD_TYPE STREQUAL "Debug")
|
||||
add_definitions(-DZT_DEBUG)
|
||||
endif(CMAKE_BUILD_TYPE STREQUAL "Debug")
|
||||
|
||||
if(WIN32)
|
||||
|
||||
message("++ Setting Windows Compiler Flags ${CMAKE_BUILD_TYPE}")
|
||||
|
||||
add_definitions(-DNOMINMAX)
|
||||
add_compile_options(
|
||||
-Wall
|
||||
-Wno-deprecated
|
||||
-Wno-unused-function
|
||||
-Wno-format
|
||||
$<$<CONFIG:DEBUG>:-g>
|
||||
$<$<CONFIG:DEBUG>:-O0>
|
||||
$<$<CONFIG:RELEASE>:-O3>
|
||||
$<$<CONFIG:RELEASE>:-ffast-math>
|
||||
$<$<CONFIG:RELWITHDEBINFO>:-O3>
|
||||
$<$<CONFIG:RELWITHDEBINFO>:-g>
|
||||
)
|
||||
|
||||
set(GOFLAGS
|
||||
-a
|
||||
-trimpath
|
||||
)
|
||||
|
||||
if(BUILD_32BIT)
|
||||
set(CMAKE_SYSTEM_PROCESSOR "x86" CACHE STRING "system processor")
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -m32" CACHE STRING "c++ flags")
|
||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -m32" CACHE STRING "c flags")
|
||||
set(GOARCH "GOARCH=386" CACHE STRING "go architecture")
|
||||
add_compile_options(
|
||||
-m32
|
||||
)
|
||||
add_link_options(
|
||||
-m32
|
||||
)
|
||||
endif(BUILD_32BIT)
|
||||
|
||||
else(WIN32)
|
||||
|
||||
set(GOFLAGS
|
||||
-trimpath
|
||||
-buildmode=pie
|
||||
)
|
||||
|
||||
if(APPLE)
|
||||
|
||||
message("++ Setting MacOS Compiler Flags ${CMAKE_BUILD_TYPE}")
|
||||
|
||||
set(MACOS_VERSION_MIN "10.12")
|
||||
|
||||
add_compile_options(
|
||||
-Wall
|
||||
-Wno-deprecated
|
||||
-Wno-unused-function
|
||||
-mmacosx-version-min=${MACOS_VERSION_MIN}
|
||||
$<$<CONFIG:DEBUG>:-g>
|
||||
$<$<CONFIG:DEBUG>:-O0>
|
||||
$<$<CONFIG:RELEASE>:-Ofast>
|
||||
$<$<CONFIG:RELEASE>:-ffast-math>
|
||||
$<$<CONFIG:RELEASE>:-fPIE>
|
||||
$<$<CONFIG:RELEASE>:-flto>
|
||||
$<$<CONFIG:RELWITHDEBINFO>:-O1>
|
||||
$<$<CONFIG:RELWITHDEBINFO>:-fPIE>
|
||||
$<$<CONFIG:RELWITHDEBINFO>:-g>
|
||||
)
|
||||
|
||||
add_link_options(
|
||||
-mmacosx-version-min=${MACOS_VERSION_MIN}
|
||||
$<$<CONFIG:RELEASE>:-flto>
|
||||
)
|
||||
|
||||
set(GOFLAGS
|
||||
${GOFLAGS}
|
||||
-a
|
||||
-ldflags '-w -extldflags \"-Wl,-undefined -Wl,dynamic_lookup\"'
|
||||
)
|
||||
|
||||
else(APPLE)
|
||||
|
||||
message("++ Setting Linux/BSD/Posix Compiler Flags (${CMAKE_BUILD_TYPE})")
|
||||
|
||||
add_compile_options(
|
||||
-Wall
|
||||
-Wno-deprecated
|
||||
-Wno-unused-function
|
||||
-Wno-format
|
||||
$<$<CONFIG:DEBUG>:-g>
|
||||
$<$<CONFIG:DEBUG>:-O0>
|
||||
$<$<CONFIG:RELEASE>:-O3>
|
||||
$<$<CONFIG:RELEASE>:-ffast-math>
|
||||
$<$<CONFIG:RELEASE>:-fPIE>
|
||||
$<$<CONFIG:RELWITHDEBINFO>:-O3>
|
||||
$<$<CONFIG:RELWITHDEBINFO>:-fPIE>
|
||||
$<$<CONFIG:RELWITHDEBINFO>:-g>
|
||||
)
|
||||
|
||||
option(BUILD_32BIT "Force building as 32-bit binary" OFF)
|
||||
option(BUILD_STATIC "Build statically linked executable" OFF)
|
||||
option(BUILD_ARM_V5 "Build ARMv5" OFF)
|
||||
option(BUILD_ARM_V6 "Build ARMv6" OFF)
|
||||
|
||||
if(BUILD_ARM_V5 AND BUILD_ARM_V6)
|
||||
message(FATAL_ERROR "BUILD_ARM_V5 and BUILD_ARM_V6 are mutually exclusive!")
|
||||
endif(BUILD_ARM_V5 AND BUILD_ARM_V6)
|
||||
|
||||
if(BUILD_32BIT)
|
||||
set(CMAKE_SYSTEM_PROCESSOR "x86" CACHE STRING "system processor")
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -m32" CACHE STRING "c++ flags")
|
||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -m32" CACHE STRING "c flags")
|
||||
set(GOARCH "GOARCH=386" CACHE STRING "go architecture")
|
||||
add_compile_options(
|
||||
-m32
|
||||
)
|
||||
endif(BUILD_32BIT)
|
||||
|
||||
if(BUILD_STATIC)
|
||||
add_link_options(
|
||||
-static
|
||||
)
|
||||
set(CMAKE_EXE_LINKER_FLAGS "-static ${CMAKE_EXE_LINKER_FLAGS}")
|
||||
set(GOFLAGS
|
||||
${GOFLAGS}
|
||||
-a
|
||||
-tags osusergo,netgo
|
||||
-ldflags '-w -extldflags \"-static -Wl,-unresolved-symbols=ignore-all\"'
|
||||
)
|
||||
else(BUILD_STATIC)
|
||||
set(GOFLAGS
|
||||
${GOFLAGS}
|
||||
-a
|
||||
-ldflags '-w -extldflags \"-Wl,-unresolved-symbols=ignore-all\"'
|
||||
)
|
||||
endif(BUILD_STATIC)
|
||||
|
||||
if(BUILD_ARM_V5)
|
||||
set(GOARM "GOARM=5")
|
||||
endif(BUILD_ARM_V5)
|
||||
|
||||
if(BUILD_ARM_V6)
|
||||
set(GOARM "GOARM=6")
|
||||
endif(BUILD_ARM_V6)
|
||||
|
||||
endif(APPLE)
|
||||
endif(WIN32)
|
||||
|
||||
if (
|
||||
CMAKE_SYSTEM_PROCESSOR MATCHES "x86_64" OR
|
||||
CMAKE_SYSTEM_PROCESSOR MATCHES "amd64" OR
|
||||
CMAKE_SYSTEM_PROCESSOR MATCHES "AMD64" OR
|
||||
CMAKE_SYSTEM_PROCESSOR MATCHES "X86_64" OR
|
||||
CMAKE_SYSTEM_PROCESSOR MATCHES "x64" OR
|
||||
CMAKE_SYSTEM_PROCESSOR MATCHES "X64"
|
||||
)
|
||||
message("++ Adding flags for processor ${CMAKE_SYSTEM_PROCESSOR}")
|
||||
add_compile_options(-maes -mrdrnd -mpclmul -msse -msse2)
|
||||
endif()
|
||||
|
||||
if (
|
||||
CMAKE_SYSTEM_PROCESSOR MATCHES "aarch64" OR
|
||||
CMAKE_SYSTEM_PROCESSOR MATCHES "arm64" OR
|
||||
CMAKE_SYSTEM_PROCESSOR MATCHES "ARM64" OR
|
||||
CMAKE_SYSTEM_PROCESSOR MATCHES "AARCH64"
|
||||
)
|
||||
message("++ Adding flags for processor ${CMAKE_SYSTEM_PROCESSOR}")
|
||||
add_compile_options(-march=armv8-a+aes+crypto -mtune=generic -mstrict-align)
|
||||
endif()
|
||||
|
||||
set(GO_BUILD_TAGS)
|
||||
|
||||
if(BUILD_CENTRAL_CONTROLLER)
|
||||
add_definitions(-DZT_CONTROLLER_USE_LIBPQ=1)
|
||||
set(GO_BUILD_TAGS -tags central)
|
||||
endif(BUILD_CENTRAL_CONTROLLER)
|
||||
|
||||
add_subdirectory(core)
|
||||
add_subdirectory(controller)
|
||||
add_subdirectory(osdep)
|
||||
add_subdirectory(serviceiocore)
|
||||
|
||||
file(GLOB go_src
|
||||
${CMAKE_SOURCE_DIR}/cmd/*.go
|
||||
${CMAKE_SOURCE_DIR}/cmd/cmd/*.go
|
||||
${CMAKE_SOURCE_DIR}/pkg/zerotier/*.go
|
||||
)
|
||||
file(GLOB go_zt_service_tests_cmd_src
|
||||
${CMAKE_SOURCE_DIR}/cmd/zt_service_tests/*.go
|
||||
)
|
||||
|
||||
if(WIN32)
|
||||
set(GO_EXE_NAME "zerotier.exe")
|
||||
set(GO_SERVICE_TESTS_EXE_NAME "zt_service_tests.exe")
|
||||
set(GO_EXTRA_LIBRARIES "-lstdc++ -lwsock32 -lws2_32 -liphlpapi -lole32 -loleaut32 -lrpcrt4 -luuid")
|
||||
else(WIN32)
|
||||
set(GO_EXE_NAME "zerotier")
|
||||
set(GO_SERVICE_TESTS_EXE_NAME "zt_service_tests")
|
||||
if(CMAKE_SYSTEM_NAME MATCHES "Linux")
|
||||
set(GO_EXTRA_LIBRARIES "-lstdc++")
|
||||
if(BUILD_ARM_V5)
|
||||
set(GO_EXTRA_LIBRARIES
|
||||
${GO_EXTRA_LIBRARIES}
|
||||
"-latomic"
|
||||
)
|
||||
endif(BUILD_ARM_V5)
|
||||
else()
|
||||
set(GO_EXTRA_LIBRARIES "-lc++" "-lm")
|
||||
endif()
|
||||
endif(WIN32)
|
||||
|
||||
add_custom_target(
|
||||
zt_service_tests ALL
|
||||
BYPRODUCTS ${CMAKE_BINARY_DIR}/zt_service_tests
|
||||
SOURCES ${go_src} ${go_zt_service_tests_cmd_src}
|
||||
COMMAND ${CMAKE_COMMAND} -E env ${GOARCH} ${GOARM} CGO_ENABLED=1 CGO_CFLAGS=\"-O3\" CGO_LDFLAGS=\"$<TARGET_FILE:zt_core> $<TARGET_FILE:zt_controller> $<TARGET_FILE:zt_service_io_core> $<TARGET_FILE:zt_osdep> ${GO_EXTRA_LIBRARIES}\" ${GO} build -mod=vendor ${GOFLAGS} -o ${CMAKE_BINARY_DIR}/${GO_SERVICE_TESTS_EXE_NAME} ${go_zt_service_tests_cmd_src}
|
||||
COMMENT "Compiling zt_service_tests (Go/cgo self-tests)..."
|
||||
)
|
||||
add_dependencies(zt_service_tests zt_osdep zt_core zt_controller zt_service_io_core)
|
||||
|
||||
add_custom_target(
|
||||
zerotier ALL
|
||||
BYPRODUCTS ${CMAKE_BINARY_DIR}/zerotier
|
||||
SOURCES ${go_src}
|
||||
COMMAND ${CMAKE_COMMAND} -E env ${GOARCH} ${GOARM} CGO_ENABLED=1 CGO_CFLAGS=\"-O3\" CGO_LDFLAGS=\"$<TARGET_FILE:zt_core> $<TARGET_FILE:zt_controller> $<TARGET_FILE:zt_service_io_core> $<TARGET_FILE:zt_osdep> ${GO_EXTRA_LIBRARIES}\" ${GO} build -mod=vendor ${GOFLAGS} -o ${CMAKE_BINARY_DIR}/${GO_EXE_NAME} ${CMAKE_SOURCE_DIR}/cmd/zerotier/zerotier.go
|
||||
COMMENT "Compiling Go Code..."
|
||||
)
|
||||
add_dependencies(zerotier zt_osdep zt_core zt_controller zt_service_io_core)
|
||||
|
||||
install(PROGRAMS ${CMAKE_CURRENT_BINARY_DIR}/zerotier DESTINATION bin)
|
||||
|
||||
else(NOT PACKAGE_STATIC)
|
||||
|
||||
if(BUILD_32BIT)
|
||||
set(CMAKE_SYSTEM_PROCESSOR "x86" CACHE STRING "system processor")
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -m32" CACHE STRING "c++ flags")
|
||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -m32" CACHE STRING "c flags")
|
||||
add_compile_options(
|
||||
-m32
|
||||
)
|
||||
endif(BUILD_32BIT)
|
||||
|
||||
set(STATIC_BINARY ${CMAKE_BINARY_DIR}/zerotier)
|
||||
set(IMPORTED_LOCATION ${CMAKE_BINARY_DIR})
|
||||
add_executable(zerotier IMPORTED GLOBAL)
|
||||
install(PROGRAMS ${STATIC_BINARY} DESTINATION bin)
|
||||
|
||||
endif(NOT PACKAGE_STATIC)
|
||||
|
||||
# Linux packaging
|
||||
|
||||
if("${CMAKE_SYSTEM_NAME}" EQUAL "Linux")
|
||||
if(IS_DIRECTORY /lib/systemd/system)
|
||||
install(
|
||||
FILES ${CMAKE_CURRENT_SOURCE_DIR}/packaging/debian/zerotier.service
|
||||
DESTINATION /lib/systemd/system
|
||||
)
|
||||
elseif(IS_DIRECTORY /usr/lib/systemd/system)
|
||||
install(
|
||||
FILES ${CMAKE_CURRENT_SOURCE_DIR}/packaging/debian/zerotier.service
|
||||
DESTINATION /usr/lib/systemd/system
|
||||
)
|
||||
else()
|
||||
install(
|
||||
FILES ${CMAKE_CURRENT_SOURCE_DIR}/packaging/debian/zerotier.init
|
||||
DESTINATION /etc/init.d
|
||||
)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
if("${ZT_PACKAGE_FORMAT}" MATCHES "DEB")
|
||||
include(packaging/debian.cmake)
|
||||
elseif("${ZT_PACKAGE_FORMAT}" MATCHES "RPM")
|
||||
include(packaging/rpm.cmake)
|
||||
else()
|
||||
endif()
|
||||
@@ -1,5 +1,5 @@
|
||||
ZeroTier One, an endpoint server for the ZeroTier virtual network layer.
|
||||
Copyright © 2011–2019 ZeroTier, Inc.
|
||||
Copyright © 2013–2020 ZeroTier, Inc.
|
||||
|
||||
ZeroTier is released under the terms of the BSL version 1.1. See the
|
||||
file LICENSE.txt for details.
|
||||
|
||||
Vendored
+221
-84
@@ -7,6 +7,9 @@ pipeline {
|
||||
parameters {
|
||||
booleanParam(name: "BUILD_ALL", defaultValue: false, description: "Build all supported platform/architecture combos. Defaults to x86/x64 only")
|
||||
}
|
||||
environment {
|
||||
PATH = "/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/local/go/bin:/home/jenkins-build/go/bin"
|
||||
}
|
||||
|
||||
agent none
|
||||
|
||||
@@ -18,7 +21,10 @@ pipeline {
|
||||
tasks << buildStaticBinaries()
|
||||
tasks << buildDebianNative()
|
||||
tasks << buildCentosNative()
|
||||
|
||||
tasks << buildMacOS()
|
||||
tasks << buildWindows()
|
||||
tasks << buildFreeBSD()
|
||||
|
||||
parallel tasks
|
||||
}
|
||||
}
|
||||
@@ -33,12 +39,81 @@ pipeline {
|
||||
}
|
||||
}
|
||||
|
||||
def buildMacOS() {
|
||||
def tasks = [:]
|
||||
tasks << getTasks(['mac'],['amd64'], {unused1, unused2 ->
|
||||
def myNode = {
|
||||
env.PATH = env.PATH + ":/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/local/go/bin:/home/jenkins-build/go/bin"
|
||||
node ('mac') {
|
||||
dir("build") {
|
||||
checkout scm
|
||||
sh 'make'
|
||||
}
|
||||
cleanWs deleteDirs: true, disableDeferredWipeout: true, notFailBuild: true
|
||||
}
|
||||
}
|
||||
return myNode
|
||||
})
|
||||
return tasks
|
||||
}
|
||||
|
||||
def buildWindows() {
|
||||
def tasks = [:]
|
||||
tasks << getTasks(['windows'], ['amd64', 'i386'], { unused1, platform ->
|
||||
def myNode = {
|
||||
node ('windows') {
|
||||
env.SHELL = 'C:/Windows/System32/cmd.exe'
|
||||
dir ("build") {
|
||||
checkout scm
|
||||
|
||||
dir ("build") {
|
||||
withEnv(["PATH=C:\\TDM-GCC-64\\bin;C:\\WINDOWS;C:\\Windows\\system32;C:\\CMake\\bin;C:\\Go\\bin"]) {
|
||||
def cmakeFlags = ""
|
||||
if (platform == "i386") {
|
||||
cmakeFlags = '-DBUILD_32BIT=1'
|
||||
}
|
||||
bat """
|
||||
cmake -G"MinGW Makefiles" -DCMAKE_BUILD_TYPE=Release ${cmakeFlags} ..
|
||||
mingw32-make -j8
|
||||
"""
|
||||
}
|
||||
}
|
||||
cleanWs deleteDirs: true, disableDeferredWipeout: true, notFailBuild: true
|
||||
}
|
||||
}
|
||||
}
|
||||
return myNode
|
||||
})
|
||||
|
||||
return tasks
|
||||
}
|
||||
|
||||
def buildFreeBSD() {
|
||||
def tasks = [:]
|
||||
tasks << getTasks(['freebsd12'], ['amd64'], { unused1, unused2 ->
|
||||
def myNode = {
|
||||
node ('freebsd12') {
|
||||
dir('build') {
|
||||
checkout scm
|
||||
sh 'make setup'
|
||||
dir('build') {
|
||||
sh 'make -j4'
|
||||
}
|
||||
}
|
||||
cleanWs deleteDirs: true, disableDeferredWipeout: true, notFailBuild: true
|
||||
}
|
||||
}
|
||||
return myNode
|
||||
})
|
||||
return tasks
|
||||
}
|
||||
|
||||
def buildStaticBinaries() {
|
||||
def tasks = [:]
|
||||
def dist = ["alpine"]
|
||||
def archs = []
|
||||
if (params.BUILD_ALL == true) {
|
||||
archs = ["arm64", "amd64", "i386", "armhf", "armel", "ppc64le", "s390x"]
|
||||
archs = ["arm64", "amd64", "i386", "armhf", "ppc64le", "s390x"]
|
||||
} else {
|
||||
archs = ["amd64", "i386"]
|
||||
}
|
||||
@@ -46,17 +121,26 @@ def buildStaticBinaries() {
|
||||
tasks << getTasks(dist, archs, { distro, platform ->
|
||||
def myNode = {
|
||||
node ('linux-build') {
|
||||
env.PATH = "/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/local/go/bin:/home/jenkins-build/go/bin"
|
||||
dir ("build") {
|
||||
checkout scm
|
||||
}
|
||||
sh "echo ${distro}-${platform}"
|
||||
def runtime = docker.image("ztbuild/${distro}-${platform}:latest")
|
||||
runtime.inside {
|
||||
dir("build") {
|
||||
sh 'make -j8 ZT_STATIC=1 all'
|
||||
sh "file ./zerotier-one"
|
||||
sh "mv zerotier-one zerotier-one-static-${platform}"
|
||||
stash includes: 'zerotier-one-static-*', name: "static-${platform}"
|
||||
|
||||
def cmakeFlags = 'CMAKE_ARGS="-DBUILD_STATIC=1"'
|
||||
if (platform == "i386") {
|
||||
cmakeFlags = 'CMAKE_ARGS="-DBUILD_STATIC=1"'
|
||||
} else if (platform == "armhf") {
|
||||
cmakeFlags = 'CMAKE_ARGS="-DBUILD_STATIC=1 -DBUILD_ARM_V6=1"'
|
||||
}
|
||||
|
||||
sh "${cmakeFlags} make"
|
||||
dir("build") {
|
||||
sh "mv zerotier zerotier-static-${platform}"
|
||||
stash includes: 'zerotier-static-*', name: "static-${platform}"
|
||||
}
|
||||
}
|
||||
cleanWs deleteDirs: true, disableDeferredWipeout: true, notFailBuild: true
|
||||
}
|
||||
@@ -82,37 +166,13 @@ def getTasks(axisDistro, axisPlatform, task) {
|
||||
|
||||
def packageStatic() {
|
||||
def tasks = [:]
|
||||
|
||||
def centos6 = ["centos6"]
|
||||
def centos6Arch = ["i386", "amd64"]
|
||||
tasks << getTasks(centos6, centos6Arch, { distro, arch ->
|
||||
def myNode = {
|
||||
node ('linux-build') {
|
||||
dir ("build") {
|
||||
checkout scm
|
||||
}
|
||||
def runtime = docker.image("ztbuild/${distro}-${arch}:latest")
|
||||
runtime.inside {
|
||||
dir("build") {
|
||||
unstash "static-${arch}"
|
||||
sh "mv zerotier-one-static-${arch} zerotier-one && chmod +x zerotier-one"
|
||||
sh "make redhat"
|
||||
sh "mkdir -p ${distro}"
|
||||
sh "cp -av `find ~/rpmbuild/ -type f -name \"*.rpm\"` ${distro}/"
|
||||
archiveArtifacts artifacts: "${distro}/*.rpm", onlyIfSuccessful: true
|
||||
}
|
||||
}
|
||||
cleanWs deleteDirs: true, disableDeferredWipeout: true, notFailBuild: true
|
||||
}
|
||||
}
|
||||
return myNode
|
||||
})
|
||||
|
||||
|
||||
def centos7 = ["centos7"]
|
||||
def centos7Arch = ["i386"]
|
||||
tasks << getTasks(centos7, centos7Arch, { distro, arch ->
|
||||
def myNode = {
|
||||
node ('linux-build') {
|
||||
env.PATH = env.PATH + ":/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/local/go/bin:/home/jenkins-build/go/bin"
|
||||
dir ("build") {
|
||||
checkout scm
|
||||
}
|
||||
@@ -120,10 +180,14 @@ def packageStatic() {
|
||||
runtime.inside {
|
||||
dir("build") {
|
||||
unstash "static-${arch}"
|
||||
sh "mv zerotier-one-static-${arch} zerotier-one && chmod +x zerotier-one"
|
||||
sh "make redhat"
|
||||
sh "mkdir -p build"
|
||||
sh "mv zerotier-static-${arch} build/zerotier && chmod +x build/zerotier"
|
||||
sh 'CMAKE_ARGS="-DBUILD_32BIT=1 -DPACKAGE_STATIC=1 -DZT_PACKAGE_FORMAT=RPM" make setup'
|
||||
dir("build") {
|
||||
sh 'make package -j4 VERBOSE=1'
|
||||
}
|
||||
sh "mkdir -p ${distro}"
|
||||
sh "cp -av `find ~/rpmbuild/ -type f -name \"*.rpm\"` ${distro}/"
|
||||
sh "cp -av build/*.rpm ${distro}/"
|
||||
archiveArtifacts artifacts: "${distro}/*.rpm", onlyIfSuccessful: true
|
||||
}
|
||||
}
|
||||
@@ -134,22 +198,31 @@ def packageStatic() {
|
||||
})
|
||||
|
||||
if (params.BUILD_ALL == true) {
|
||||
def clefos7 = ["clefos"]
|
||||
def clefos7Arch = ["s390x"]
|
||||
tasks << getTasks(clefos7, clefos7Arch, { distro, arch ->
|
||||
def s390xStatics = ["clefos", "debian-buster", "debian-sid", "debian-bullseye", "debian-stretch", "ubuntu-bionic", "ubuntu-eoan", "ubuntu-focal"]
|
||||
def s390x = ["s390x"]
|
||||
tasks << getTasks(s390xStatics, s390x , { distro, arch ->
|
||||
def myNode = {
|
||||
node ('linux-build') {
|
||||
env.PATH = env.PATH + ":/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/local/go/bin:/home/jenkins-build/go/bin"
|
||||
dir ("build") {
|
||||
checkout scm
|
||||
}
|
||||
def runtime = docker.image("ztbuild/${distro}-${arch}:latest")
|
||||
def pkgFormat = "DEB"
|
||||
if (distro == "clefos") {
|
||||
pkgFormat = "RPM"
|
||||
}
|
||||
runtime.inside {
|
||||
dir("build/") {
|
||||
unstash "static-${arch}"
|
||||
sh "mv zerotier-one-static-${arch} zerotier-one && chmod +x zerotier-one"
|
||||
sh "make redhat"
|
||||
sh "mkdir -p build"
|
||||
sh "mv zerotier-static-${arch} build/zerotier && chmod +x build/zerotier"
|
||||
sh "CMAKE_ARGS=\"-DPACKAGE_STATIC=1 -DZT_PACKAGE_FORMAT=${pkgFormat}\" make setup"
|
||||
dir("build") {
|
||||
sh 'make package -j4 VERBOSE=1'
|
||||
}
|
||||
sh "mkdir -p ${distro}"
|
||||
sh "cp -av `find ~/rpmbuild/ -type f -name \"*.rpm\"` ${distro}/"
|
||||
sh "cp -av build/*.rpm ${distro}/"
|
||||
archiveArtifacts artifacts: "${distro}/*.rpm", onlyIfSuccessful: true
|
||||
}
|
||||
}
|
||||
@@ -163,30 +236,40 @@ def packageStatic() {
|
||||
def debianJessie = ["debian-jessie"]
|
||||
def debianJessieArchs = []
|
||||
if (params.BUILD_ALL == true) {
|
||||
debianJessieArch = ["armhf", "armel", "amd64", "i386"]
|
||||
debianJessieArch = ["armhf", "amd64", "i386"]
|
||||
} else {
|
||||
debianJessieArch = ["amd64", "i386"]
|
||||
}
|
||||
tasks << getTasks(debianJessie, debianJessieArch, { distro, arch ->
|
||||
def myNode = {
|
||||
node ('linux-build') {
|
||||
env.PATH = env.PATH + ":/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/local/go/bin:/home/jenkins-build/go/bin"
|
||||
dir ("build") {
|
||||
checkout scm
|
||||
}
|
||||
def runtime = docker.image("ztbuild/${distro}-${arch}:latest")
|
||||
runtime.inside {
|
||||
sh "ls -la ."
|
||||
dir('build/') {
|
||||
sh "ls -la ."
|
||||
def cmakeFlags = 'CMAKE_ARGS="-DPACKAGE_STATIC=1 -DZT_PACKAGE_FORMAT=DEB"'
|
||||
if (arch == "i386") {
|
||||
cmakeFlags = 'CMAKE_ARGS="-DBUILD_32BIT=1 -DPACKAGE_STATIC=1 -DZT_PACKAGE_FORMAT=DEB"'
|
||||
} else if (arch == "armel") {
|
||||
cmakeFlags = 'CMAKE_ARGS="-DPACKAGE_STATIC=1 -DZT_PACKAGE_FORMAT=DEB -DBUILD_ARM_V5=1"'
|
||||
} else if (arch == "armhf") {
|
||||
cmakeFlags = 'CMAKE_ARGS="-DPACKAGE_STATIC=1 -DZT_PACKAGE_FORMAT=DEB -DBUILD_ARM_V6=1"'
|
||||
}
|
||||
|
||||
unstash "static-${arch}"
|
||||
sh "pwd"
|
||||
sh "mv zerotier-one-static-${arch} zerotier-one && chmod +x zerotier-one && file ./zerotier-one"
|
||||
sh "mv -f debian/rules.static debian/rules"
|
||||
sh "make debian"
|
||||
sh "mkdir -p build"
|
||||
sh "mv zerotier-static-${arch} build/zerotier && chmod +x build/zerotier"
|
||||
sh "${cmakeFlags} make setup"
|
||||
dir("build") {
|
||||
sh 'make package -j4 VERBOSE=1'
|
||||
}
|
||||
sh "mkdir -p ${distro}"
|
||||
sh "cp -av build/*.deb ${distro}/"
|
||||
archiveArtifacts artifacts: "${distro}/*.deb", onlyIfSuccessful: true
|
||||
}
|
||||
sh "mkdir -p ${distro}"
|
||||
sh "mv *.deb ${distro}"
|
||||
archiveArtifacts artifacts: "${distro}/*.deb", onlyIfSuccessful: true
|
||||
}
|
||||
cleanWs deleteDirs: true, disableDeferredWipeout: true, notFailBuild: true
|
||||
}
|
||||
@@ -197,30 +280,40 @@ def packageStatic() {
|
||||
def ubuntuTrusty = ["ubuntu-trusty"]
|
||||
def ubuntuTrustyArch = []
|
||||
if (params.BUILD_ALL == true) {
|
||||
ubuntuTrustyArch = ["i386", "amd64", "armhf", "arm64", "ppc64le"]
|
||||
ubuntuTrustyArch = ["i386", "amd64", "arm64", "ppc64le"]
|
||||
} else {
|
||||
ubuntuTrustyArch = ["i386", "amd64"]
|
||||
}
|
||||
tasks << getTasks(ubuntuTrusty, ubuntuTrustyArch, { distro, arch ->
|
||||
def myNode = {
|
||||
node ('linux-build') {
|
||||
env.PATH = env.PATH + ":/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/local/go/bin:/home/jenkins-build/go/bin"
|
||||
dir ("build") {
|
||||
checkout scm
|
||||
}
|
||||
def runtime = docker.image("ztbuild/${distro}-${arch}:latest")
|
||||
runtime.inside {
|
||||
sh "ls -la ."
|
||||
dir('build/') {
|
||||
sh "ls -la ."
|
||||
def cmakeFlags = 'CMAKE_ARGS="-DPACKAGE_STATIC=1 -DZT_PACKAGE_FORMAT=DEB"'
|
||||
if (arch == "i386") {
|
||||
cmakeFlags = 'CMAKE_ARGS="-DBUILD_32BIT=1 -DBUILD_STATIC=1 -DPACKAGE_STATIC=1 -DZT_PACKAGE_FORMAT=DEB"'
|
||||
} else if (arch == "armel") {
|
||||
cmakeFlags = 'CMAKE_ARGS="-DBUILD_STATIC=1 -DPACKAGE_STATIC=1 -DZT_PACKAGE_FORMAT=DEB -DBUILD_ARM_V5=1"'
|
||||
} else if (arch == "armhf") {
|
||||
cmakeFlags = 'CMAKE_ARGS="-DBUILD_STATIC=1 -DPACKAGE_STATIC=1 -DZT_PACKAGE_FORMAT=DEB -DBUILD_ARM_V6=1"'
|
||||
}
|
||||
|
||||
unstash "static-${arch}"
|
||||
sh "pwd"
|
||||
sh "mv zerotier-one-static-${arch} zerotier-one && chmod +x zerotier-one && file ./zerotier-one"
|
||||
sh "mv -f debian/rules.static debian/rules"
|
||||
sh "make debian"
|
||||
sh "mkdir -p build"
|
||||
sh "mv zerotier-static-${arch} build/zerotier && chmod +x build/zerotier"
|
||||
sh "${cmakeFlags} make setup"
|
||||
dir("build") {
|
||||
sh 'make package -j4 VERBOSE=1'
|
||||
}
|
||||
sh "mkdir -p ${distro}"
|
||||
sh "cp -av build/*.deb ${distro}/"
|
||||
archiveArtifacts artifacts: "${distro}/*.deb", onlyIfSuccessful: true
|
||||
}
|
||||
sh "mkdir -p ${distro}"
|
||||
sh "mv *.deb ${distro}"
|
||||
archiveArtifacts artifacts: "${distro}/*.deb", onlyIfSuccessful: true
|
||||
}
|
||||
cleanWs deleteDirs: true, disableDeferredWipeout: true, notFailBuild: true
|
||||
}
|
||||
@@ -231,28 +324,39 @@ def packageStatic() {
|
||||
def debianWheezy = ["debian-wheezy"]
|
||||
def debianWheezyArchs = []
|
||||
if (params.BUILD_ALL == true) {
|
||||
debianWheezyArchs = ["armhf", "armel", "amd64", "i386"]
|
||||
debianWheezyArchs = ["armhf", "amd64", "i386"]
|
||||
} else {
|
||||
debianWheezyArchs = ["amd64", "i386"]
|
||||
}
|
||||
tasks << getTasks(debianJessie, debianJessieArch, { distro, arch ->
|
||||
def myNode = {
|
||||
node ('linux-build') {
|
||||
env.PATH = env.PATH + ":/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/local/go/bin:/home/jenkins-build/go/bin"
|
||||
dir ("build") {
|
||||
checkout scm
|
||||
}
|
||||
def runtime = docker.image("ztbuild/${distro}-${arch}:latest")
|
||||
runtime.inside {
|
||||
dir('build/') {
|
||||
def cmakeFlags = 'CMAKE_ARGS="-DPACKAGE_STATIC=1 -DZT_PACKAGE_FORMAT=DEB"'
|
||||
if (arch == "i386") {
|
||||
cmakeFlags = 'CMAKE_ARGS="-DBUILD_32BIT=1 -DBUILD_STATIC=1 -DPACKAGE_STATIC=1 -DZT_PACKAGE_FORMAT=DEB"'
|
||||
} else if (arch == "armel") {
|
||||
cmakeFlags = 'CMAKE_ARGS="-DBUILD_STATIC=1 -DPACKAGE_STATIC=1 -DZT_PACKAGE_FORMAT=DEB -DBUILD_ARM_V5=1"'
|
||||
} else if (arch == "armhf") {
|
||||
cmakeFlags = 'CMAKE_ARGS="-DBUILD_STATIC=1 -DPACKAGE_STATIC=1 -DZT_PACKAGE_FORMAT=DEB -DBUILD_ARM_V6=1"'
|
||||
}
|
||||
unstash "static-${arch}"
|
||||
sh "mv zerotier-one-static-${arch} zerotier-one && chmod +x zerotier-one && file ./zerotier-one"
|
||||
sh "mv -f debian/rules.wheezy.static debian/rules"
|
||||
sh "mv -f debian/control.wheezy debian/control"
|
||||
sh "make debian"
|
||||
sh "mkdir -p build"
|
||||
sh "mv zerotier-static-${arch} build/zerotier && chmod +x build/zerotier"
|
||||
sh "${cmakeFlags} make setup"
|
||||
dir("build") {
|
||||
sh 'make package -j4 VERBOSE=1'
|
||||
}
|
||||
sh "mkdir -p ${distro}"
|
||||
sh "cp -av build/*.deb ${distro}/"
|
||||
archiveArtifacts artifacts: "${distro}/*.deb", onlyIfSuccessful: true
|
||||
}
|
||||
sh "mkdir -p ${distro}"
|
||||
sh "mv *.deb ${distro}"
|
||||
archiveArtifacts artifacts: "${distro}/*.deb", onlyIfSuccessful: true
|
||||
}
|
||||
cleanWs deleteDirs: true, disableDeferredWipeout: true, notFailBuild: true
|
||||
}
|
||||
@@ -265,27 +369,40 @@ def packageStatic() {
|
||||
|
||||
def buildDebianNative() {
|
||||
def tasks = [:]
|
||||
def buster = ["debian-buster", "debian-stretch", "debian-bullseye", "debian-sid"]
|
||||
def busterArchs = []
|
||||
def debian = ["debian-buster" , "debian-stretch", "debian-sid", "debian-bullseye"]
|
||||
def debianArchs = []
|
||||
if (params.BUILD_ALL) {
|
||||
busterArchs = ["s390x", "ppc64le", "i386", "armhf", "armel", "arm64", "amd64"]
|
||||
debianArchs = ["ppc64le", "i386", "armhf", "armel", "arm64", "amd64"]
|
||||
} else {
|
||||
busterArchs = ["amd64", "i386"]
|
||||
debianArchs = ["amd64", "i386"]
|
||||
}
|
||||
|
||||
def build = { distro, arch ->
|
||||
def myNode = {
|
||||
node ('linux-build') {
|
||||
env.PATH = "/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/local/go/bin:/home/jenkins-build/go/bin"
|
||||
dir ("build") {
|
||||
checkout scm
|
||||
}
|
||||
def runtime = docker.image("ztbuild/${distro}-${arch}:latest")
|
||||
runtime.inside {
|
||||
def cmakeFlags = 'CMAKE_ARGS="-DZT_PACKAGE_FORMAT=DEB"'
|
||||
if (arch == "i386") {
|
||||
cmakeFlags = 'CMAKE_ARGS="-DBUILD_32BIT=1 -DZT_PACKAGE_FORMAT=DEB"'
|
||||
} else if (arch == "armel") {
|
||||
cmakeFlags = 'CMAKE_ARGS="-DZT_PACKAGE_FORMAT=DEB -DBUILD_ARM_V5=1"'
|
||||
} else if (arch == "armhf") {
|
||||
cmakeFlags = 'CMAKE_ARGS="-DZT_PACKAGE_FORMAT=DEB -DBUILD_ARM_V6=1"'
|
||||
}
|
||||
|
||||
dir("build") {
|
||||
sh 'make debian'
|
||||
sh "${cmakeFlags} make setup"
|
||||
dir("build") {
|
||||
sh "make package -j4 VERBOSE=1"
|
||||
}
|
||||
}
|
||||
sh "mkdir -p ${distro}"
|
||||
sh "mv *.deb ${distro}"
|
||||
sh "mv build/build/*.deb ${distro}"
|
||||
archiveArtifacts artifacts: "${distro}/*.deb", onlyIfSuccessful: true
|
||||
cleanWs deleteDirs: true, disableDeferredWipeout: true, notFailBuild: true
|
||||
}
|
||||
@@ -294,8 +411,8 @@ def buildDebianNative() {
|
||||
return myNode
|
||||
}
|
||||
|
||||
tasks << getTasks(buster, busterArchs, build)
|
||||
|
||||
tasks << getTasks(debian, debianArchs, build)
|
||||
|
||||
// bash is broken when running under QEMU-s390x on Xenial
|
||||
def xenial = ["ubuntu-xenial"]
|
||||
def xenialArchs = []
|
||||
@@ -309,12 +426,21 @@ def buildDebianNative() {
|
||||
def ubuntu = ["ubuntu-bionic", "ubuntu-eoan"]
|
||||
def ubuntuArchs = []
|
||||
if (params.BUILD_ALL == true) {
|
||||
ubuntuArchs = ["i386", "amd64", "armhf", "arm64", "ppc64le", "s390x"]
|
||||
ubuntuArchs = ["i386", "amd64", "armhf", "arm64", "ppc64le"]
|
||||
} else {
|
||||
ubuntuArchs = ["i386", "amd64"]
|
||||
}
|
||||
tasks << getTasks(ubuntu, ubuntuArchs, build)
|
||||
|
||||
def ubuntuFocal = ["ubuntu-focal"]
|
||||
def ubuntuFocalArchs = []
|
||||
if (params.BUILD_ALL == true) {
|
||||
ubuntuFocalArchs = ["amd64", "arm64", "ppc64le"]
|
||||
} else {
|
||||
ubuntuFocalArchs = ["amd64"]
|
||||
}
|
||||
tasks << getTasks(ubuntuFocal, ubuntuFocalArchs, build)
|
||||
|
||||
def kali = ["kali-rolling"]
|
||||
def kaliArchs = ["amd64"]
|
||||
tasks << getTasks(kali, kaliArchs, build)
|
||||
@@ -328,18 +454,29 @@ def buildCentosNative() {
|
||||
def build = { distro, arch ->
|
||||
def myNode = {
|
||||
node ('linux-build') {
|
||||
env.PATH = env.PATH + ":/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/local/go/bin:/home/jenkins-build/go/bin"
|
||||
dir ("build") {
|
||||
checkout scm
|
||||
}
|
||||
def runtime = docker.image("ztbuild/${distro}-${arch}:latest")
|
||||
runtime.inside {
|
||||
dir("build") {
|
||||
sh 'make -j4'
|
||||
sh 'make redhat'
|
||||
sh "mkdir -p ${distro}"
|
||||
sh "cp -av `find ~/rpmbuild/ -type f -name \"*.rpm\"` ${distro}/"
|
||||
archiveArtifacts artifacts: "${distro}/*.rpm", onlyIfSuccessful: true
|
||||
if (distro == 'centos7' && arch == 'amd64') {
|
||||
sh 'source scl_source enable devtoolset-8 llvm-toolset-7 && CMAKE_ARGS="-DZT_PACKAGE_FORMAT=RPM" make setup'
|
||||
} else {
|
||||
sh 'CMAKE_ARGS="-DZT_PACKAGE_FORMAT=RPM" make setup'
|
||||
}
|
||||
dir ("build") {
|
||||
if (distro == 'centos7' && arch == 'amd64') {
|
||||
sh 'source scl_source enable devtoolset-8 llvm-toolset-7 && make package -j4 VERBOSE=1'
|
||||
} else {
|
||||
sh 'make package -j4 VERBOSE=1'
|
||||
}
|
||||
}
|
||||
}
|
||||
sh "mkdir -p ${distro}"
|
||||
sh "cp -av build/build/*.rpm ${distro}/"
|
||||
archiveArtifacts artifacts: "${distro}/*.rpm", onlyIfSuccessful: true
|
||||
|
||||
cleanWs deleteDirs: true, disableDeferredWipeout: true, notFailBuild: true
|
||||
}
|
||||
|
||||
+4
-4
@@ -10,8 +10,8 @@ License text copyright (c) 2017 MariaDB Corporation Ab, All Rights Reserved.
|
||||
Parameters
|
||||
|
||||
Licensor: ZeroTier, Inc.
|
||||
Licensed Work: ZeroTier Network Virtualization Engine 1.4.4
|
||||
The Licensed Work is (c)2019 ZeroTier, Inc.
|
||||
Licensed Work: ZeroTier Network Virtualization Engine
|
||||
The Licensed Work is (c)2013-2020 ZeroTier, Inc.
|
||||
Additional Use Grant: You may make use of the Licensed Work, provided you
|
||||
do not use it in any of the following ways:
|
||||
|
||||
@@ -26,7 +26,7 @@ Additional Use Grant: You may make use of the Licensed Work, provided you
|
||||
ZeroTier behind the scenes to operate a service not
|
||||
related to ZeroTier network administration.
|
||||
|
||||
* Create Non-Open-Source Commercial Derviative Works
|
||||
* Create Non-Open-Source Commercial Derivative Works
|
||||
|
||||
(2) Link or directly include the Licensed Work in a
|
||||
commercial or for-profit application or other product
|
||||
@@ -47,7 +47,7 @@ Additional Use Grant: You may make use of the Licensed Work, provided you
|
||||
services, social welfare, senior care, child care, and
|
||||
the care of persons with disabilities.
|
||||
|
||||
Change Date: 2023-01-01
|
||||
Change Date: 2025-01-01
|
||||
|
||||
Change License: Apache License version 2.0 as published by the Apache
|
||||
Software Foundation
|
||||
|
||||
@@ -1,28 +1,31 @@
|
||||
# Common makefile -- loads make rules for each platform
|
||||
BUILDDIR := build
|
||||
TIMESTAMP=$(shell date +"%Y%m%d%H%M")
|
||||
|
||||
OSTYPE=$(shell uname -s)
|
||||
.PHONY: all
|
||||
|
||||
ifeq ($(OSTYPE),Darwin)
|
||||
include make-mac.mk
|
||||
endif
|
||||
all: setup
|
||||
cd ${BUILDDIR} && $(MAKE) -j4 VERBOSE=1
|
||||
|
||||
ifeq ($(OSTYPE),Linux)
|
||||
include make-linux.mk
|
||||
endif
|
||||
setup:
|
||||
mkdir -p ${BUILDDIR} && cd ${BUILDDIR} && cmake .. -DCMAKE_BUILD_TYPE=Release ${CMAKE_ARGS}
|
||||
|
||||
ifeq ($(OSTYPE),FreeBSD)
|
||||
CC=clang
|
||||
CXX=clang++
|
||||
ZT_BUILD_PLATFORM=7
|
||||
include make-bsd.mk
|
||||
endif
|
||||
ifeq ($(OSTYPE),OpenBSD)
|
||||
CC=egcc
|
||||
CXX=eg++
|
||||
ZT_BUILD_PLATFORM=9
|
||||
include make-bsd.mk
|
||||
endif
|
||||
setup-debug:
|
||||
mkdir -p ${BUILDDIR} && cd ${BUILDDIR} && cmake .. -DCMAKE_BUILD_TYPE=Debug ${CMAKE_ARGS}
|
||||
|
||||
ifeq ($(OSTYPE),NetBSD)
|
||||
include make-netbsd.mk
|
||||
endif
|
||||
debug:
|
||||
mkdir -p ${BUILDDIR} && cd ${BUILDDIR} && cmake .. -DCMAKE_BUILD_TYPE=Debug ${CMAKE_ARGS} && $(MAKE)
|
||||
|
||||
central-controller:
|
||||
mkdir -p ${BUILDDIR} && cd ${BUILDDIR} && cmake .. -DCMAKE_BUILD_TYPE=Release -DBUILD_CENTRAL_CONTROLLER=1 ${CMAKE_ARGS} && $(MAKE) -j4
|
||||
|
||||
central-controller-debug:
|
||||
mkdir -p ${BUILDDIR} && cd ${BUILDDIR} && cmake .. -DCMAKE_BUILD_TYPE=Debug -DBUILD_CENTRAL_CONTROLLER=1 ${CMAKE_ARGS} && $(MAKE) -j4
|
||||
|
||||
central-controller-docker:
|
||||
docker build -t registry.zerotier.com/zerotier-central/ztcentral-controller:${TIMESTAMP} -f controller/central-docker/Dockerfile .
|
||||
|
||||
clean:
|
||||
rm -rf ${BUILDDIR}
|
||||
|
||||
distclean:
|
||||
rm -rf ${BUILDDIR}
|
||||
@@ -1,6 +1,43 @@
|
||||
ZeroTier Release Notes
|
||||
======
|
||||
|
||||
# Version 1.9.0 (2.0 beta)
|
||||
|
||||
Version 2.0 is a very significant release with many changes. It remains backward compatibility to version 1.4.0 (and possibly earlier versions but this is not guaranteed) but makes numerous local and behavioral changes that should be reviewed before upgrading production systems.
|
||||
|
||||
After this release we're going to be working to get to a more frequent, less extreme, more "agile" release cadence.
|
||||
|
||||
Protocol changes:
|
||||
|
||||
* Trusted paths have been completely removed. The new AES mode is so fast on CPUs with AES acceleration that much of the rationale for this is gone, and this feature was never used much to begin with due to inconvenience and obvious security concerns. Environments using trusted paths will need to upgrade all nodes at once.
|
||||
* The symmetric encryption algorithm and mode is now AES-GMAC-SIV, a variation of AES-GCM using the same primitives but offering superior security bounds and behavior under non-ideal conditions. It's also a lot faster than Salsa20/12 and Poly1305 on CPUs with AES acceleration (almost all desktops, laptops, and newer routers and phones). Salsa20/12 with Poly1305 is still supported for communication with older versions and small devices that lack AES acceleration.
|
||||
* A new identity type (1) has been introduced that contains both Curve25519 and NIST P-384 public key types, but classic type 0 remains the default for new identities for now. ECDH key agreement between V1 identities uses both keys and hashes the resulting secrets to yield security equal to the best of the two, but V1 identities can also agree with V0 identities using only their Curve25519 component.
|
||||
* Roots can now be joined and left like networks in a much more convenient way, and the old "moon" and "planet" terminology is deprecated.
|
||||
* A new peer to peer multicast algorithm has been introduced that offers much better scalability and better performance, especially when the physical network itself is hub-and-spoke with many low latency peers connected by higher latency WAN links.
|
||||
* Forward secrecy is finally supported via periodic re-keying using ephemeral asymmetric keys. Both Curve25519 and NIST P-384 keys are used with secrets being hashed to provide security equal to the stronger of the two curves.
|
||||
* As part of forward secrecy implementation peers now always exchange HELLO messages even if they don't have a direct path.
|
||||
* Compression is only enabled for control packets as almost all data packets are largely un-compressable.
|
||||
* New NAT traversal tricks have been added, such as (ab)use of port 500.
|
||||
|
||||
Code changes:
|
||||
|
||||
* Migrated from GNU make to cmake for easier cross platform builds and simplified build files.
|
||||
* The core network hypervisor has been significantly refactored, almost amounting to a partial rewrite.
|
||||
* Critical packet handling paths have been streamlined with unnecessary memcpy() steps removed.
|
||||
* Host service code has been completely rewritten in Go. Packet handling code remains in C++, but Go offers superior developer productivity when it comes to implementing more complex local service and local API features. Go imposes a little bit more memory overhead but not much and has been tuned to minimize memory use.
|
||||
|
||||
User interface:
|
||||
|
||||
* Command line interface has been redesigned and rewritten. Old commands names are supported but their output will be different.
|
||||
|
||||
Other things:
|
||||
|
||||
* The V2 design, protocol, and cryptographic primitives (AES-GMAC-SIV) have been security audited by [Trail of Bits](https://www.trailofbits.com), and the code is being audited as well prior to full 2.0 release.
|
||||
|
||||
---
|
||||
|
||||
# Older version release notes
|
||||
|
||||
# 2019-08-30 -- Version 1.4.6
|
||||
|
||||
* Update default root list to latest
|
||||
|
||||
File renamed without changes.
@@ -0,0 +1,119 @@
|
||||
/*
|
||||
* Copyright (c)2013-2020 ZeroTier, Inc.
|
||||
*
|
||||
* Use of this software is governed by the Business Source License included
|
||||
* in the LICENSE.TXT file in the project's root directory.
|
||||
*
|
||||
* Change Date: 2025-01-01
|
||||
*
|
||||
* On the date above, in accordance with the Business Source License, use
|
||||
* of this software will be governed by version 2.0 of the Apache License.
|
||||
*/
|
||||
/****/
|
||||
|
||||
#ifndef ZT_PEERLIST_HPP
|
||||
#define ZT_PEERLIST_HPP
|
||||
|
||||
#include "Constants.hpp"
|
||||
#include "SharedPtr.hpp"
|
||||
#include "Peer.hpp"
|
||||
|
||||
namespace ZeroTier {
|
||||
|
||||
/**
|
||||
* A list of peers
|
||||
*
|
||||
* This is a simple vector optimized for the case where there will almost always
|
||||
* be zero or one element. In that case it doesn't allocate. If there's more than
|
||||
* one element, it will grow to include all elements.
|
||||
*
|
||||
* It's used to return lookups in Topology where there will almost always be zero
|
||||
* or one peers returned but where there technically (but very rarely) can be more.
|
||||
*/
|
||||
class PeerList
|
||||
{
|
||||
public:
|
||||
ZT_INLINE PeerList() noexcept:
|
||||
m_onePeer(),
|
||||
m_peers(&m_onePeer),
|
||||
m_peerCount(0)
|
||||
{}
|
||||
|
||||
ZT_INLINE PeerList(const PeerList &pl)
|
||||
{
|
||||
const unsigned int pc = pl.m_peerCount;
|
||||
if (likely(pc <= 1)) {
|
||||
m_onePeer = pl.m_onePeer;
|
||||
m_peers = &m_onePeer;
|
||||
} else {
|
||||
m_peers = new SharedPtr<Peer>[pc];
|
||||
for (unsigned int i = 0;i < pc;++i)
|
||||
m_peers[i] = pl.m_peers[i];
|
||||
}
|
||||
m_peerCount = pc;
|
||||
}
|
||||
|
||||
ZT_INLINE ~PeerList()
|
||||
{
|
||||
if (unlikely(m_peers != &m_onePeer))
|
||||
delete[] m_peers;
|
||||
}
|
||||
|
||||
ZT_INLINE PeerList &operator=(const PeerList &pl)
|
||||
{
|
||||
if (&pl != this) {
|
||||
if (unlikely(m_peers != &m_onePeer))
|
||||
delete[] m_peers;
|
||||
if (likely(pl.m_peerCount <= 1)) {
|
||||
m_onePeer = pl.m_onePeer;
|
||||
m_peers = &m_onePeer;
|
||||
} else {
|
||||
m_onePeer.zero();
|
||||
m_peers = new SharedPtr<Peer>[pl.m_peerCount];
|
||||
for (unsigned int i = 0;i < pl.m_peerCount;++i)
|
||||
m_peers[i] = pl.m_peers[i];
|
||||
}
|
||||
m_peerCount = pl.m_peerCount;
|
||||
}
|
||||
return *this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Resize the peer list to store a given number of members
|
||||
*
|
||||
* To populate the list, this must be called first followed by each member
|
||||
* being set with the [] operator. List content after this call is undefined
|
||||
* and may contain old data if the object is being re-used.
|
||||
*
|
||||
* @param s New size of list
|
||||
*/
|
||||
ZT_INLINE void resize(const unsigned int s)
|
||||
{
|
||||
if (unlikely(m_peers != &m_onePeer))
|
||||
delete[] m_peers;
|
||||
m_peerCount = s;
|
||||
if (likely(s <= 1)) {
|
||||
m_peers = &m_onePeer;
|
||||
} else {
|
||||
m_peers = new SharedPtr<Peer>[s];
|
||||
}
|
||||
}
|
||||
|
||||
ZT_INLINE SharedPtr <Peer> &operator[](const unsigned int i) noexcept
|
||||
{ return m_peers[i]; }
|
||||
|
||||
ZT_INLINE const SharedPtr <Peer> &operator[](const unsigned int i) const noexcept
|
||||
{ return m_peers[i]; }
|
||||
|
||||
ZT_INLINE unsigned int size() const noexcept
|
||||
{ return m_peerCount; }
|
||||
|
||||
private:
|
||||
SharedPtr <Peer> m_onePeer;
|
||||
SharedPtr <Peer> *m_peers;
|
||||
unsigned int m_peerCount;
|
||||
};
|
||||
|
||||
} // namespace ZeroTier
|
||||
|
||||
#endif
|
||||
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
Loaded 20 of 913 files, more files were not shown because too many files have changed in this diff.
Show more
Reference in new issue
Block a user