Compare commits

...
903 Commits
Author SHA1 Message Date
Adam Ierymenko 632d6e04ad Mac multicast bug fix -- GitHub issue #986 2019-07-31 13:25:58 -07:00
Adam Ierymenko db813db7e8 2019-07-29 -- Version 1.4.0
Major Changes

 * Mac version no longer requires a kernel extension, instead making use of the [feth interfaces](https://apple.stackexc
 * Added support for concurrent multipath (multiple paths at once) with traffic weighting by link quality and faster rec
 * Added under-the-hood support for QoS (not yet exposed) that will eventually be configurable via our rules engine.

Minor Changes and Bug Fixes

 * Experimental DB driver for [LF](https://github.com/zerotier/lf) to store network controller data (LFDB.cpp / LFDB.hpp
 * Modified credential push and direct path push timings and algorithms to somewhat reduce "chattiness" of the protocol
 * Removed our beta/half-baked integration of Central with the Windows UI. We're going to do a whole new UI of some kind
 * Fixed stack overflow issues on Linux versions using musl libc.
 * Fixed some alignment problems reported on ARM and ARM64, but some reports we could not reproduce so please report any
 * Fixed numerous other small issues and bugs such as ARM alignment issues causing crashes on some devices.
 * Windows now sets the adapter name such that it is consistent in both the Windows UI and command line utilities.
2019-07-29 16:11:06 -07:00
Adam Ierymenko 837c6270f2 More docs 2019-07-29 15:14:37 -07:00
Adam Ierymenko 8c3c07cb5d docs 2019-07-29 13:50:02 -07:00
Adam Ierymenko 5cc0dd7f55 Windows installer version bump 2019-07-29 12:36:10 -07:00
Adam Ierymenko 79c4d98b61 docs 2019-07-29 12:10:39 -07:00
Adam Ierymenko 678e11530e 1.4 bump 2019-07-29 12:07:44 -07:00
Adam Ierymenko a8f2b39f15 Windows project fixes 2019-07-29 11:05:46 -07:00
Adam Ierymenko add2ac0369 Merge pull request #963 from atopuzov/armv6l
Fix compiling on Raspberry PI Zero W on Arch Linux
2019-07-29 10:23:09 -07:00
Adam Ierymenko 1e475edd1c Merge pull request #973 from unquietwiki/patch-1
Update Dockerfile
2019-07-29 10:22:36 -07:00
Adam Ierymenko 745483708a Merge pull request #974 from squeakbat/master
Don't relink zerotier-one every time.
2019-07-29 10:21:35 -07:00
Adam Ierymenko d9432f2f1e cleanup 2019-07-29 10:19:20 -07:00
Adam Ierymenko eb7081d2a3 Fix for detecting changes in LF from other instances of the same controller. 2019-07-26 19:28:09 -07:00
Adam Ierymenko d9befe3fb3 Debug code removal 2019-07-26 18:51:50 -07:00
Adam Ierymenko 0618452615 LF masking key should be a secret 2019-07-26 17:44:05 -07:00
Adam Ierymenko f6b080b8a2 Abstract out change listener from controller itself to permit DBs to shadow changes from other DBs. 2019-07-26 17:39:00 -07:00
Adam Ierymenko c8c33db1d1 . 2019-07-26 16:03:21 -07:00
Adam Ierymenko 196bac726c Merge branch 'dev' of http://git.int.zerotier.com/zerotier/ZeroTierOne into dev 2019-07-23 16:06:40 -07:00
Adam Ierymenko ac2688de58 More LFDB work 2019-07-23 16:06:35 -07:00
Joseph Henry d2af12b6a0 Forgot to add ZT_DISABLE_COMPRESSION to linux makefile 2019-07-23 13:33:25 -07:00
Joseph Henry 6958ba9557 Added ZT_DISABLE_COMPRESSION build flag for SDK and low-end NAS builds 2019-07-23 12:39:07 -07:00
Adam Ierymenko 5f11daadf2 Build fix 2019-07-23 09:30:40 -07:00
Adam Ierymenko 99df3fe433 Merge branch 'dev' of http://git.int.zerotier.com/zerotier/ZeroTierOne into dev 2019-07-23 09:29:12 -07:00
Adam Ierymenko d4d350a285 Work in progress 2019-07-23 09:29:08 -07:00
Joseph Henry 8a0b75c83a Added LFDB.o to objects.mk 2019-07-22 15:24:16 -07:00
Joseph Henry 9cf74657e0 Commented out rtnetlink error debug trace 2019-07-22 14:12:21 -07:00
Adam Ierymenko 5edd04638d LFDB work in progress 2019-07-22 13:43:06 -07:00
Ellen Wang eb2f851e65 Don't relink zerotier-one every time.
Because zerotier-one depends on "one", which is a phony target,
making it relinks zerotier-one every time, which is probably
not the desired behavior.

In any case, zerotier-one, zerotier-cli, and zerotier-idtool are
real target, so they should have real dependencies and actions.
The "one" target now depends on these three files.

Behavior is mostly unchanged otherwise.
2019-07-21 21:37:01 -07:00
Joseph Henry a0f47b12b4 Removed Synology-specific home path, changes made elsewhere in SPK 2019-07-19 16:34:31 -07:00
Adam Ierymenko 1b2d9e202e Remove 44/8 as pseudoprivate since it is now partly global. 2019-07-19 13:33:14 -07:00
Michael Adams daa8839005 Update Dockerfile
Update Dockerfile to use Debian 10 + pull the main.sh directly from Github; works for Portainer use.
2019-07-18 17:48:41 -07:00
Grant Limberg 80124bb753 Update release notes 2019-07-16 15:34:26 -07:00
Grant Limberg 861a319014 Merge branch 'dev' of github.com:zerotier/ZeroTierOne into dev 2019-07-16 15:20:05 -07:00
Grant Limberg d43e810ecb Finally figured out how to update the network interface names on Windows so that they'll be visible in ipconfig, Get-NetAdapter etc. 2019-07-16 15:16:49 -07:00
Grant Limberg 7afcc17024 no usleep() on Windows 2019-07-16 13:09:10 -07:00
Grant Limberg 2ab2f68725 Add a central database schema version check to central controller startup 2019-07-16 12:15:38 -07:00
Adam Ierymenko 90872c906f Fix FileDB stuff and latency measurement. 2019-07-15 16:30:34 -05:00
Adam Ierymenko bdc2ec1f5e Track online status in FileDB 2019-07-15 15:27:53 -05:00
Adam Ierymenko d3728d5859 cleanup 2019-07-10 21:30:11 -04:00
Joseph Henry 389331ca29 Ticket #915, added allowSecondaryPort to optionally force ZT to use a single port 2019-07-09 10:31:03 -07:00
Adam Ierymenko b2c4b7e99f Version bunmp 2019-07-09 10:36:25 -04:00
Adam Ierymenko fee6aae442 Drop in faster C25519 agreement code. 2019-07-09 10:31:08 -04:00
Grant Limberg 409406d114 Whoops 2019-07-08 12:36:49 -07:00
Grant Limberg 203414910f Give up to a second for the interface to appear to assign IP addresses 2019-07-08 12:33:26 -07:00
Travis LaDuke ac0082a67e Update README.md 2019-07-02 11:56:19 -07:00
Aleksandar Topuzović 9ccbe85923 Fix compiling on Raspberry PI Zero W on Arch Linux
* Should also fix it for Raspberry PI 1
* "gcc -dumpmachine | cut -d '-' -f 1" reports armv6l
2019-07-01 14:56:02 +01:00
Adam Ierymenko dffbd2113a Merge branch 'dev' of http://git.int.zerotier.com/zerotier/ZeroTierOne into dev 2019-06-28 11:20:49 -07:00
Adam Ierymenko 7db073d993 Start 1.4.0 release notes. 2019-06-28 11:20:38 -07:00
Adam Ierymenko 3c02c2e4bd Windows installer bump 2019-06-28 08:48:06 -07:00
Adam Ierymenko a17c760181 Fix Mac installer 2019-06-27 14:36:31 -07:00
Adam Ierymenko 54d2fa65dd Version bump, cleanup 2019-06-27 14:31:10 -07:00
Adam Ierymenko a019c3dd5d Tighten up credential push just a bit for faster up-time with older nodes, should not have significant impact on bandwidth. Also some cleanup and push direct path timing fixes. 2019-06-25 13:42:20 -07:00
Adam Ierymenko a3ef9b8a15 Cleanup 2019-06-25 10:06:50 -07:00
Adam Ierymenko 554e0b7c6d Merge branch 'dev' of http://git.int.zerotier.com/zerotier/ZeroTierOne into dev 2019-06-20 15:20:46 -07:00
Adam Ierymenko fd74e2a583 Windows build changes for 1.2.99 (1.4.0pre) 2019-06-20 15:20:42 -07:00
Grant Limberg af5d3a7f0b dockerfile updates 2019-06-20 14:17:38 -07:00
Adam Ierymenko bb0808c99c Remove current multithreaded receive path, which is not that efficient. We will do something better in the future. 2019-06-19 10:19:59 -07:00
Adam Ierymenko f0295b154b Merge branch 'dev' of http://git.int.zerotier.com/zerotier/ZeroTierOne into dev 2019-06-17 15:50:11 -07:00
Adam Ierymenko b041de831a More stack->heap 2019-06-17 15:50:05 -07:00
Grant Limberg 21e844cd82 Merge branch 'dev' of http://git.int.zerotier.com/ZeroTier/ZeroTierOne into dev 2019-06-17 15:32:27 -07:00
Grant Limberg 4e2439bd12 Don't call _phy->getIfName if localSocket is -1 2019-06-17 15:32:21 -07:00
Adam Ierymenko c5a07c7f20 More stack->heap 2019-06-17 15:28:02 -07:00
Adam Ierymenko e2900f4f3c Fix valgrind warning... not sure if it is an actual issue. 2019-06-17 15:23:52 -07:00
Adam Ierymenko aa831dd843 More stack->heap... 2019-06-17 14:55:33 -07:00
Adam Ierymenko 2dc783214c Allocate outp on heap in Peer. 2019-06-17 14:38:27 -07:00
Adam Ierymenko 523df47a65 Check for null data ptr 2019-06-17 14:02:35 -07:00
Adam Ierymenko f66fac3982 Win32 build fix 2019-06-17 13:48:42 -07:00
Adam Ierymenko 9c51ce9c40 Windows build fixes, fix double/float types to get rid of warnings. 2019-06-17 13:32:41 -07:00
Adam Ierymenko 9797540212 merge 2019-06-13 12:53:05 -07:00
Adam Ierymenko ce2338c24a Fix null ptr on managed routes if no IPs are set. 2019-06-13 12:52:38 -07:00
Grant Limberg 3b188ba672 no message 2019-06-13 10:38:42 -07:00
Grant Limberg eb84d61deb remove these from jenkins for now 2019-06-13 10:35:54 -07:00
Grant Limberg 47d29ddcaf Compiler warning cleanup 2019-06-13 10:28:09 -07:00
Grant Limberg f411eb1651 Remove old RethinkDB.cpp/.hpp files from visual studio project 2019-06-13 10:15:45 -07:00
Joseph Henry 94bd2918fa Merge branch 'dev' of http://git.int.zerotier.com/ZeroTier/ZeroTierOne into dev 2019-06-12 13:14:23 -07:00
Joseph Henry c3bfcf560b Removed check for port number in multipath path replacement logic 2019-06-12 13:14:14 -07:00
Adam Ierymenko 5b2b088714 Cleanup, version bump. 2019-06-11 14:58:23 -07:00
Adam Ierymenko 0bdfad52e7 docs 2019-06-11 13:51:10 -07:00
Adam Ierymenko cf046a4039 Merge branch 'dev' of http://git.int.zerotier.com/zerotier/ZeroTierOne into dev 2019-06-11 11:01:20 -07:00
Adam Ierymenko 700cc92083 Indent fix 2019-06-11 11:01:12 -07:00
Joseph Henry 2eb9c0924a Merge branch 'dev' of http://git.int.zerotier.com/ZeroTier/ZeroTierOne into dev 2019-06-11 10:54:14 -07:00
Joseph Henry ebadc6f203 Added s390x arch flags to makefile and ZeroTierOne.h for ticket #950 2019-06-11 10:54:06 -07:00
Adam Ierymenko 87bce1a36b GitHub issue #886 2019-06-11 10:53:35 -07:00
Adam Ierymenko 848f822171 . 2019-06-06 10:04:11 -07:00
Joseph Henry d4199ddb3e Commented out RingBuffer::dump() as an alternative solution to PR #952 2019-06-03 11:00:04 -07:00
Grant Limberg e4abc91d35 Merge branch 'dev' of http://git.int.zerotier.com/ZeroTier/ZeroTierOne into dev 2019-05-31 15:10:53 -07:00
Grant Limberg 37d321afc8 dont spin as much in the onlineNotificationThread 2019-05-31 15:10:45 -07:00
Joseph Henry 541e5c510e CLI improvements (peers, and get/set ip, ip4, ip6, etc) 2019-05-31 11:41:24 -07:00
Joseph Henry 90d324ae96 Fixed ZT_SDK build issue. Moved ZT_SDK preprocessor directives to more permanent homes 2019-05-17 10:15:40 -07:00
Adam Ierymenko cacdb445c7 Bump protocol version to 10 2019-05-14 13:54:27 -07:00
Joseph Henry 4743ad0b16 Added convenience swtich for disabling JSON support in SDK build 2019-05-13 12:24:55 -07:00
Joseph Henry 2d5c6fa975 Disabled compression for outbound packets in SDK build 2019-05-13 12:24:22 -07:00
Joseph Henry 95ef13f7a1 Added divisor for ZT_PEER_ACTIVITY_TIMEOUT, gives quicker indication to status change in SDK 2019-05-13 12:24:01 -07:00
Joseph Henry 298e1d5a74 Added 90x90 AppIcon 2019-05-01 12:53:50 -07:00
Grant Limberg 87c75d033e pt 2 2019-04-22 11:36:14 -07:00
Grant Limberg 71ae678930 Make things compile with Android NDK again 2019-04-22 11:35:35 -07:00
Grant Limberg 6a027c9c0a amqp_consume_message now has a timeout
RabbitMQ::consume() will return an empty string if the call to amqp_consume_message times out
2019-04-18 14:57:06 -07:00
Grant Limberg 6014df2847 fix compile & sql errors 2019-04-04 15:11:01 -07:00
Grant Limberg 55a9e6e05e Queue up inserts in onlineNotificationThread() into a multiple insert statement 2019-04-04 12:40:49 -07:00
Adam Ierymenko 02f0eead1c More new Mac ethernet tap bugs. 2019-03-29 15:14:03 -07:00
Adam Ierymenko d77846dcea Add bigness to buffers to prevent overflow on high traffic (Mac tap). 2019-03-29 12:45:02 -07:00
Adam Ierymenko 92c811deb7 Destroy feth devices before creating to delete old ones if they were left behind (MacEthernetTap). 2019-03-29 12:14:03 -07:00
Adam Ierymenko 92f199ab98 More bug fixing for AARCH64. 2019-03-28 22:40:28 +00:00
Adam Ierymenko b65feeba85 One more AARCH64 fix. 2019-03-28 15:23:53 -07:00
Adam Ierymenko 6914425b03 cleanup 2019-03-28 13:58:19 -07:00
Adam Ierymenko 89f57124b2 Never mind, only unused on some builds so leave them there. 2019-03-27 09:30:45 -07:00
Adam Ierymenko 65823332d4 Comment out some unused functions. 2019-03-27 09:29:34 -07:00
Adam Ierymenko ee8682ac75 Temporarily disable the symmetric NAT port prediction code since the current version adds protocol overhead and probably is not that effective. 2019-03-26 15:23:51 -07:00
Adam Ierymenko e3e5137757 Fix more alignment hell in LinuxNetLink for AARCH64 and probably other pedantic architectures. 2019-03-25 22:53:06 +00:00
Adam Ierymenko d81549a7b1 Various other fixes including removal of more mem*() issues and netlink fixes for AARCH64. 2019-03-25 22:19:52 +00:00
Adam Ierymenko d5ac8512e3 ... 2019-03-25 12:58:43 -07:00
Adam Ierymenko f23e354272 Nope, more... 2019-03-25 12:56:03 -07:00
Adam Ierymenko 6475e1faf6 I think this is the last one. 2019-03-25 12:53:31 -07:00
Adam Ierymenko 752fc0742e More mem*() stuff... sigh... 2019-03-25 12:52:19 -07:00
Adam Ierymenko e1091611da More mem*() stuff... 2019-03-25 12:41:59 -07:00
Adam Ierymenko 678116b6d1 One more. 2019-03-25 12:36:54 -07:00
Adam Ierymenko 0a9e2227e8 ... and more 2019-03-25 12:00:54 -07:00
Adam Ierymenko 2600b1f144 Removal of more mem*() calls. 2019-03-25 11:59:14 -07:00
Adam Ierymenko b56753ea9f Get rid of some mem* calls that are bad C++ form (but worked fine) and cause warnings. 2019-03-25 11:45:32 -07:00
Adam Ierymenko 97046b265c Kill ZT_FAST_MEMCPY in selftest. 2019-03-22 15:52:16 -07:00
Adam Ierymenko 2966eac64f Get rid of ZT_FAST_MEMCPY because this is not really needed. 2019-03-22 15:50:15 -07:00
Adam Ierymenko d530356055 RingBuffer<> is now templated with size, buffer is now static. 2019-03-22 14:39:52 -07:00
Adam Ierymenko af3ec000a0 Merge branch 'dev' into edge 2019-03-22 09:38:41 -07:00
Adam Ierymenko 8051127c3b Update credits. 2019-03-21 16:43:53 -07:00
Adam Ierymenko e37eb0aa54 More cleanup of old stuff no longer used. 2019-03-21 16:42:52 -07:00
Adam Ierymenko 130fa35bb1 cleanup 2019-03-21 16:39:56 -07:00
Adam Ierymenko 39e1021f62 Replace certificate based gating of multicast like/gather with a simpler more efficient method, fix some minor issues with request based com/cert push, and clean up some other random stuff. 2019-03-21 16:18:49 -07:00
Adam Ierymenko 63ec19674c . 2019-03-19 16:43:43 -07:00
Travis LaDuke af60e769b0 Allow mac users to make central-controller
Made the smallest change I could figure out.
Had to remove -Werror because something in the postgres adapter woudn't
compile.

brew install postgresql rabbitmq-c
and seems to put the libs in the right place
2019-03-18 17:01:05 -07:00
Adam Ierymenko 087c75d5ee More cleanup. 2019-03-14 16:40:22 -07:00
Adam Ierymenko e03102dbcb Clean out some unnecessarily pedantic auth stuff in favor of a simpler way of gating multicast gathers. 2019-03-14 14:29:15 -07:00
Adam Ierymenko 9d7b7c72b2 Merge branch 'dev' into edge 2019-03-14 13:49:49 -07:00
Travis LaDuke 99c3f02343 Update controller readme
Delete `/controller/network/<network ID>/active` docs

re: #921
2019-03-12 13:02:49 -07:00
Grant Limberg 95bfc29c92 Merge branch 'dev' of http://git.int.zerotier.com/ZeroTier/ZeroTierOne into dev 2019-03-11 12:26:57 -07:00
Grant Limberg e3cc7c9a80 fix non-central controller builds 2019-03-11 11:16:44 -07:00
Grant Limberg d4c0349de9 Revert "#ifdef'd out multipath/QoS statistics buffers allocations for ZT_PROTOCOL_VERSION<10"
This reverts commit 270debb3fc.
2019-03-11 09:44:40 -07:00
Adam Ierymenko d7a6357393 Merge branch 'dev' into edge 2019-03-08 13:16:02 -08:00
Adam Ierymenko 6fbf21b4f0 Use a smaller MTU, which should not impact throughput since 2800+overhead/2 still fits in two of these. 2019-03-08 13:15:47 -08:00
Grant Limberg 993d850f69 more logs 2019-03-08 10:50:33 -08:00
Grant Limberg cda07b20a2 add mutex to channel numbering 2019-03-08 10:29:36 -08:00
Grant Limberg 52c85aa605 now with more -fPIC 2019-03-08 10:29:19 -08:00
Grant Limberg e5155df6d5 Merge branch 'dev' of http://git.int.zerotier.com/ZeroTier/ZeroTierOne into dev 2019-03-08 10:21:19 -08:00
Grant Limberg 293d2064c4 librabbitmq built with same clang version as zt 2019-03-08 10:20:53 -08:00
Grant Limberg 171cc3e01a reorder a couple of things 2019-03-08 10:20:19 -08:00
Grant Limberg 8141043560 finish up rabbitmq integration 2019-03-06 16:16:49 -08:00
Grant Limberg 9a3cc93d74 update dockerfile to generate rabbitmq config settings when necessary 2019-03-05 15:47:04 -08:00
Grant Limberg fcb4221f97 rabbitMQ implementation 2019-03-05 15:11:50 -08:00
Grant Limberg 1f13374a4f added struct for rabbitmq config 2019-03-04 17:01:16 -08:00
Grant Limberg 801401a6e7 Merge branch 'dev' of http://git.int.zerotier.com/ZeroTier/ZeroTierOne into dev 2019-03-04 16:31:36 -08:00
Grant Limberg de1fc43cc5 added librabbitmq library for central controller 2019-03-04 16:27:39 -08:00
Joseph Henry 270debb3fc #ifdef'd out multipath/QoS statistics buffers allocations for ZT_PROTOCOL_VERSION<10 2019-03-01 13:28:00 -08:00
Grant Limberg 59a0a25f35 Merge branch 'controller-live' into dev 2019-03-01 11:13:49 -08:00
Grant Limberg a788486803 Remove /controller/network/<network ID>/active from controller documentation as that path no longer exists.
GitHub Issue #921
2019-02-25 12:13:55 -08:00
Grant Limberg 3d21f0a91f update docker registry used 2019-02-08 10:40:57 -08:00
Grant Limberg f726044e29 no message 2019-02-05 11:48:03 -08:00
Grant Limberg a4b1917361 Fixed a bug where UI elements were attempting to be updated in a background thread.
Also code cleanup & removed confusing startup UI
2019-02-05 11:47:37 -08:00
Adam Ierymenko a3b2aeb001 Take netmask bits from most specific route. 2019-02-01 14:06:34 -08:00
Adam Ierymenko 5b1ef2fb03 Take netmask bits from most specific route. 2019-02-01 14:05:29 -08:00
Joseph Henry d0f78f1e03 Bugfix for heap-use-after-free in concurrent packet processing code (manifests only after terminate() is called) 2019-02-01 11:50:52 -08:00
Joseph Henry 541e91ed8e Fixed potential memory leak in RingBuffer 2019-02-01 11:44:43 -08:00
Adam Ierymenko 321cada1d7 Wrong criteria was wrong. Now with less wrong. 2019-02-01 11:38:19 -08:00
Adam Ierymenko 34c1023ba7 Wrong criteria was wrong. Now with less wrong. 2019-02-01 11:37:30 -08:00
Joseph Henry 82a21d4b71 Bugfix for heap-use-after-free in concurrent packet processing code (manifests only after terminate() is called) 2019-01-30 22:29:51 -08:00
Joseph Henry 23996c7e6b Fixed potential memory leak in RingBuffer 2019-01-27 14:43:29 -08:00
Joseph Henry d7091a0bac Fixed sign-comparison compile warnings in QoS code 2019-01-25 13:24:31 -08:00
Grant Limberg 7414418e2e insert/update host_port on controller start 2019-01-21 11:29:13 -08:00
Grant Limberg 2294770e56 Merge branch 'dev' of http://git.int.zerotier.com/zerotier/ZeroTierOne into dev 2019-01-21 11:18:25 -08:00
Grant Limberg d98bdb5643 WIP: Pass listen port down to Postgres 2019-01-21 11:18:20 -08:00
Joseph Henry 21f4f16e63 Disable HTTP control plane for libzt builds, introduction of getRoutes() for SDK API 2019-01-14 11:34:46 -08:00
Joseph Henry 0e597191b8 Updated licenses for 2019 2019-01-14 10:25:53 -08:00
Travis LaDuke 001ba1a4a7 Update link to knowledge base. 2019-01-09 10:19:02 -08:00
Grant Limberg b59c4a2106 Print error & exit on local.conf parsing error 2019-01-07 11:19:50 -08:00
Grant Limberg c35933cd1e Merge branch 'dev' of http://git.int.zerotier.com/ZeroTier/ZeroTierOne into dev 2018-12-10 12:27:00 -08:00
Grant Limberg 0da2efa633 add application_name to pgbouncer connectio string 2018-12-10 12:26:20 -08:00
Grant Limberg e23d95bf03 sleep 60 seconds between deployments 2018-12-07 15:17:12 -08:00
Grant Limberg f6e9f0e2a2 cleanup 2018-12-07 01:58:23 -08:00
Grant Limberg 4a89729529 add INCOMING_PACKET_CONCURRENCY environment variable to be able to specify max threads for receive in controller 2018-12-07 00:59:08 -08:00
Grant Limberg 56a58f2b11 more logging of exits from the central controller 2018-12-06 13:26:53 -08:00
Grant Limberg e959908c51 log message 2018-12-06 13:19:36 -08:00
Grant Limberg 6e3144370a exit controller if onlinenotification thread exits while _run == 1 2018-12-06 13:10:59 -08:00
Grant Limberg 20f02bb772 Merge branch 'dev' of http://git.int.zerotier.com/ZeroTier/ZeroTierOne into dev 2018-12-06 13:08:39 -08:00
Grant Limberg 1c86f25fab update # of threads for Postgres 2018-12-06 13:08:31 -08:00
Adam Ierymenko e6f9ab929d More speed stuff. 2018-12-06 12:47:58 -08:00
Adam Ierymenko 18d1772bb4 stuff for speed and stuff (testing) 2018-12-06 12:00:49 -08:00
Adam Ierymenko 5535cad773 Revert mutex change. 2018-12-04 16:15:46 -08:00
Adam Ierymenko ec84934d48 Disable spinlock to check CPU usage implications on multithreaded controllers. 2018-12-04 15:59:39 -08:00
Grant Limberg 328d08781a finish pgbouncer integration 2018-12-03 16:12:15 -08:00
Grant Limberg c8d5215870 add handling for PGBOUNCER_CONNSTR environment variable.
alows Central controllers to connect to PGBouncer on some threads.  LISTEN threads still require a direct connection to the DB
2018-12-03 15:19:15 -08:00
Grant Limberg 62ccb48a0b allow alternative ports for central controllers 2018-12-03 15:06:26 -08:00
Grant Limberg 82409eb345 add script to cycle central controllers 2018-12-03 15:04:46 -08:00
Grant Limberg b75f212d70 Replace RethinkDB section in controller/README with PostgreSQL 2018-11-30 10:41:54 -08:00
Grant Limberg ccb856749f back to plain old libpq in dev 2018-11-30 10:40:57 -08:00
Adam Ierymenko 9d2bc9bf4e Merge branch 'master' into dev 2018-11-28 08:44:45 -08:00
Adam Ierymenko 52c4385c16 Merge branch 'master' of http://git.int.zerotier.com/zerotier/ZeroTierOne 2018-11-28 08:44:12 -08:00
Adam Ierymenko 5da7d6d1ae Merge docker update PR 2018-11-28 08:43:50 -08:00
Adam Ierymenko 65e0a74718 Merge pull request #869 from bltavares/patch-2
Update ZeroTier version on Docker
2018-11-28 08:41:42 -08:00
Grant Limberg 01d5d7d78b Merge branch 'dev' of http://git.int.zerotier.com/ZeroTier/ZeroTierOne into dev 2018-11-13 16:20:01 -08:00
Grant Limberg e3381a4c1f fix member init query 2018-11-13 16:19:55 -08:00
Adam Ierymenko 03e35b25b8 Merge branch 'dev' of http://git.int.zerotier.com/zerotier/ZeroTierOne into dev 2018-11-13 16:02:31 -08:00
Adam Ierymenko e2b0fb26b1 self-test build fix. 2018-11-13 16:02:26 -08:00
Grant Limberg 01c18cc442 update makefile for libpqxx controller 2018-11-13 16:01:43 -08:00
Grant Limberg 01e6df4d46 Merge branch 'dev' of http://git.int.zerotier.com/ZeroTier/ZeroTierOne into dev 2018-11-13 16:00:17 -08:00
Grant Limberg 882b03436d WIP: libpxx instead of libpq 2018-11-13 16:00:13 -08:00
Adam Ierymenko 690bd933d5 Support shutdown with postLimit in BlockingQueue 2018-11-13 13:52:45 -08:00
Adam Ierymenko 6684559cd9 More Mac tap improvements and threading efficiency improvements. 2018-11-13 13:51:25 -08:00
Adam Ierymenko 4ed7d20a48 Another stability fix... turns out vfork is problematic here. 2018-11-13 12:46:36 -08:00
Adam Ierymenko 350116c513 Stability improvements for Mac virtual Ethernet tap driver. 2018-11-13 12:42:03 -08:00
Adam Ierymenko 7bde2c089d Merge branch 'dev' of http://git.int.zerotier.com/zerotier/ZeroTierOne into dev 2018-11-13 12:08:02 -08:00
Adam Ierymenko 90631adb9b Improve multithreading support for OneService (faster, dynamic adjustment of thread count based on HW concurrency). 2018-11-13 12:07:58 -08:00
Adam Ierymenko f6450cd7e1 Cleanup and a minor performance improvement. 2018-11-13 10:19:51 -08:00
Adam Ierymenko 3b6b1d1674 Make incoming packet processor thread pool dynamic based on core count. 2018-11-13 09:35:20 -08:00
Grant Limberg 33d7b22abe Merge branch 'dev' of http://git.int.zerotier.com/ZeroTier/ZeroTierOne into dev 2018-11-11 23:06:31 -08:00
Grant Limberg 2f9712e6a7 utility script to update public controllers 2018-11-11 23:06:24 -08:00
Adam Ierymenko b937aeb857 cleanup 2018-11-11 23:03:51 -08:00
Grant Limberg f3d8846df3 Merge branch 'dev' of http://git.int.zerotier.com/ZeroTier/ZeroTierOne into dev 2018-11-11 22:55:57 -08:00
Grant Limberg 2729db9555 exceptions 2018-11-11 22:55:53 -08:00
Adam Ierymenko 1cec4b1c4c Raise thread count to 8 2018-11-11 22:55:38 -08:00
Adam Ierymenko 7048c77ebc Merge branch 'dev' of http://git.int.zerotier.com/zerotier/ZeroTierOne into dev 2018-11-11 22:35:26 -08:00
Adam Ierymenko c9c17eaddd Retire RethinkDB, simple receive path multithreading. 2018-11-11 22:35:15 -08:00
Grant Limberg f1b82b734a Merge branch 'dev' of http://git.int.zerotier.com/ZeroTier/ZeroTierOne into dev 2018-11-11 21:09:35 -08:00
Grant Limberg 4c0e7aa8b0 more error checking 2018-11-11 21:08:51 -08:00
Adam Ierymenko 296e4616cc Migrate Windows to use Visual Studio 2017 Community instead of 2015. 2018-11-11 20:31:31 -08:00
Adam Ierymenko 15649334a6 Do not use new "feth" devices for ZT traffic. 2018-11-11 19:22:07 -08:00
Adam Ierymenko b3c2c0866f Times should be int64_t, not uint64_t 2018-11-11 17:38:17 -08:00
Joseph Henry c6ae81fac7 Added preprocessor check for __APPLE__ as an attempted fix for ticket #600 2018-11-11 14:23:24 -08:00
Joseph Henry 79086f0858 Merge branch 'dev' of http://git.int.zerotier.com/ZeroTier/ZeroTierOne into dev 2018-10-26 12:00:01 -07:00
Joseph Henry c148a23df4 Added preprocessor check for ZT_NO_CAPABILITIES around header includes 2018-10-26 11:59:55 -07:00
Adam Ierymenko c56831767e Fix Mac tap agent abort on EINTR. 2018-10-25 20:44:32 -07:00
Adam Ierymenko 72a724f075 Clean up some stuff after new feth tap implementation, and comment agent file. 2018-10-25 13:10:24 -07:00
Adam Ierymenko 96e1df5854 Merge branch 'dev' of http://git.int.zerotier.com/zerotier/ZeroTierOne into dev 2018-10-25 12:43:35 -07:00
Adam Ierymenko 2e44b90f63 OSX no longer requires the kext due to feth black magic! The MacEthernetTapAgent must be installed in /Library/Application Support/ZeroTier/One for ZT to work now. Eventually this can let us do an app bundle, get rid of the pkg, and have ZT itself run with normal or reduced privileges. Also fixes GitHub issue #870 (at least for me) and may be faster than the old kext. 2018-10-25 12:43:30 -07:00
Grant Limberg 5a0adba798 Setup docker container to use jemalloc 2018-10-24 13:36:21 -07:00
Grant Limberg 761cc5c923 remove another noisy log line 2018-10-24 13:36:07 -07:00
Grant Limberg f901b9dd6b Merge branch 'dev' of http://git.int.zerotier.com/zerotier/ZeroTierOne into dev 2018-10-24 12:08:48 -07:00
Grant Limberg d87fcca176 Fully operational pgsql controller 2018-10-24 12:06:17 -07:00
Grant Limberg 7c72653385 because Windows.... 2018-10-23 13:21:25 -07:00
Joseph Henry 7dbccf08ae Removed unnecessary block before get request. Possible bug fix for Synology NAS ticket #27 2018-10-23 10:58:25 -07:00
Bruno Tavares 2d21c18ebd Update ZeroTier version on Docker
This commit changes the Dockerfile ot use the multi-stage build and help
to get an automated build on Docker.

The idea of the multi-stage build is to use the already stable Debian
distribution channel to provide up-to-date versions of ZeroTier.

The benefit is that it would be possible to automate the image build,
either on Docker Hub, Travis or taking advantage of the [docker-library/official-images] infrastructure.

This changes follows the best-practices suggested by
[docker-library/official-images], such as using a High Availability GPG
keyserver, providing a default CMD, allowing "bash" on `docker run` and
others.

Given that both the builder `debian:stretch` and `alpine:latest` are
official messages and have [manifests], this means that this Dockerfile
is also multi-platform. This means that this same Dockerfile will
pick-up the correct Debian package according to the architecture of the
running system during build.

With this changes we could try to promote the image to be parte of
[docker-library/official-images], and take advantage of automated
publishing of multi-architecture images. Others would be able to use
`docker run zerotier` and download the latest version appropriate to
their system.

Related to #682

[docker-library/official-images]: https://github.com/docker-library/official-images
[manifests]: https://blog.docker.com/2017/09/docker-official-images-now-multi-platform/
2018-10-21 11:28:04 -03:00
Adam Ierymenko 15d0aad3c0 Merge branch 'dev' of http://git.int.zerotier.com/zerotier/ZeroTierOne into dev 2018-10-19 10:06:06 -05:00
Adam Ierymenko f0fc9b1766 Merge branch 'master' of http://git.int.zerotier.com/zerotier/ZeroTierOne into dev 2018-10-19 10:05:51 -05:00
Joseph Henry 7c0331997a Ticket #739 - Fixed what appears to be a copy-paste error for machine type detection in linux makefile, added line for armv7hl 2018-10-03 15:40:16 -07:00
Joseph Henry 04de2302a7 More insightful errors for get command 2018-10-03 14:24:21 -07:00
Grant Limberg 1da1409db2 get rid of a noisy log line 2018-09-28 10:58:26 -07:00
Grant Limberg c1ea1329c1 Merge branch 'dev' into libpq 2018-09-28 10:56:40 -07:00
Grant Limberg 417aa9547b Working controller & docker container for GKE 2018-09-28 10:55:39 -07:00
Adam Ierymenko 60d5a3c631 Merge pull request #853 from darkain/dev
Fix IPv6 address string representation
2018-09-25 15:32:39 -07:00
Adam Ierymenko 7a42416a78 Merge pull request #822 from dschulz/controller-patch1-dschulz
Add functionality to erase members from networks using file backend i…
2018-09-25 11:38:25 -07:00
Adam Ierymenko 2a143a7505 Merge pull request #858 from tommyang/fix/mac-uninstall-script
macOS uninstall script: remove symlinks from the actual location
2018-09-25 11:36:28 -07:00
Grant Limberg 0510f85a8f Merge branch 'dev' into libpq 2018-09-25 10:19:59 -07:00
Grant Limberg 5b222d0a09 cleanup connections after errors 2018-09-25 10:17:15 -07:00
Travis LaDuke 133b64679c Update README.md 2018-09-24 15:02:11 -07:00
Travis LaDuke 79b88a22c3 Update README.md
Document that allowManagementFrom is an array
2018-09-24 14:58:44 -07:00
Tommy Yang 88d879987d Remove symlinks from the actual location
Binary symlinks are in `/usr/local/bin` instead of `/usr/bin` since commit 0cf4ddd
2018-09-23 16:53:30 -07:00
Joseph Henry 27c37a18f3 Merge branch 'dev' of http://git.int.zerotier.com/ZeroTier/ZeroTierOne into dev 2018-09-17 14:42:33 -07:00
Joseph Henry b8268d894b Changed home path for Synology 2018-09-17 11:44:56 -07:00
Vincent Milum Jr 79b47b055a Only null terminate the first character 2018-09-15 12:13:06 -07:00
Vincent Milum Jr 8e260bae11 Correcting conversion to/from IP address / string
1) Use existing standard libraries to convert to/from IPv4/IPv6 strings and binary representation.
2) Move null terminator assignment InetAddress::toIpString to top of function, this way if ANY errors occurs that don't write content to the buffer, we're not passing a potentially dangerous buffer around.
2018-09-14 22:42:58 -07:00
Adam Ierymenko af61ee6f3a Merge pull request #836 from skunkwerks/feature/add-freebsd-debugs
add support for debug flags in FreeBSD
2018-09-14 08:08:59 -07:00
Adam Ierymenko 04d7a1df96 Merge pull request #837 from skunkwerks/feature/update-ext-json
update external JSON dependency to address libc++ compatibility
2018-09-14 08:08:21 -07:00
Adam Ierymenko b9fd50e348 Merge pull request #845 from asbjornenge/docker-updates
Using multi-stage build for Dockerfile
2018-09-14 08:07:36 -07:00
Adam Ierymenko ef48d11266 Merge pull request #848 from darkain/master
Fix compile on FreeBSD targeting ARMv6 (Raspberry Pi)
2018-09-14 08:05:39 -07:00
Adam Ierymenko a47559d9e3 dev should have odd minor version 2018-09-14 08:05:07 -07:00
Vincent Milum Jr cffb992ae8 Adding ARM/NEON detection for non-Linux targets 2018-09-12 19:51:28 -07:00
Vincent Milum Jr 39e720e811 Adding proper EABI target for ARM32/Salsa 2018-09-12 19:49:14 -07:00
Joseph Henry 7b87e9c0cb Added ability for OneService to monitor local.conf for changes and automatically reload 2018-09-11 16:55:46 -07:00
Joseph Henry 3dd9b1aa9b Added ability to specify zt home directory via ZEROTIER_HOME - Addresses ticket #829 2018-09-10 16:25:39 -07:00
Joseph Henry 0fddebc791 Added ability to manually set secondary and tertiary ports in local.conf 2018-09-10 13:06:05 -07:00
Asbjørn Enge 701d64936d Using builder pattern to build in container while keeping final image small 2018-09-07 14:11:25 +02:00
Grant Limberg 0ec6215493 Send member/network change notifications via Postgres 2018-09-06 15:14:16 -07:00
Grant Limberg de45bdb448 quieting things down a little bit 2018-09-05 17:03:49 -07:00
Grant Limberg 7b608c6ca3 Fix testing for true/false. Dont attempt to update member status on networks that we know dont exist 2018-09-05 16:54:23 -07:00
Grant Limberg 6ff78c9c26 fix crashes 2018-09-05 16:08:06 -07:00
Grant Limberg d701f4e331 Added some exception hadling. Dont want to live *too* dangerously here 2018-09-05 11:49:07 -07:00
Grant Limberg 92abc92463 Theoretically we have PostgreSQL support now 2018-09-05 11:30:17 -07:00
Grant Limberg a4be9ceb5a dont insert/update creation time. Let the database handle it with the default value 2018-09-04 16:08:26 -07:00
Grant Limberg e21b6e1daf commit thread WIP 2018-09-04 16:05:34 -07:00
Grant Limberg 2e3b03fff9 members initialized 2018-09-04 14:51:35 -07:00
Grant Limberg cd657da431 Online Update/Notify thread 2018-09-04 14:00:02 -07:00
Grant Limberg 17af09a5cc Postgres Integration has begun 2018-08-31 14:58:15 -07:00
Travis LaDuke ceff48b07c Update bug_report.md 2018-08-29 10:15:10 -07:00
Travis LaDuke 199566965e Update issue templates 2018-08-29 09:39:18 -07:00
Travis LaDuke 46e46e9b7b Update issue templates 2018-08-29 09:37:39 -07:00
Dave Cottlehuber 8b292d2dc7 ext: update nlohmann/json to v3.2.0
- include libc++7 compatibility for FreeBSD
- see https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=230629
2018-08-24 08:19:38 +00:00
Dave Cottlehuber 88abd6ffc6 add support for debug flags in FreeBSD 2018-08-24 08:18:25 +00:00
Joseph Henry 76b4ec12a0 Vault-related amendments 2018-08-09 14:32:26 -07:00
Joseph Henry 0e4cfd897b Multipath-related amendments from merge into edge 2018-08-09 13:40:49 -07:00
Adam Ierymenko 515d7962b0 Build fixes. 2018-08-09 11:39:42 -07:00
Adam Ierymenko 553101e8b5 merge dev 2018-08-09 11:31:37 -07:00
Joseph Henry 3cd0ab1b3b Remove direct include of bits/sockaddr.h 2018-08-03 16:20:08 -07:00
Diego Schulz fc6dba0797 Add functionality to erase members from networks using file backend in controller microservice
Signed-off-by: Diego Schulz <dschulz@gmail.com>
2018-08-02 17:13:55 -04:00
Joseph Henry e01c0adff2 Added ifdef checks to omit some ManagedRoute code in SDK builds 2018-08-01 17:17:04 -07:00
Adam Ierymenko e75a093a8c 2018-07-27 -- Version 1.2.12
* Fixed a bug that caused exits to take a long time on Mac due to huge numbers of redundant attempts to delete managed routes.
 * Fixed a socket limit problem on Windows that caused the ZeroTier service to run out of sockets, causing the UI and CLI to be unable to access the API.
 * Fixed a threading bug in the ZeroTier Core, albeit one that never manifested on the regular ZeroTier One service/client.
 * Fixed a bug that could cause the service to crash if an authorized local client accessed an invalid URL via the control API. (Not exploitable since you needed admin access anyway.)
2018-07-27 14:14:09 -07:00
Adam Ierymenko dcffb042ff Windows Advanced Installer to 1.2.12 2018-07-27 13:35:20 -07:00
Adam Ierymenko d724af6a99 Replace Sao Paolo root with Buenos Aires in default planet def (will push to network too) 2018-07-25 15:03:01 -07:00
Adam Ierymenko b30f423fc9 . 2018-07-25 12:11:59 -07:00
Adam Ierymenko 1fc14292fe Version bumps. 2018-07-25 12:09:31 -07:00
Adam Ierymenko fa7e7fc6f9 Revert fix for GitHub issue #600 because it causes route objects to build up forever (at least on Mac). Bleh. #600 is a rare issue and will need some other fix after reliable duplication. 2018-07-20 15:53:19 -07:00
Adam Ierymenko 5b114791e5 Fix a bug that caused a crash on empty HTTP requests (localhost only) and add a lightweight lock to the RX queue to prevent possible threads stepping on each other in parallel receive paths. 2018-07-20 14:01:58 -07:00
Adam Ierymenko 9bc11a369c Merge branch 'dev' of http://10.6.6.2/zerotier/ZeroTierOne into dev 2018-07-20 07:41:52 -07:00
Adam Ierymenko ac40f2191c . 2018-07-20 07:41:47 -07:00
Joseph Henry 62a93c58fd Added ifdefs surrounding usage of getifaddrs() on Android 2018-07-19 17:50:10 -07:00
Joseph Henry 65b0030342 Added basic QoS rule handling 2018-07-11 16:55:13 -07:00
Joseph Henry f302fac423 Minor tweak to linux makefile 2018-07-11 16:32:49 -07:00
Adam Ierymenko f94aea8119 Return error 503 if RethinkDB is down when built as RethinkDB-based controller. 2018-07-11 10:42:31 -07:00
Joseph Henry 28cb40529d Rough draft of fq-codel implementation 2018-07-10 16:50:12 -07:00
Adam Ierymenko 37ae3b2b80 Remote debug printf. 2018-07-03 12:52:35 -07:00
Adam Ierymenko 73e4286fbf Fix two controller bugs: filesystem bug and another possible infinite recursion bug. 2018-07-03 12:51:41 -07:00
Grant Limberg 4e6151ebd9 Added "Create and Join Network" menu item to windows system tray UI 2018-06-28 15:24:45 -07:00
Grant Limberg fc225401a5 use easy mode for network creation 2018-06-28 15:05:24 -07:00
Joseph Henry d74817f79f Added blurb about allowTcpFallbackRelay to README 2018-06-22 16:46:50 -07:00
Joseph Henry bdcdccfcc3 Improved path selection, more efficient traffic allocation, lower QoS/ACK overhead 2018-06-22 16:30:20 -07:00
Grant Limberg 352ec3430f Add a define to set FD_SETSIZE=1024 on Windows
Default on Windows is extremely low at 64 and is the likely culprit behind the UI and CLI not being able to talk to the background service
2018-06-21 12:11:10 -07:00
Grant Limberg 978d2fcb56 Optimize C25519 and Poly1305 on Windows even in debug. 2018-06-21 12:08:15 -07:00
Joseph Henry 52264d5e28 Fixed aggregateLinkLatency(). Also changed unit for throughput from byte to bit 2018-06-14 16:48:35 -07:00
Joseph Henry 17fbb020e7 Added multipath field to zerotier-cli status output. Adjusted how path estimates are computed and cached 2018-06-14 16:34:45 -07:00
Joseph Henry f8005b88ad Minor cleanup. More efficient push() operation for RingBuffer 2018-06-13 14:50:37 -07:00
Joseph Henry 0faa655b83 Reduced how often relative path qualities and aggregate link allocations are computed 2018-06-12 16:30:46 -07:00
Joseph Henry 6fddf31db3 Improved rate limit logic for QoS/ACK packets. Also reduced how often processBackgroundPathMeasurements() is called 2018-06-12 15:24:12 -07:00
Adam Ierymenko 01257a461e Merge branch 'dev' of github.com:zerotier/ZeroTierOne into dev 2018-06-12 09:39:15 -07:00
Adam Ierymenko 817b9d012e Merge branch 'dev' of http://10.6.6.2/zerotier/ZeroTierOne into dev 2018-06-12 09:38:52 -07:00
Adam Ierymenko 04b3525e0f Merge pull request #755 from skunkwerks/fix/c++-17-deprecation
fix clang C++17 deprecation when building with ZT_DEBUG=1
2018-06-12 09:38:26 -07:00
Adam Ierymenko d55c732e19 Merge pull request #764 from Elfe/master
fix MAC address rule parsing as even/uneven switches at every colon
2018-06-12 09:37:28 -07:00
Adam Ierymenko d223427e22 Merge pull request #773 from alexforencich/master
Add UFW firewall application preset
2018-06-12 09:37:01 -07:00
Adam Ierymenko 64856adc3c Merge pull request #776 from Wykks/patch-1
Improve debian service requirements
2018-06-12 09:36:46 -07:00
Grant Limberg 7c53adbcfe quieting things down unless ZT_TRACE is defined 2018-06-11 10:47:58 -07:00
Grant Limberg dce9cb27c1 helps to have an ==0 on a strcmp 2018-06-11 09:53:11 -07:00
Grant Limberg 4199c56e99 cant compare character arrays with == 2018-06-11 09:53:00 -07:00
Joseph Henry 9681fedbb4 Spellcheck sweep across codebase 2018-06-07 17:25:27 -07:00
Joseph Henry b6d97af451 Added rate gates for QOS and ACK packets 2018-06-07 15:26:18 -07:00
Joseph Henry a9ca26c698 Added TX queue cap for issue #769 2018-06-07 12:58:07 -07:00
Grant Limberg 9463d4abe4 Fix for issue #778
Double quote before member name in `/controller/network/network_id/member` API
2018-06-05 12:55:39 -07:00
Grant Limberg b9975845ff Merge branch 'rtnetlink' into edge 2018-06-04 12:24:58 -07:00
Grant Limberg b22405b64b rtnetlink integrated. no more callouts to iproute2 2018-06-04 12:24:12 -07:00
Grant Limberg 62210e57f1 helps to have an ==0 on a strcmp 2018-06-04 11:24:24 -07:00
Grant Limberg 4dd093efc9 cant compare character arrays with == 2018-06-04 11:07:12 -07:00
Joseph Henry 91a22a686a Added auto-escalation to multipath if both peers support it. Improved QoS/ACK tracking. Related bug fixes 2018-06-01 18:03:59 -07:00
Guillaume de Jabrun a307dff3b7 Improve debian service requirements 2018-05-31 23:55:36 +02:00
Alex Forencich 20f0bed2f6 Add UFW firewall application preset 2018-05-30 19:10:51 -07:00
Joseph Henry 46a7a2be2e Added VERB_ACK and VERB_QOS_MEASUREMENT, refined notion of path quality 2018-05-30 17:45:29 -07:00
Adam Ierymenko 8199dbd0dc Merge branch 'dev' into edge 2018-05-30 11:19:12 -07:00
Karsten Elfenbein dfe426e4e0 fix MAC address rule parsing as even/uneven switches at every colon 2018-05-26 21:00:09 +02:00
Grant Limberg 3ace61ef85 comment out addInterface/removeInterface code for now
We already have ioctl based code to do this
2018-05-25 15:37:00 -07:00
Grant Limberg 442595d6fc also store binary representation of mac address in the interface lookup table for later use 2018-05-25 14:25:44 -07:00
Grant Limberg be469f4dd0 add/remove routes via rtnetlink 2018-05-25 14:18:06 -07:00
Grant Limberg 7da4b0af15 better data localization in LinuxNetLink now that I know what Im doing 2018-05-24 16:15:03 -07:00
Grant Limberg 2fff651378 whoops. committed a binary 2018-05-24 16:14:32 -07:00
Grant Limberg c24d16e62e ManagedRoute uses ioctl to add/remove routes on Linux
Added LinuxNetLink to talk to the rtnetlink socket for adding interfaces, addresses routes.  Not yet complete.  Can currently monitor changes on the system.
2018-05-24 15:22:11 -07:00
Dave Cottlehuber c36c92e077 node: remove deprecated register hint for C++17 compatibility
when building with `ZT_DEBUG=1` this hint produces a warning:

> node/Packet.cpp:335:43: error: 'register' storage class specifier is deprecated and incompatible with C++17 [-Werror,-Wdeprecated-register]
See http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2015/n4340
2018-05-18 09:09:27 +00:00
Adam Ierymenko c0efba79c7 Merge branch 'dev' of http://git.int.zerotier.com/zerotier/ZeroTierOne into dev 2018-05-11 13:40:22 -07:00
Adam Ierymenko 5809941ae9 Windows 1.2.10 2018-05-11 13:40:03 -07:00
Joseph Henry 535ba8a207 Consolidated powerpc64le machine types, added 32-bit powerpc machine type and a flag to disable use of Linux capabilities 2018-05-09 13:51:32 -07:00
Joseph Henry 43331d3fe8 Merge branch 'master' into dev 2018-05-09 10:31:19 -07:00
Adam Ierymenko 9765ba334a 1.2.10 2018-05-08 13:07:20 -07:00
Adam Ierymenko 0cd01b6ff8 Fix silly bug where moons and networks were being loaded by the address of an array rather than the proper value. 2018-05-07 12:51:39 -07:00
Adam Ierymenko 5f85e33510 GitHub issue #734 (warning removal) 2018-05-07 12:15:55 -07:00
Joseph Henry 22301a4599 Added override directive to CFLAGS for Synology builds in make-linux.mk 2018-05-04 14:31:34 -07:00
Joseph Henry c8a907fd71 Added override directive to CXXFLAGS for Synology builds in make-linux.mk 2018-05-04 13:03:52 -07:00
Joseph Henry d01b1ffde5 Added -fPIC for Synology builds 2018-05-04 12:09:04 -07:00
Adam Ierymenko f4e993c814 Debian clean fix and CentOS 6 upgrade fix. 2018-05-03 12:51:49 -07:00
Joseph Henry 91c8e82c42 Adjusted locking order of _paths_m for path pruning. Other minor multipath changes 2018-05-02 15:24:14 -07:00
Adam Ierymenko 776ff46db7 User useradd not adduser on Debian. 2018-05-02 14:12:10 -07:00
Adam Ierymenko 9001ab5858 Do not add zerotier-one user if it does not exist (Debian) 2018-05-02 14:08:42 -07:00
Joseph Henry 1debe2292d Cleanup. Misc type conversion and signedness fixes 2018-05-02 11:22:07 -07:00
Joseph Henry 6a2ba4baca Introduced basic multipath support 2018-05-01 16:32:15 -07:00
Joseph Henry 836d897aec Re-ordered local.conf and node init logic, also split software update config into separate method to fix bad node pointer reference 2018-05-01 13:39:06 -07:00
Adam Ierymenko 740b0fbbf6 Merge branch 'dev' into edge 2018-04-30 13:08:24 -07:00
Adam Ierymenko 92e716d93d Merge branch 'dev' of http://10.6.6.2/zerotier/ZeroTierOne into dev 2018-04-30 13:08:16 -07:00
Adam Ierymenko c7115a0671 Merge branch 'dev' of http://10.6.6.2/zerotier/ZeroTierOne into edge 2018-04-30 13:07:52 -07:00
Adam Ierymenko 020bbed935 ARM32 fix. 2018-04-30 13:07:32 -07:00
Grant Limberg 0c60963a94 app icon with no alpha channel 2018-04-30 12:08:09 -07:00
Travis LaDuke d704f5f2d2 Remove alpha channel from app store icon 2018-04-30 12:06:41 -07:00
Adam Ierymenko 381bbb0e5e Merge branch 'dev' into edge 2018-04-30 08:47:51 -07:00
Adam Ierymenko 0ebd19c14a Merge branch 'dev' of /media/psf/Code/ZeroTier/ZeroTierOne into dev 2018-04-27 20:49:46 -07:00
Adam Ierymenko d4160afac8 Another squeeze fix to see if we can make this work. 2018-04-27 19:51:27 -07:00
Adam Ierymenko fffb037873 Fix for packaging on old Debian squeeze. 2018-04-27 18:53:55 -07:00
Adam Ierymenko 1df5d0453d Remove separate dh-systemd dependency since this is obsolete on newer Debian anyway. 2018-04-27 18:50:40 -07:00
Travis LaDuke 19d453cb90 Add some more icon sizes
20x20, 60x60, 1024x1024 pngs
getting ready for an iOS release
2018-04-27 16:48:34 -07:00
Travis LaDuke 6e7437a0d0 Add some more icon sizes
20x20, 60x60, 1024x1024 pngs
getting ready for an iOS release
2018-04-27 16:40:36 -07:00
Adam Ierymenko caf849fcba Typo. 2018-04-27 16:22:36 -07:00
Adam Ierymenko 7533d244a9 Debian build fix. 2018-04-27 16:21:22 -07:00
Adam Ierymenko 0a52840fa3 1.2.8 Windows Advanced Installer update. 2018-04-27 13:52:33 -07:00
Adam Ierymenko a7d0905b74 1.2.8 bump for all but Windows install files. 2018-04-27 13:06:00 -07:00
Adam Ierymenko 05bfafbce8 Merge branch 'master' into edge 2018-04-25 06:41:44 -07:00
Adam Ierymenko d32a26f780 Merge pull request #428 from danielskowronski/netbsd-support
NetBSD support (we still consider this unsupported, but it might work -- thanks!)
2018-04-25 06:39:37 -07:00
Adam Ierymenko 42ec780a6f Merge branch 'dev' into netbsd-support 2018-04-25 06:39:02 -07:00
Adam Ierymenko 4608880fb0 Re-enable faster ed25519 signatures on x64 thanks to PR from @jonathonf 2018-04-25 06:34:34 -07:00
Adam Ierymenko 7492e2789f Merge pull request #722 from jonathonf/dev
Fix ed25519-amd64-asm PIC compatibility
2018-04-25 06:08:12 -07:00
Adam Ierymenko 9564a8eaf6 Delete junk. 2018-04-23 14:56:22 -07:00
Adam Ierymenko f12c0e79c9 GitHub issue #723 2018-04-23 14:11:26 -07:00
Jonathon Fernyhough e4e0be979e Fix ed25519-amd64-asm PIC compatibility
The Hyperledger implementation (https://github.com/hyperledger/iroha-ed25519)
contains changes to the assembly code to allow PIC. This in turn fixes
compilation/linking of ZeroTier One when "full hardening" flags are used.
2018-04-21 16:18:00 +01:00
Adam Ierymenko 86637cda9f Disable ASM ed25519 by default (it only helps significantly on controllers) so fPIE will work -- GitHub issue #717 2018-04-20 11:35:50 -07:00
Adam Ierymenko 94f41e2332 Merge branch 'dev' of github.com:zerotier/ZeroTierOne into dev 2018-04-18 08:08:06 -07:00
Adam Ierymenko 3d2a50f811 Merge pull request #654 from atopuzov/armv7l
Add support for armv7l
2018-04-18 08:06:53 -07:00
Adam Ierymenko c2ffbb8627 Merge pull request #673 from neutronscott/dev
check physical blacklist for interface binding as well
2018-04-18 08:05:51 -07:00
Adam Ierymenko 54218f6c3c Merge pull request #690 from Pablohn26/master
Warn about invalid network id instead of help
2018-04-18 08:05:28 -07:00
Adam Ierymenko 6fdbdf9272 Merge pull request #712 from elmar/master
fix typo in documentation
2018-04-18 08:04:19 -07:00
Adam Ierymenko 3de7691af3 Merge branch 'master' of github.com:zerotier/ZeroTierOne
* Features and Core Improvements
    * Path selection has been overhauled to improve path stability, simplify code, and prepare for multi-path and trunking in the next major release.
    * This version introduces remote tracing for remote diagnostics. Network controllers can set a node (usually the controller itself) to receive remote tracing events from all members of the network or from select members. Events are only sent if they pertain to a given network for security reasons.
    * Multicast replication can now be done by designated multicast replicators on a network (flagged as such at the controller) rather than by the sender. Most users won't want this, but it's useful for specialized use cases on hub-and-spoke networks and for low-power devices.
    * Cryptographic performance improvements on several platforms.
    * Multithreaded performance improvements throughout the code base, including the use of an inline lightweight spinlock for low-contention resources.
 * Bugs fixed
    * Disappearing routes on Mac (GitHub issue #600)
    * Route flapping and path instability in some dual-stack V4/V6 networks
    * Blacklist (in local.conf) doesn't work reliably (GitHub issue #656)
    * Connection instabilities due to unsigned integer overflows in timing comparisons (use int64_t instead of uint64_t)
    * Binaries don't run on some older or lower-end 32-bit ARM chips (build problem)
    * ARM NEON crypto code crashes (build problem)
    * Fixed some lock ordering issues revealed by "valgrind" tool
    * The "zerotier-idtool" command could not be accessed from "zerotier-one" via command line switch
    * Leaking sockets on some platforms when uPnP/NAT-PMP is enabled
    * Fixed two very rare multithreading issues that were only observed on certain systems
 * Platform-Specific Changes
    * MacOS
        * Installer now loads the kernel extension right away so that High Sierra users will see the prompt to authorize it. This is done in the "Security & Privacy" preference pane and must be done driectly on the console (not via remote desktop). On High Sierra and newer kexts must be authorized at the console via security settings system preferences pane.
    * Windows
        * The Windows installer should now install the driver without requiring a special prompt in most cases. This should make it easier for our packages to be accepted into and updated in the Chocolatey repository and should make it easier to perform remote installs across groups of machines using IT management and provisioning tools.
        * The Windows official packages are now signed with an EV certificate (with hardware key).
        * The Windows UI can now log into ZeroTier Central and join networks via the Central API.
        * The `zerotier-idtool` command should now work on Windows without ugly hacks.
        * Upgraded the installer version.
        * Made a few changes to hopefully fix sporadic "will not uninstall" problems, though we cannot duplicate these issues ourselves.
    * Linux
        * Device names are now generated deterministically based on network IDs for all newly joined networks.
    * Android
        * Multicast now works on Android in most cases! Android apps can send and receive multicast and subscribe to multicast group IPs. Note that in some cases the app must bind to the specific correct interface for this to work.
        * IPv6 can be disabled in UI for cases where it causes problems.
2018-04-17 13:32:39 -07:00
Adam Ierymenko bbed93bcf4 * Features and Core Improvements
* Path selection has been overhauled to improve path stability, simplify code, and prepare for multi-path and trunking in the next major release.
    * This version introduces remote tracing for remote diagnostics. Network controllers can set a node (usually the controller itself) to receive remote tracing events from all members of the network or from select members. Events are only sent if they pertain to a given network for security reasons.
    * Multicast replication can now be done by designated multicast replicators on a network (flagged as such at the controller) rather than by the sender. Most users won't want this, but it's useful for specialized use cases on hub-and-spoke networks and for low-power devices.
    * Cryptographic performance improvements on several platforms.
    * Multithreaded performance improvements throughout the code base, including the use of an inline lightweight spinlock for low-contention resources.
 * Bugs fixed
    * Disappearing routes on Mac (GitHub issue #600)
    * Route flapping and path instability in some dual-stack V4/V6 networks
    * Blacklist (in local.conf) doesn't work reliably (GitHub issue #656)
    * Connection instabilities due to unsigned integer overflows in timing comparisons (use int64_t instead of uint64_t)
    * Binaries don't run on some older or lower-end 32-bit ARM chips (build problem)
    * ARM NEON crypto code crashes (build problem)
    * Fixed some lock ordering issues revealed by "valgrind" tool
    * The "zerotier-idtool" command could not be accessed from "zerotier-one" via command line switch
    * Leaking sockets on some platforms when uPnP/NAT-PMP is enabled
    * Fixed two very rare multithreading issues that were only observed on certain systems
 * Platform-Specific Changes
    * MacOS
        * Installer now loads the kernel extension right away so that High Sierra users will see the prompt to authorize it. This is done in the "Security & Privacy" preference pane and must be done driectly on the console (not via remote desktop). On High Sierra and newer kexts must be authorized at the console via security settings system preferences pane.
    * Windows
        * The Windows installer should now install the driver without requiring a special prompt in most cases. This should make it easier for our packages to be accepted into and updated in the Chocolatey repository and should make it easier to perform remote installs across groups of machines using IT management and provisioning tools.
        * The Windows official packages are now signed with an EV certificate (with hardware key).
        * The Windows UI can now log into ZeroTier Central and join networks via the Central API.
        * The `zerotier-idtool` command should now work on Windows without ugly hacks.
        * Upgraded the installer version.
        * Made a few changes to hopefully fix sporadic "will not uninstall" problems, though we cannot duplicate these issues ourselves.
    * Linux
        * Device names are now generated deterministically based on network IDs for all newly joined networks.
    * Android
        * Multicast now works on Android in most cases! Android apps can send and receive multicast and subscribe to multicast group IPs. Note that in some cases the app must bind to the specific correct interface for this to work.
        * IPv6 can be disabled in UI for cases where it causes problems.
2018-04-17 13:30:37 -07:00
Adam Ierymenko 8900b30b6e Windows installer tweaks and version bumps. 2018-04-17 12:47:33 -07:00
Adam Ierymenko ae4fb799e4 More versioning 2018-04-17 12:14:59 -07:00
Adam Ierymenko 3f1d1fb3c3 'versioning' 2018-04-17 12:12:49 -07:00
Adam Ierymenko f0a23ae0ea docs 2018-04-17 10:48:00 -07:00
Elmar S. Heeb c14f9cc247 fix typo in documentation 2018-04-14 10:52:30 +02:00
Adam Ierymenko e276b6463e Release notes, and shorten Linux canonical network ID derived device names a bit. 2018-04-12 10:33:06 -04:00
Adam Ierymenko 9da7967197 Merge branch 'dev' into edge 2018-04-12 09:08:48 -04:00
Adam Ierymenko 74f2b78c04 Refactor some potentially unsafe SharedPtr<> code. 2018-04-06 08:10:34 -07:00
Adam Ierymenko 2021f8cb5f Merge branch 'dev' into edge 2018-03-29 13:34:54 -07:00
Adam Ierymenko 40a9ebd078 GitHub issue #675 2018-03-29 10:44:57 -07:00
Adam Ierymenko 8c1b73b29c GitHub issue #701 2018-03-29 10:25:29 -07:00
Adam Ierymenko 6679a55693 certutil needs -f in case TrustedProvider store is not yet created 2018-03-27 19:15:14 -07:00
Adam Ierymenko 1101c1d919 Works on 32-bit too now. 2018-03-27 18:46:06 -07:00
Adam Ierymenko fcb529b348 Take two on unattended driver installs. I think it works now.' 2018-03-27 17:53:28 -07:00
Adam Ierymenko 680b1ca208 Upgrade installer AIP versions and redo how we bundle the driver sub-installer to allow unattended driver installs (hopefully). 2018-03-27 14:19:45 -07:00
Adam Ierymenko af74fe1711 Merge branch 'dev' into edge 2018-03-21 15:32:04 -07:00
Adam Ierymenko 494cf4049e Add specification of anchor and multicast hub address (optional) to new multicast and IPv4 enabled ad-hoc network ID format. 2018-03-21 15:31:48 -07:00
Adam Ierymenko c908b9f67a Add anchor and multicast hub address field to new multicast enabled ad-hoc address format. 2018-03-21 15:27:26 -07:00
Adam Ierymenko 209f6d9d2d Merge branch 'dev' into edge 2018-03-19 11:18:54 -07:00
Adam Ierymenko 916077012e Make sure fopen is in binary mode on Windows. 2018-03-16 11:27:11 -07:00
Adam Ierymenko beb170e4fb Use X64 ASM ed25519 signatures on Linux/x64, which are about 10X faster. Will matter a lot for network controllers, not so much for other things. 2018-03-13 06:51:17 -07:00
Adam Ierymenko a59912f3af SHA512 using libcrypto (not enabled by default) 2018-03-12 16:56:47 -07:00
Adam Ierymenko 610e594a50 Speed tweaks for signatures, etc. 2018-03-12 16:16:20 -07:00
Joseph Henry b4e2547052 Minor tweak to QNAP path getter 2018-03-12 11:23:10 -07:00
Pablo Hinojosa a9778549f2 Warn about invalid network id instead of help 2018-03-11 03:39:13 +01:00
Adam Ierymenko b601041b5b Merge branch 'edge' of http://10.6.6.2/zerotier/ZeroTierOne into edge 2018-03-09 07:51:43 -08:00
Adam Ierymenko 0945d6ec0d Merge branch 'dev' into edge 2018-03-09 07:50:38 -08:00
Adam Ierymenko 78d9cee416 Other fixes to IPv4 ad-hoc networks. 2018-03-09 00:10:01 -08:00
Adam Ierymenko bbdb2aa672 Some work on IPv4 enabled ad-hoc networks. 2018-03-08 23:53:57 -08:00
Adam Ierymenko 574b24c082 docs 2018-03-08 22:41:42 -08:00
Adam Ierymenko 874a187c7f cleanup 2018-03-08 22:39:51 -08:00
Adam Ierymenko e8fb443313 Forgot one other use in RethinkDb driver. 2018-03-08 22:34:51 -08:00
Adam Ierymenko 57b96af2c4 Fix for FileDB _networkChanged / _memberChanged problem. 2018-03-08 22:33:08 -08:00
Grant Limberg e61d4ab67a Merge branch 'dev' into edge 2018-02-23 13:58:24 -08:00
Grant Limberg 2ee358dbfc TAP driver requires input and output buffers for calls passed into DeviceIoControl
Otherwise the driver returns STATUS_INVALID_PARAMETER and the call fails.  This should fix some Multicast issues on Windows
2018-02-23 13:42:02 -08:00
Joseph Henry e3bb67d188 Added debug output convenience macros 2018-02-16 16:55:31 -08:00
Grant Limberg 2d289a3308 Just a little cleanup 2018-02-16 15:20:07 -08:00
Grant Limberg bdb2cc7c85 Linux: link system libcurl when compiling with ZT_VAULT_SUPPORT=1
Requires libcurl and development headers to be installed
2018-02-16 15:08:04 -08:00
Grant Limberg 7793060723 Add HashiCorp Vault storage of ZeroTier's public & secret identity
Adds a "vault" section to local.conf.  Example local.conf:

{
  "config": {
    "vault": {
      "vaultURL": "https://some.vault.host:8200",
      "vaultToken": "my-super-secret-vault-token",
      "vaultPath": "secure/place/to/put/identity"
    }
}

Additionally, the following environment variables can be set.  Environment variables override local.conf:

VAULT_ADDR
VAULT_TOKEN
VAULT_PATH

Identities will be placed in the keys "public" and "secret" under the user specified path.  If no path is specified, they will be placed in the token specific cubbyhole.

If identity.public and identity.secret exist on disk and vault is configured, they will be automatically added to Vault and removed from disk.

TODO:
 *  Decide behavior for if Vault cannot be reached.
 *  Add libcurl as a dependency in Linux & Mac builds
 *  Add libcurl as a requirement for linux packages
2018-02-16 14:30:27 -08:00
Grant Limberg 84302ae9c7 Add CURL libs to VC project 2018-02-16 14:21:38 -08:00
Grant Limberg cd801b96fa libcurl binaries for Windows 2018-02-16 10:31:37 -08:00
Grant Limberg 5ff0653f9e Hooks into StateGet and StatePut for grabbing identity.secret from Vault 2018-02-16 10:18:10 -08:00
Grant Limberg 9574d635c1 Add Vault configuration option parsing to local.conf
{
   "settings": {
       ...
      "valut": {
         "vaultURL": "...",
         "vaultKey": "...",
         "vaultPath": "..."
      }
   }
}
2018-02-16 10:18:10 -08:00
Grant Limberg 1bec8ddce4 Better error messages when the ZeroTier service can't be contacted
Fixes #681
2018-02-13 16:41:21 -08:00
Grant Limberg f9b07c63db Merge branch 'dev' of http://git.int.zerotier.com/ZeroTier/ZeroTierOne into dev 2018-02-12 09:30:12 -08:00
Grant Limberg 8828fc7520 some JNI error checking 2018-02-12 09:29:44 -08:00
Adam Ierymenko 978d8fcd4a Merge branch 'dev' of http://10.187.63.16/zerotier/ZeroTierOne into dev 2018-02-09 06:35:09 +00:00
Adam Ierymenko 51aadcf901 A few fixes dicatated by valgrind. 2018-02-09 06:35:01 +00:00
Joseph Henry db952a050a Added platform checks for Windows in OneService 2018-02-08 14:15:32 -08:00
Grant Limberg f049740ae5 silence LOGV and LOGD in release builds for android 2018-02-07 15:53:23 -08:00
neutronscott 73ca9b6373 check physical blacklist for interface binding as well 2018-02-03 14:53:46 -05:00
Adam Ierymenko c6949aad2d Linux build fix on some versions. 2018-02-02 17:11:23 -08:00
Travis LaDuke e57d0fdccc Update README.md
this ip changes sometimes
2018-02-02 10:30:49 -08:00
Adam Ierymenko 82f383be43 A few other make changes. 2018-02-01 15:58:58 -08:00
Adam Ierymenko 26aaf253ac Allow us to build a semi-dynamic official binary that works back to CentOS 6, at least on x64, and is very fast since we can build it with newer clang or icc. 2018-02-01 15:52:41 -08:00
Adam Ierymenko 51715376bf Use Intel icc if available on Linux. 2018-02-01 13:05:17 -08:00
Adam Ierymenko ff95b0278c Merge branch 'dev' of http://10.6.6.2/zerotier/ZeroTierOne into dev 2018-02-01 12:46:40 -08:00
Adam Ierymenko fe1fa20c6c Fix build on Intel C/C++ Compiler for Linux. 2018-02-01 12:46:35 -08:00
Joseph Henry a867fe404b Omit pragma comment for ZT_SDK builds on Windows 2018-01-31 17:08:42 -08:00
Adam Ierymenko d6e8a5f3ca Fix Windows compile error. 2018-01-30 16:07:41 -08:00
Grant Limberg 4878d8ec15 Add CAP_NET_BIND_SERVICE to capabilities 2018-01-30 10:47:31 -08:00
Adam Ierymenko f7019d9e80 Tie up the rest of hub and spoke designated replicator multicast mode. 2018-01-26 22:14:10 -05:00
Adam Ierymenko 6d8e1e8783 More cleanup of old stuff. 2018-01-26 21:34:56 -05:00
Adam Ierymenko 939ab43ceb Do not send to origin in second buffered multicast path. 2018-01-26 21:22:51 -05:00
Adam Ierymenko d3d58ba8a7 Add support for designated multicast replicators to Multicaster::send(). 2018-01-26 21:19:51 -05:00
Adam Ierymenko f03fd57997 Clean up some multicast code. 2018-01-26 20:38:44 -05:00
Adam Ierymenko e74cd4b4ef A little more cleanup. 2018-01-26 20:06:11 -05:00
Adam Ierymenko f3dfd63634 Clean up some old stuff. 2018-01-26 20:00:37 -05:00
Adam Ierymenko 5f5302e595 More useful to allow arrays of IPs to bind to. 2018-01-25 17:27:08 -05:00
Adam Ierymenko 125ec622ca Add bindToWildcard local.conf option. 2018-01-25 14:59:11 -05:00
Adam Ierymenko 384e5b66de More work on GitHub issue #666 2018-01-25 14:16:07 -05:00
Adam Ierymenko 7e7723e98f A small memory use reduction. 2018-01-25 09:57:02 -05:00
Adam Ierymenko 4419734a7d Implement continuous contacting of designated anchors and multicast replicators - GitHub issue #666 2018-01-25 07:11:59 -05:00
Adam Ierymenko f821db29f3 . 2018-01-24 17:12:53 -05:00
Adam Ierymenko 6c64f1816d cleanup 2018-01-24 16:16:00 -05:00
Adam Ierymenko 34e2ad0dfc Stub out NetworkConfig for GitHub issue #666 2018-01-24 14:43:04 -05:00
Adam Ierymenko 055b99c3cb cleanup 2018-01-12 15:44:27 -08:00
Adam Ierymenko 531842dc6b Update miniupnpc to latest version (included library) 2018-01-12 15:30:40 -08:00
Adam Ierymenko d7f3c33d72 Add zerotier-idtool to Windows. 2018-01-12 15:03:45 -08:00
Adam Ierymenko 4e689998f9 Sanity checks on array sizes and fix a bug in IPv4 auto-assign. 2018-01-12 10:38:19 -08:00
Adam Ierymenko cd2a4b709c Reduce maximum batcn size for status updates but increase the number of whole record commit threads. 2018-01-12 09:18:27 -08:00
Adam Ierymenko d96aeac335 docs 2018-01-11 16:44:24 -08:00
Adam Ierymenko c594351bcc Remove old code. 2018-01-11 14:32:55 -08:00
Adam Ierymenko 5f976d7430 Reenable faster lock. 2018-01-11 14:31:19 -08:00
Adam Ierymenko f87326fc21 Fixes for lock ordering -- GitHub issue #573 2018-01-11 14:29:57 -08:00
Adam Ierymenko 0574a70fac docs 2018-01-11 09:49:13 -08:00
Adam Ierymenko 4e79804cd3 cleanup 2018-01-10 16:56:39 -08:00
Adam Ierymenko 86d5264167 Merge branch 'dev' of http://10.6.6.2/zerotier/ZeroTierOne into dev 2018-01-10 16:55:15 -08:00
Adam Ierymenko 5bc4399a58 cleanup 2018-01-10 16:55:07 -08:00
Grant Limberg 406bcf7d3f Fix compilation on Windows
DEBUG macro from miniupnpc interferring with enum Trace::DEBUG;
2018-01-10 15:24:54 -08:00
Adam Ierymenko f17cc1c6d8 cleanup 2018-01-10 15:03:39 -08:00
Joseph Henry 57077e4607 Added (get) command blurb in cli help 2018-01-10 14:40:31 -08:00
Adam Ierymenko 6304c85d3f Merge branch 'dev' of http://10.6.6.2/zerotier/ZeroTierOne into dev 2018-01-10 14:31:31 -08:00
Adam Ierymenko a1992d76f2 Doc updates and other fixes. 2018-01-10 14:31:28 -08:00
Joseph Henry 98b07f7f3c Added (get) command to cli to single out JSON fields 2018-01-10 14:05:28 -08:00
Joseph Henry 6e1823ac81 Merge branch 'dev' of http://git.int.zerotier.com/ZeroTier/ZeroTierOne into dev 2018-01-10 12:43:18 -08:00
Joseph Henry 640cc22749 Added allowTcpFallbackRelay to local.conf, fixed logic in Binder's route enumeration 2018-01-10 12:41:52 -08:00
Adam Ierymenko 9bab49d2f9 Move DB stuff into Db. 2018-01-09 12:39:25 -08:00
Adam Ierymenko 2751a6d56d cleanup 2018-01-09 12:31:00 -08:00
Adam Ierymenko 07cb62a503 cleanup 2018-01-09 11:41:26 -08:00
Adam Ierymenko 8a3b698407 Merge branch 'dev' of http://10.6.6.2/zerotier/ZeroTierOne into dev 2018-01-09 11:23:44 -08:00
Adam Ierymenko 0c71d658fb cleanup 2018-01-09 11:23:39 -08:00
Joseph Henry 7e2d614975 Attempted fix for ticket #656 (failes to acknowledge physical blacklists) 2018-01-09 10:16:49 -08:00
Joseph Henry 09e4ab9aa1 Merge branch 'dev' of http://git.int.zerotier.com/ZeroTier/ZeroTierOne into dev 2018-01-09 10:00:01 -08:00
Joseph Henry 2e1bc6e500 Cleaned up old code for attempted fix for ticket #600 2018-01-09 09:59:55 -08:00
Adam Ierymenko 1aea096b63 GitHub issue #492 2018-01-09 09:05:22 -08:00
Adam Ierymenko 30694f0b20 Allow trusted paths over global IPs for legacy config format too. 2018-01-09 08:59:26 -08:00
Adam Ierymenko 01b4cb64ee cleanup 2018-01-09 08:35:02 -08:00
Adam Ierymenko 6fbd15f8b2 cleanup 2018-01-08 15:56:53 -08:00
Adam Ierymenko 65c07afe05 Copyright updates for 2018. 2018-01-08 14:33:28 -08:00
Adam Ierymenko e338c5f91d cleanup 2018-01-08 14:27:55 -08:00
Adam Ierymenko 0b0b5da240 Merge branch 'dev' of http://10.6.6.2/zerotier/ZeroTierOne into dev 2018-01-08 13:06:30 -08:00
Adam Ierymenko 9c7ee5a21e Tear out old "link quality" stuff since it is not currently used and will be done differently. 2018-01-08 13:06:24 -08:00
Joseph Henry f7b3ffe8a0 Commented out block which ignores added routes if there already exists an IP in the route's range. Attempted fix for #600 2018-01-05 17:10:59 -08:00
Grant Limberg 381857ea49 macOS: add libcurl to libraries when ZT_VAULT_SUPPORT=1 is specified on the make command line 2018-01-03 11:56:20 -08:00
Aleksandar Topuzovic 50aef368f6 Add support for armv7l
* GCC running on Raspberry Pi 3 on Arch linux ARM reports arch as
  armv7l-unknown-linux-gnueabihf
2018-01-02 11:32:17 +01:00
Joseph Henry a9c4ce38f0 eh 2017-12-18 15:07:58 -08:00
Joseph Henry bbc39d7648 Restore managed ZT routes that are deleted or otherwise mangled locally (Attempted fix for ticket #600) 2017-12-18 15:05:19 -08:00
Adam Ierymenko d3e8e9629b More optimization work. 2017-12-15 14:24:17 -08:00
Adam Ierymenko 1f0b3a32d5 Merge branch 'dev' of http://10.6.6.2/zerotier/ZeroTierOne into dev 2017-12-15 11:03:27 -08:00
Adam Ierymenko 0608704626 Some micro-optimizations, including a memcpy that is faster than Linux for most distro/compiler versions. 2017-12-15 11:03:20 -08:00
Adam Ierymenko cb8e7b4d5e Make UDP read loop eventually move on. 2017-12-15 10:15:13 -08:00
Joseph Henry 346fa4d7f4 Added ZT_SANITIZE option to makefiles. This your new memory debugging best friend 2017-12-14 13:27:49 -08:00
Adam Ierymenko 7a22f01dd8 Merge branch 'dev' of http://10.6.6.2/zerotier/ZeroTierOne into dev 2017-12-14 08:53:32 -08:00
Adam Ierymenko 4704d115c4 Some controller fixes. 2017-12-14 08:53:24 -08:00
Joseph Henry 12c621c230 Removed build flag in CMake script 2017-12-13 14:57:20 -08:00
Joseph Henry cba65d897a Added CMake build script for libzerotiercore.a 2017-12-13 14:55:17 -08:00
Adam Ierymenko e4a10cc510 Member commit bug fix. 2017-12-08 19:00:38 -05:00
Adam Ierymenko 249c27afd5 Fix old bug invoking idtool personality with -i 2017-12-08 11:17:07 -08:00
Adam Ierymenko 38cc89b2ca Add time to rethinkdb message output in controller. 2017-12-08 12:39:20 -05:00
Adam Ierymenko aeb1794be1 Comment out storage of secret ID in RethinkDb. 2017-12-07 16:04:41 -08:00
Adam Ierymenko dae728124e Fix to network path in conventional filesystem controller DB. 2017-12-07 14:42:33 -08:00
Adam Ierymenko cf30b1fcdf GitHub issue #589 2017-12-07 17:13:24 -05:00
Adam Ierymenko 19bfef36f1 Build fix. 2017-12-07 16:45:43 -05:00
Adam Ierymenko 8d9464c414 docs, and make RethinkDB controller DB driver upsert into the Controller DB and also update the hostname field. 2017-12-07 13:39:25 -08:00
Adam Ierymenko ada611d597 Go ahead and load kext so MacOS High Sierra users will see kext auth dialog right away. 2017-12-07 08:56:15 -08:00
Adam Ierymenko f13886d343 Warning removal. 2017-12-05 17:53:28 -05:00
Adam Ierymenko 520b0601db Merge branch 'dev' of http://10.6.6.2/zerotier/ZeroTierOne into dev 2017-12-05 14:51:06 -08:00
Adam Ierymenko 926ecf9640 docs 2017-12-05 14:50:59 -08:00
Adam Ierymenko c57198decd Add remoteTraceLevel to controller. 2017-12-05 17:49:20 -05:00
Adam Ierymenko 431716e249 Disable trace by default, stderr message improvements in RethinkDB driver. 2017-12-05 17:16:45 -05:00
Adam Ierymenko 694709f392 Add timestamp to network status. 2017-12-04 19:21:56 -05:00
Adam Ierymenko 16613ab5fb Clean up remote tracing code, add per-network remote trace settings, add remote trace level, and make local trace output readable again. 2017-12-04 14:40:10 -08:00
Adam Ierymenko c26bf45e28 Merge branch 'dev' of http://10.6.6.2/zerotier/ZeroTierOne into dev 2017-11-29 04:47:16 -08:00
Adam Ierymenko 23e5c7b38d Fix self-test compile. 2017-11-29 04:47:10 -08:00
Joseph Henry 382dd82eb6 Fix for local.conf virtual path blacklist (ticket #594) 2017-11-27 15:31:25 -08:00
Joseph Henry f18d5b2efe Attempted fix for github issue #597, leaking sockets. Added call to closenatpmp() after failure to init 2017-11-27 14:23:55 -08:00
Adam Ierymenko 0fb22df633 Get ephemeral status fields out of the configs. They do not belong there and it just complicates things. 2017-11-09 17:01:16 -05:00
Adam Ierymenko 750e36993f GitHub issue #617 2017-11-09 11:35:46 -05:00
Adam Ierymenko f7f658605d Move more ephemeral stuff to a tiny MemberLastRequest table instead of the main Member table. 2017-11-08 20:19:46 -05:00
Adam Ierymenko 192e5dbff8 Another fix for uptime logging. 2017-11-08 20:02:10 -05:00
Adam Ierymenko ef224c3547 RethinkDB build fix. 2017-11-08 19:52:36 -05:00
Adam Ierymenko c12b68a6b2 More Central work. 2017-11-08 11:32:01 -08:00
Adam Ierymenko 4166d8ca35 Fix a deadlock and some more work on RethinkDB (for central) integration. 2017-11-08 11:06:14 -08:00
Adam Ierymenko 53e7e950f1 Windows build fixes. 2017-11-07 16:39:12 -08:00
Adam Ierymenko 0612879dec Fix const. 2017-11-07 16:23:56 -08:00
Adam Ierymenko 3b21f946e4 Remove manual define of include rethinkdb driver symbol. 2017-11-07 16:18:48 -08:00
Adam Ierymenko 9f85371073 cleanup 2017-11-07 15:23:16 -08:00
Adam Ierymenko cb550ab4fe Merge branch 'dev' into edge 2017-11-07 14:59:18 -08:00
Adam Ierymenko b8cbf08617 Merge branch 'dev' of http://10.6.6.2/zerotier/ZeroTierOne into dev 2017-11-07 14:59:03 -08:00
Adam Ierymenko 1613f42d00 Re-integrate in-filesystem DB into new controller DB structure. 2017-11-07 14:44:46 -08:00
Joseph Henry e5d1243dd2 Minor changes to SDK-related portions of OneService 2017-11-06 13:43:56 -08:00
Adam Ierymenko 7fc9094d8e More fixes to RethinkDB. 2017-11-03 22:40:26 -04:00
Adam Ierymenko 92c7070aa8 RethinkDB fixes. 2017-11-03 20:55:16 -04:00
Adam Ierymenko b68bca35db Linux build fixes, linux build rule for RethinkDB mode controller, also force disable shitty allocators in libstdc++. 2017-11-03 16:59:36 -04:00
Adam Ierymenko d97adc8789 Preparing for test. 2017-11-03 12:32:56 -07:00
Adam Ierymenko f5014d7d71 RethinkDB direct connectivity integration. 2017-11-03 11:39:27 -07:00
Adam Ierymenko 4e88c80a22 RethinkDB native connector work, minor fixes. 2017-11-02 07:05:11 -07:00
Adam Ierymenko a6203ed038 icon 2017-10-29 12:01:15 -07:00
Adam Ierymenko 1db547d607 Windows build fixes, AIP file update. 2017-10-25 16:25:57 -07:00
Adam Ierymenko 2cc4dc5a6f Clean peers.d periodically and delete peers older than 30 days. 2017-10-25 16:08:14 -07:00
Adam Ierymenko fac7dc9c91 Stop duplciate IPv6 addresses due to privacy mode IPs. 2017-10-25 16:01:36 -07:00
Adam Ierymenko 508fa6a7fe A few fixes for cluster mode. 2017-10-25 15:44:10 -07:00
Adam Ierymenko 71bdaa9508 Now with more worky. 2017-10-25 13:27:28 -07:00
Adam Ierymenko 459f1e7bfb Refactor path stability stuff and add basic multipath support. 2017-10-25 12:42:14 -07:00
Adam Ierymenko 0d8b8d8426 Remove some unused constants. 2017-10-24 15:04:19 -07:00
Adam Ierymenko 2d0dc62a53 docs 2017-10-24 14:57:02 -07:00
Adam Ierymenko 0d8e134f9f Warning removal. 2017-10-24 14:54:15 -07:00
Adam Ierymenko c7d370c17f Delete something that turns out not to be useful. This will be handled differently. 2017-10-24 14:49:38 -07:00
Adam Ierymenko 395d8b3139 Full and clearer implementation of GitHub issue #588 2017-10-24 13:33:53 -07:00
Adam Ierymenko b92ef67e56 Merge pull request #550 from surgicalcoder/patch-2
Peer's role misses a PLANET role
2017-10-24 12:22:38 -07:00
Adam Ierymenko 5a8aa66641 Merge branch 'dev' of http://10.6.6.2/zerotier/ZeroTierOne into dev 2017-10-24 12:22:02 -07:00
Adam Ierymenko e87ef18826 cleanup 2017-10-24 12:21:56 -07:00
Adam Ierymenko 7b78d4f11f Merge pull request #605 from oneguynick/patch-1
Update make-linux.mk to include support for Armv7l
2017-10-24 12:21:32 -07:00
Nicholas Schmidt 65ac61b2ea Update make-linux.mk to include support for Armv7l
When running ArchlinuxARM with 64bit support on Raspberry Pi3, the default build fails due to the architecture look-up at the beginning of the build process. A simple addition of the Armv7l section above allows the build to continue and successfully run.
2017-10-19 09:21:24 -04:00
Grant Limberg 629a3a2a24 call setFriendlyName() after tap adapter is initialized 2017-10-16 12:16:05 -07:00
Joseph Henry ee4783e3fb ifdef omit of deletePersistentTapDevice() in OneService for libzt builds on Windows 2017-10-10 15:01:15 -07:00
Joseph Henry f2c69ede96 Conditionally omit reference to CancelSynchronousIo in Thread.hp when MINGW32/64 is detected for libzt build - Symbol not supported 2017-10-10 12:21:52 -07:00
Grant Limberg ceeb35eaac If lastSend/lastReceive is < 0, just put 0. 2017-10-05 13:19:25 -07:00
Grant Limberg 099bedd2e9 A few more uint64_t -> int64_t changes for timestamps 2017-10-04 12:01:17 -07:00
Grant Limberg 4177a11522 remove some leftover debug code 2017-10-04 09:18:13 -07:00
Grant Limberg 3d4a1b575e Update Android NDK with uint64_t -> int64_t changes 2017-10-03 11:25:26 -07:00
Grant Limberg b1d60df44c timestamps changed from uint64_t to int64_t
There were cases in the code where time calculations and comparisons were overflowing and causing connection instability.  This will keep time calculations within expected ranges.
2017-10-02 15:52:57 -07:00
Grant Limberg 7cf70d111a Return an explicit NULL shared pointer at the end of Topology::getPeer() 2017-09-28 10:40:27 -07:00
Grant Limberg e564c56dce Set size of buffer after setting data with unsafeData() call 2017-09-28 10:39:43 -07:00
Grant Limberg 239c2540d6 Mutex::lock and ::unlock just called themselves 2017-09-27 15:05:13 -07:00
Grant Limberg c53d140145 Replace '_' with '__' in network names on toolbar menu in Windows
Otherwise WPF gobbles up the underscores
2017-09-27 13:24:29 -07:00
Grant Limberg 12a6a2f2d2 remove reference to invalid file 2017-09-27 13:07:24 -07:00
Grant Limberg 9c903567bb Hashtable needs to include Constants.hpp for ZT_EXCEPTION_OUT_OF_MEMORY 2017-09-25 13:42:19 -07:00
Grant Limberg 6782dee64a Merge branch 'dev' of http://git.int.zerotier.com/ZeroTier/ZeroTierOne into dev 2017-09-25 10:10:17 -07:00
Adam Ierymenko 302c15140e Fix API problem with path configuration.. 2017-09-25 08:53:55 -07:00
Grant Limberg c666f92e35 new startup process UI for Windows 2017-09-22 15:33:09 -07:00
Grant Limberg eb42ef68ee Merge branch 'dev' of http://git.int.zerotier.com/ZeroTier/ZeroTierOne into dev 2017-09-22 10:22:22 -07:00
Adam Ierymenko 52916eebcf Keep attemting to upgrade direct path if path is not private to facilitate better use of LANs and backplane networks. 2017-09-14 20:56:50 -07:00
Adam Ierymenko f8014413a3 Add UDP MTU configurability. 2017-09-01 16:25:34 -07:00
Adam Ierymenko 2d858b05ac Another fix for ye old tyme clients. 2017-09-01 12:03:31 -07:00
Adam Ierymenko b1fb020aea Raise chunk size to max packet size for network configs. Chunking breaks really ancient clients, so this helps them live a little longer. No real downside for new clients. 2017-09-01 10:43:44 -07:00
Adam Ierymenko 02ed84774c Non-x86 build fix. 2017-08-31 20:47:44 -04:00
Adam Ierymenko 283e8d5bc0 Start threads in Central harnessed mode. 2017-08-31 18:01:21 -04:00
Joseph Henry f39e2e2a53 Fixed typo of mysterious origin 2017-08-31 11:37:29 -07:00
Adam Ierymenko 5bf5d5e9cb Minor controller stuff. 2017-08-30 17:22:25 -07:00
Adam Ierymenko e51e212b95 Add some defines of use to low level developers. 2017-08-25 16:04:04 -07:00
Adam Ierymenko 6418d02572 Fix HTTP DELETE stupid bug. 2017-08-24 15:33:24 -07:00
Adam Ierymenko 49fa30d495 Ticket lock for x64/gcc/clang platforms. 2017-08-23 18:52:32 -07:00
Adam Ierymenko dd8b03a5c5 Threading issue fix? 2017-08-23 18:28:40 -07:00
Adam Ierymenko 4d5983114c Fix another deadlock. 2017-08-23 17:14:06 -07:00
Adam Ierymenko 0a9c3b5571 Fix possible deadlock. 2017-08-23 16:59:31 -07:00
Adam Ierymenko 180049a277 Fix pointer bug. 2017-08-23 16:55:22 -07:00
Adam Ierymenko 6ee201865b Clean up WHOIS code. 2017-08-23 16:42:17 -07:00
Adam Ierymenko b1d94c9f93 Performance improvement to RX queue ring buffer. 2017-08-23 15:19:26 -07:00
Adam Ierymenko a156a4dbe2 Symmetric NAT cleanup. 2017-08-23 15:12:00 -07:00
Adam Ierymenko 2cebe7a5e0 Fix name difference. 2017-08-23 14:09:29 -07:00
Adam Ierymenko 9cfc109527 Tighten a few timings. 2017-08-23 14:00:08 -07:00
Adam Ierymenko 64758c46b6 Implement peer serialization and deserialization. 2017-08-23 13:40:51 -07:00
Adam Ierymenko 4352202349 Reduce TCP relay latency -- see GitHub issue #564 2017-08-18 14:54:10 -07:00
Adam Ierymenko ba07a60c44 Fix PPC PR. 2017-08-18 14:40:10 -07:00
Adam Ierymenko 72bfe0953a Merge pull request #560 from andyfangdz/patch-1
Add `ppc64le` arch
2017-08-18 14:38:41 -07:00
Adam Ierymenko bab5647522 Add make rule for official-static. 2017-08-18 14:00:35 -07:00
Adam Ierymenko fcaf1d89c2 Get rid of some noisy remote traces that should not be needed. 2017-08-18 13:59:22 -07:00
Adam Ierymenko 106dff0d53 Make remote trace target null by default, which is probably what we want. 2017-08-18 13:52:10 -07:00
Adam Ierymenko 174ba8884e Delete support in harnessed mode. 2017-08-17 13:10:10 -07:00
Adam Ierymenko 1ce0dcf0ea Another Central harnessed mode fix. 2017-08-16 14:41:42 -07:00
Adam Ierymenko 1387e15c1b Merge branch 'dev' of http://10.6.6.2/zerotier/ZeroTierOne into dev 2017-08-16 14:14:56 -07:00
Adam Ierymenko 50e7ea088b More work on controller for new Central harnessed mode, remove old http mode. 2017-08-16 14:14:49 -07:00
Joseph Henry 59b7cbb591 Rename SocketTap to VirtualTap to prevent confusion on role 2017-08-15 16:22:28 -07:00
Adam Ierymenko 23fe8975e7 . 2017-08-14 11:44:07 -07:00
Adam Ierymenko a4bc40542b GCC/G++ build fixes, GitHub issue #563 2017-08-14 11:43:39 -07:00
Joseph Henry ee1dc16e8f Added getRoutes() for libzt 2017-08-10 00:59:15 -07:00
Adam Ierymenko 1c04cc0485 . 2017-08-09 17:42:35 -07:00
Adam Ierymenko 2c682b4d1c Small controller revisions, first run of controller API model JavaScript. 2017-08-09 14:37:19 -07:00
Grant Limberg 6842490c1f Add menu option to open ZeroTier Central in the system default browser 2017-08-09 14:19:37 -07:00
Adam Ierymenko ff5e22031a Small fix: should expire packets to prevent repeated WHOISes. 2017-08-08 13:24:37 -07:00
Adam Ierymenko e3cf756785 Make rxQueue lock-free using an atomic counter ring buffer. 2017-08-08 13:21:10 -07:00
Adam Ierymenko 7e6598e9ca Possible deadlock fix. 2017-08-07 14:13:08 -07:00
Dezhi “Andy” Fang 48d2017629 Add ppc64le arch
I've only tested locally, on a power8 box running Ubuntu 16.10, but everything (and earth) checks out.

Let me know if more testing infrastructure is needed.
2017-08-06 02:06:00 -07:00
Adam Ierymenko e4823381c6 . 2017-07-19 15:16:15 -07:00
Adam Ierymenko 66feaeb519 . 2017-07-19 15:06:23 -07:00
Adam Ierymenko 8c6b833fb3 Merge branch 'dev' of http://10.6.6.2/zerotier/ZeroTierOne into dev 2017-07-19 14:13:23 -07:00
Adam Ierymenko b62296a40b Bug fixes in new harness mode. 2017-07-19 14:13:17 -07:00
Grant Limberg fc7728212f Fix ifndef on Windows 2017-07-18 15:59:11 -07:00
Adam Ierymenko 31785f7f6e Automatic periodic status dump from controller. 2017-07-18 15:36:33 -07:00
Adam Ierymenko ae65eb5105 Cleanup and replace trace field names with sane ones because usability > a few bytes. 2017-07-18 14:28:38 -07:00
Adam Ierymenko 727ccb1125 Cleanup and stdin/stdout harness mode for controller. 2017-07-18 13:57:37 -07:00
Adam Ierymenko 77ce238457 Merge branch 'dev' of http://10.6.6.2/zerotier/ZeroTierOne into dev 2017-07-17 17:02:57 -07:00
Adam Ierymenko 1685659e37 Remote tracing works. 2017-07-17 17:02:50 -07:00
Grant Limberg 0f03d4ef51 Update Jenkinsfile for new NDK in Jenkins 2017-07-17 16:55:00 -07:00
Grant Limberg bcf697cc2b Wire up PortMapper in Android
Enables UPnP port mapping for Android client on networks with UPnP routers
2017-07-17 16:16:25 -07:00
Adam Ierymenko 5e2ea4a81a Cleanup. 2017-07-17 14:24:57 -07:00
Adam Ierymenko b9e1d53d7a Minor cleanup. 2017-07-17 14:21:09 -07:00
Adam Ierymenko ab0806a036 Cleanup. 2017-07-17 13:48:39 -07:00
Adam Ierymenko 3a1ec07db0 Remove some exception copypasta. 2017-07-17 10:43:28 -07:00
Adam Ierymenko d939d8d21d A bit more remote tracing stuff. 2017-07-14 14:57:40 -07:00
Adam Ierymenko d9552fb120 Add remoteTraceTarget to network and member configs in controller. 2017-07-14 14:33:36 -07:00
Adam Ierymenko 4ecc0c59ca Plumbing through of remote trace into controller code. 2017-07-14 13:03:16 -07:00
Adam Ierymenko 0655a1fcbe Move old cluster code into attic. 2017-07-13 16:42:43 -07:00
Adam Ierymenko c8d0cf2c40 Merge branch 'dev' of github.com:zerotier/ZeroTierOne into dev 2017-07-13 16:31:30 -07:00
Adam Ierymenko c692f2e740 Fix for new identity generation bug. 2017-07-13 16:31:16 -07:00
Alex a83c7c0d07 remove debugging flag 2017-07-13 15:13:20 -07:00
Adam Ierymenko ba6fd16823 More tracing stuff. 2017-07-13 15:08:57 -07:00
Adam Ierymenko 54893c35c1 Merge branch 'dev' of http://10.6.6.2/zerotier/ZeroTierOne into dev 2017-07-13 10:51:19 -07:00
Adam Ierymenko 495c5ce81d Bunch of remote tracing work. 2017-07-13 10:51:05 -07:00
Grant Limberg 4cc773ec1b fix Windows build 2017-07-12 13:52:45 -07:00
Grant Limberg 69ae35494e put the correct file extensions on data written to disk in JNI 2017-07-12 13:36:22 -07:00
Grant Limberg 512c3af4ea fix packet sending functions 2017-07-12 13:12:45 -07:00
Grant Limberg d8f1c3dff7 Update JNI code to reflect new ZeroTier API 2017-07-12 11:34:53 -07:00
Grant Limberg 0a11dd2d24 Fix NeighborDiscovery code now that ZT_SOCKADDR_NULL doesn’t exist 2017-07-11 15:45:36 -07:00
Monty A 78ee7f6573 Peer's role misses a PLANET role
Peer's role misses a PLANET role in documentation vs what's returned from API.
2017-07-09 15:39:49 +01:00
Adam Ierymenko dab0fb9e05 Remote trace: plumbing, replace old TRACE with calls to Trace object. 2017-07-07 16:58:05 -07:00
Adam Ierymenko e14d5d49a1 Merge branch 'master' into dev 2017-07-07 09:36:54 -07:00
Adam Ierymenko 782b2b1514 Merge pull request #537 from laduke/patch-1
Update README.md
2017-07-07 09:32:37 -07:00
Adam Ierymenko a9582417e2 Merge pull request #547 from surgicalcoder/patch-1
Clarification on how to use JSON API with secret
2017-07-07 09:32:23 -07:00
Adam Ierymenko 69922b6c39 BSD build fix. 2017-07-07 09:29:24 -07:00
Adam Ierymenko 6fc70f7c16 More cleanup, Linux build fixes. 2017-07-07 06:50:40 -07:00
Monty A a274e774ee Clarification on how to use JSON API with secret
Makes it clear on how to use the authtoken.secret file when making requests.
2017-07-07 10:11:21 +01:00
Adam Ierymenko f23a43fb81 More cleanup. 2017-07-06 17:32:41 -07:00
Adam Ierymenko 88997a0314 Windows build fixes. 2017-07-06 16:29:11 -07:00
Adam Ierymenko d2415dee00 Cleanup. 2017-07-06 16:11:11 -07:00
Adam Ierymenko 53728b79b4 . 2017-07-06 12:35:23 -07:00
Adam Ierymenko dff8c02cfe Pull out and deprecate old cluster code. New cluster code will not be merged yet. 2017-07-06 12:33:00 -07:00
Adam Ierymenko 640ad577d1 . 2017-07-06 11:56:46 -07:00
Adam Ierymenko cd63ecd3f3 . 2017-07-06 11:45:48 -07:00
Adam Ierymenko f18158a52d . 2017-07-06 11:45:22 -07:00
Adam Ierymenko 84748aab51 Merge branch 'dev' into edge 2017-07-06 10:26:04 -07:00
Adam Ierymenko 3fadc64ee0 Merge branch 'dev' of http://10.6.6.2/zerotier/ZeroTierOne into dev 2017-07-06 10:25:58 -07:00
Adam Ierymenko 47594f7c99 Merge branch 'edge' of http://10.6.6.2/zerotier/ZeroTierOne into edge 2017-07-06 10:25:44 -07:00
Adam Ierymenko 2f20258807 . 2017-07-06 10:25:36 -07:00
Grant Limberg 47122a3804 Merge branch 'dev' into edge 2017-07-03 13:29:54 -07:00
Grant Limberg 1730f8f5b7 also cluster.hpp 2017-07-03 13:04:11 -07:00
Grant Limberg d258a75cd3 remove Cluster.cpp from build list as it's been removed 2017-07-03 13:03:43 -07:00
Adam Ierymenko baa10c2995 . 2017-06-30 17:32:07 -07:00
Grant Limberg 207d6572e0 fix for changelist posting to mattermost 2017-06-30 14:24:40 -07:00
Grant Limberg 10264cec2f slackSend -> mattermostSend 2017-06-30 13:43:39 -07:00
Adam Ierymenko 0ea1749c59 Merge pull request #540 from skunkwerks/master
build: all BSDs expect gmake here
2017-06-30 09:55:43 -07:00
Dave Cottlehuber dd83c680e5 build: all BSDs expect gmake here 2017-06-30 13:11:05 +00:00
Adam Ierymenko 1a40f35fd4 Merge branch 'dev' into edge 2017-06-27 11:32:14 -07:00
Adam Ierymenko 8a99113c88 Merge branch 'dev' of http://10.6.6.2/zerotier/ZeroTierOne into dev 2017-06-27 11:32:07 -07:00
Adam Ierymenko ada2ea3a6b Merge branch 'dev' of http://10.6.6.2/zerotier/ZeroTierOne into edge 2017-06-27 11:31:39 -07:00
Adam Ierymenko 355cce3938 Rename Utils::snprintf due to it being a #define on one platform. 2017-06-27 11:31:29 -07:00
Travis LaDuke 9b2e08dd09 Update README.md
We've had multiple questions in the community chat regarding posting new
network and getting the curl syntax correct.
2017-06-26 11:53:35 -07:00
Joseph Henry 04cee3b8d3 Merge branch 'dev' of https://github.com/zerotier/ZeroTierOne into dev 2017-06-26 02:13:40 -07:00
Joseph Henry c61440efea Detect platformDefaultHomePath on QNAP systems 2017-06-25 20:20:30 -07:00
Adam Ierymenko 02d18af57d Remove Cluster.hpp 2017-06-23 16:10:26 -07:00
Adam Ierymenko 2225bb093a Merge branch 'edge' into dev 2017-06-23 16:06:38 -07:00
Adam Ierymenko 75a6a7baca Merge branch 'dev' of http://10.6.6.2/zerotier/ZeroTierOne into dev 2017-06-23 16:05:58 -07:00
Alex 6b130e8311 fix for windows compilation (related to SDK implementation) 2017-06-21 14:58:39 -07:00
Alex 1b18923824 except wondows/lib 2017-06-13 14:25:53 -07:00
Alex fc2ce439e2 remove unneeded files 2017-06-13 14:23:11 -07:00
Alex 5b3d9f9184 added Windows SDK in form of dlls 2017-06-13 13:28:23 -07:00
Adam Ierymenko dd68c207f4 Stuff old Cluster code in attic. 2017-06-08 08:51:49 -07:00
Adam Ierymenko 9a3c34b5b3 Build fix, use -Os on Linux too. 2017-06-07 17:19:33 -07:00
Adam Ierymenko 951d911531 Last bit of new cluster code, ready to test. 2017-06-06 16:11:19 -07:00
Adam Ierymenko 4f2179b0df . 2017-06-05 13:42:43 -07:00
Adam Ierymenko 9b287392a4 . 2017-06-05 12:15:28 -07:00
Adam Ierymenko aa06470cb6 More cleanup for cluster refactor. 2017-06-01 20:32:43 -07:00
Adam Ierymenko d7b4f24a7a . 2017-06-01 17:21:57 -07:00
Adam Ierymenko e8d11eb5c5 . 2017-06-01 17:21:04 -07:00
Adam Ierymenko 7f4da08ff7 . 2017-06-01 12:57:44 -07:00
Adam Ierymenko 1f9414a30f . 2017-06-01 12:38:04 -07:00
Adam Ierymenko 6015b529a0 More clustering work. 2017-06-01 12:33:05 -07:00
Adam Ierymenko 76452b4e28 Data structure fixup. 2017-06-01 07:39:31 -07:00
Adam Ierymenko 64b7d9ef82 New clustering work. 2017-06-01 07:15:46 -07:00
Joseph Henry 7bc9666aac fix for SDK's route/tap association in getTap() 2017-05-31 13:07:03 -07:00
Adam Ierymenko 2a4a50b1da Add some also-ZeroTier-written ext/ code for use in new clustering, delete some old code, and change Mac to use -Os which is just as fast as -Ofast and may be faster due to cache effects. 2017-05-31 08:36:09 -07:00
Adam Ierymenko 2ec88e8008 Remove old circuit test code. Rules engine will let us do this much better and more simply. 2017-05-30 10:19:45 -07:00
Joseph Henry 36049a940c added campaign tags to README.md 2017-05-25 17:09:21 -07:00
Grant Limberg 952834f7f3 Let Android Studio determine debug/release build 2017-05-23 14:56:29 -07:00
Adam Ierymenko f9a9c2d009 Config object was never even being initialized on leave. Never noticed since desktop and server clients did not use. 2017-05-23 14:45:16 -07:00
Adam Ierymenko fb71a6e2b4 skipRootCheck should also prevent dropping of privs on Linux 2017-05-19 16:16:10 -07:00
Adam Ierymenko 5e6a2a17b0 Cluster build fix. 2017-05-19 15:32:52 -07:00
Adam Ierymenko 92289c1981 Move to canonical device naming on Linux. 2017-05-19 15:18:47 -07:00
Adam Ierymenko 99e2098a48 Add a way to specify a different interface prefix (for internal use mostly). 2017-05-19 14:00:08 -07:00
Adam Ierymenko 5fc1c1de28 . 2017-05-19 13:24:40 -07:00
Grant Limberg 2fac693243 I guess there's a bug in Clipboard.SetText(). Clipboard.SetDataObject() works, though. 2017-05-12 16:42:54 -07:00
Grant Limberg e9b956ed71 Swallow a possible ArgumentNullException when copying text to the system clipboard 2017-05-12 16:05:29 -07:00
Adam Ierymenko 236a952458 typo 2017-05-11 14:26:46 -07:00
Adam Ierymenko 426b7c2c76 Stupid bug is stupid. 2017-05-11 14:13:38 -07:00
Adam Ierymenko 22780a8504 Merge branch 'dev' of http://10.187.63.16/zerotier/ZeroTierOne into dev 2017-05-10 13:48:55 -07:00
Adam Ierymenko a437fd420c version 2017-05-10 13:48:47 -07:00
Adam Ierymenko 2d74c60d47 Add branch hints to bounds checking in Buffer. 2017-05-09 21:54:23 -07:00
Adam Ierymenko ceee56af51 Fix for small stacks. 2017-05-09 21:36:25 -07:00
Adam Ierymenko d297d8fe2e Musl fix 2017-05-09 21:21:56 -07:00
Adam Ierymenko f479b76772 define likely/unlikely 2017-05-09 20:22:08 -07:00
Grant Limberg 73f7088b45 Run Join/Leave commands asynchronously so the UI doesn't lock up on thoise commands 2017-05-08 16:17:33 -07:00
Adam Ierymenko b3dd5c0e3a Build fix. 2017-05-08 14:51:12 -07:00
Adam Ierymenko ee7ee22555 Merge branch 'dev' of http://10.6.6.2/zerotier/ZeroTierOne into dev 2017-05-08 14:46:54 -07:00
Adam Ierymenko cf49e511a5 More makefile changes. 2017-05-08 14:46:45 -07:00
Adam Ierymenko 505b9c7f56 Makefile reorg to allow core to be built as a library. 2017-05-08 14:36:55 -07:00
Grant Limberg 8c30b2b9f5 Fixed falling out of the network monitor thread if the ZeroTier service isn't running on Windows 2017-05-08 13:27:54 -07:00
Adam Ierymenko b9c1407013 Adjust PUSH_DIRECT_PATH circuit breaker, and comment out traces to reduce noise. 2017-05-08 09:36:37 -07:00
Adam Ierymenko d905607353 Small optimizations. 2017-05-08 08:35:55 -07:00
Adam Ierymenko e5e90b1f71 Wire MTU through to service. 2017-05-04 20:10:49 -07:00
Adam Ierymenko d5ed025871 Support MTU reconfigure for Windows. 2017-05-04 19:50:02 -07:00
Adam Ierymenko b55422a528 MTU integration in taps. 2017-05-04 19:31:50 -07:00
Adam Ierymenko 909a14fb48 MTU support in controller. 2017-05-04 17:22:24 -07:00
Adam Ierymenko 107e3e4106 First pass of configurable MTU and max MTU increase. 2017-05-04 17:12:02 -07:00
Adam Ierymenko 6ef247fb93 More ARM stuff. 2017-05-04 16:00:53 -07:00
Adam Ierymenko b8e46b835b Merge branch 'dev' of http://10.6.6.2/zerotier/ZeroTierOne into dev 2017-05-04 15:54:15 -07:00
Adam Ierymenko 0900fee5d9 Linux build stuff for ARM. 2017-05-04 15:54:08 -07:00
Joseph Henry 1f26cb98de updated OneService convenience functions for SDK 2017-05-04 15:26:44 -07:00
Joseph Henry ceeb8ee0bc added isEqualPrefix to InetAddress 2017-05-04 15:25:48 -07:00
Adam Ierymenko 54c47a1e03 Add some historic code just for the heck of it. 2017-05-04 10:42:22 -07:00
Adam Ierymenko 6bb855873d GitHub issue #494 -- shut down and restart UI on Mac pkg install/upgrade. 2017-05-03 15:03:26 -07:00
Adam Ierymenko 39db45e144 Fix crash on exit (sometimes) in controller. 2017-05-03 09:48:08 -07:00
Adam Ierymenko 41c187ba12 Another very small crypto optimization. 2017-05-03 07:43:23 -07:00
Adam Ierymenko d7c99728bc Echo back ping payload. 2017-05-02 17:28:18 -07:00
Adam Ierymenko 8e19188f49 Do the sometimes rather big "pong" in a background worker thread. 2017-05-02 16:58:51 -07:00
Adam Ierymenko 625e3e8e25 Tiny optimization to prealloc string space. 2017-05-02 13:53:47 -07:00
Adam Ierymenko fde99e2fcf Fix for post size limit in Http library. 2017-05-02 12:08:53 -07:00
Adam Ierymenko 132643cd4a Fix small issue preventing pongs if there are never seen members. 2017-05-02 10:34:33 -07:00
Adam Ierymenko faf7b81c01 Send last requets time in status, and do not set physicalAddr unless we know one. 2017-05-01 15:48:52 -07:00
Adam Ierymenko bcc6799902 Send member uptime in pong posts. 2017-05-01 15:23:21 -07:00
Adam Ierymenko 718e1d6c08 Finish removing constantly changing stuff from controller. 2017-05-01 13:21:26 -07:00
Adam Ierymenko a9ce773584 Remove lastModified field in config which literally nothing uses anywhere, and prevent some unnecessary writes. 2017-04-28 19:58:21 -07:00
Adam Ierymenko d69bc4fb5e Main license file. 2017-04-27 20:54:42 -07:00
Adam Ierymenko 1b68d6dbdc License header update. 2017-04-27 20:47:25 -07:00
Adam Ierymenko 62578a2162 Reduce memory use and a bit of cleanup. 2017-04-27 19:36:03 -07:00
Adam Ierymenko 9e80db0fd1 Cleanup, fix a valgrind error, stack use reduction. 2017-04-27 00:59:36 -07:00
Adam Ierymenko e8ab6adf89 Deadlock fix. 2017-04-26 12:17:43 -07:00
Adam Ierymenko 7c184cf991 Another performance improvement to controller. 2017-04-26 10:35:59 -07:00
Adam Ierymenko 72def658d0 Add a dummy Ethernet tap and a build option to enable it. 2017-04-26 08:42:49 -07:00
Adam Ierymenko e7cd888c7d dev is now 1.2.5 2017-04-26 06:50:12 -07:00
Adam Ierymenko 1205578935 Big cleanup of controller code, should help performance. 2017-04-26 06:48:08 -07:00
Adam Ierymenko 4e77365e8d Remove a little cruft. 2017-04-25 16:17:54 -07:00
Adam Ierymenko 4f2a779769 JSONDB performance improvements, threading fix. 2017-04-24 20:51:02 -07:00
Adam Ierymenko cafbe44dde Controller optimizations -- make locking more fine-grained, use true hardware concurrency, etc. 2017-04-24 19:16:36 -07:00
Adam Ierymenko 6234bfd8bf 4-core Debian build. 2017-04-24 18:40:34 -07:00
Adam Ierymenko 77796caba6 Static ARM32 build fixes. 2017-04-24 18:12:58 -07:00
Adam Ierymenko 97f1d7ae2e . 2017-04-24 16:56:18 -07:00
Adam Ierymenko 487e89d4d0 Add i486 and i586 to Linux makefile for detection of ia32. 2017-04-24 15:19:03 -07:00
Adam Ierymenko fe5257df81 VERSION 1.2.4: Bug fixes and performance improvements
* Managed routes are now only bifurcated for the default route. This is a change in behavior, though few people will probably notice. Bifurcating all managed routes was causing more trouble than it was worth for most users.
 * Up to 2X crypto speedup on x86-64 (except Windows, which will take some porting) and 32-bit ARM platforms due to integration of fast assembly language implementations of Salsa20/12 from the [supercop](http://bench.cr.yp.to/supercop.html) code base. These were written by Daniel J. Bernstein and are in the public domain. My Macbook Pro (Core i5 2.8ghz) now does almost 1.5GiB/sec Salsa20/12 per core and a Raspberry Pi got a 2X boost. 64-bit ARM support and Windows support will take some work but should not be too hard.
 * Refactored code that manages credentials to greatly reduce memory use in most cases. This may also result in a small performance improvement.
 * Reworked and simplified path selection and priority logic to fix path instability and dead path persistence edge cases. There have been some sporadic reports of persistent path instabilities and dead paths hanging around that take minutes to resolve. These have proven difficult to reproduce in house, but hopefully this will fix them. In any case it seems to speed up path establishment in our tests and it makes the code simpler and more readable.
 * Eliminated some unused cruft from the code around path management and in the peer class.
 * Fixed an issue causing build problems on some MIPS architecture systems.
 * Fixed Windows forgetting routes on sleep/wake or in some other circumstances. (GitHub issue #465)
2017-04-24 11:41:23 -07:00
Adam Ierymenko 9161424c97 Version bumps. 2017-04-24 11:41:01 -07:00
Adam Ierymenko cdda0dd043 Windows version bump. 2017-04-24 11:37:54 -07:00
Adam Ierymenko f4feccc626 Do not serve controller requests until init is done. 2017-04-24 09:09:04 -07:00
Adam Ierymenko 44cb2f4efd ++version 2017-04-21 15:32:00 -07:00
Adam Ierymenko cacb8fae0d GitHub issue #463 -- fix MacOS uninstall script. 2017-04-21 13:55:44 -07:00
Adam Ierymenko fa99a5cf12 docs 2017-04-21 13:27:34 -07:00
Adam Ierymenko e700165eba GitHub issue #465 - Windows route amnesia 2017-04-21 13:26:02 -07:00
Adam Ierymenko 8542ee59db Windows crash fix. 2017-04-21 12:42:51 -07:00
Adam Ierymenko 76108671f6 BSD makefile fix for OpenBSD. 2017-04-21 08:42:45 -07:00
Adam Ierymenko 8b0ce1cc00 More BSD make fixes. 2017-04-21 08:09:18 -07:00
Adam Ierymenko 0e88c73f68 Mirror over some arch rules from Linux to BSD make, and enable fast crypto there. 2017-04-21 08:04:33 -07:00
Adam Ierymenko ba0d73d102 Windows build fixes. 2017-04-20 10:21:40 -07:00
Adam Ierymenko d3ecd1d670 docs 2017-04-20 10:21:08 -07:00
Adam Ierymenko f9ae5938d0 Makefile fix, only bifurcate routes for default, and release notes. 2017-04-20 10:08:46 -07:00
Adam Ierymenko a8ced184dc Some code cleanup and make sure any type punning is guarded with ZT_NO_TYPE_PUNNING. 2017-04-20 09:33:35 -07:00
Adam Ierymenko e7a2c6ecef Integrate ARM/NEON crypto. 2017-04-19 17:11:56 -07:00
Adam Ierymenko a376bcc654 ARM NEON Salsa20/12 in build and selftest. Almost 2X speedup on a Raspberry Pi. 2017-04-19 23:49:26 +00:00
Adam Ierymenko 8e1ac9fb0c ARM NEON Salsa20/12. 2017-04-19 15:58:20 -07:00
Adam Ierymenko bc61357a44 HTTP backend support for JSONDB 2017-04-18 17:37:44 -07:00
Adam Ierymenko f6d92eb737 JSONDB fix. 2017-04-18 13:48:19 -07:00
Adam Ierymenko 48cadcd2fc More build fixes. 2017-04-18 12:48:56 -07:00
Adam Ierymenko bd63a840c7 Mac build fix. 2017-04-18 12:44:27 -07:00
Adam Ierymenko aaf597f020 Cleanup, Windows fixes, Self test fix 2017-04-18 12:22:44 -07:00
Adam Ierymenko 72bd3064a2 Windows build fixes, self test cleanup. 2017-04-18 11:00:29 -07:00
Adam Ierymenko a1c316b940 Makefile cruft. 2017-04-18 09:19:39 -07:00
Adam Ierymenko 02f84b225c Add MIPS architectures to Linux Makefile and add an error if architecture cannot be determined. 2017-04-18 09:14:33 -07:00
Adam Ierymenko 6551c20005 Enable x64 ASM Salsa20/12 on Linux. 2017-04-18 08:57:32 -07:00
Adam Ierymenko a1e94154be Just incorporate the X64 ASM version of Salsa20/12 for X64 platforms. This gives us (for example) 1.5gb/sec encryption on a Core i5 2.8ghz. 2017-04-18 08:45:37 -07:00
Adam Ierymenko 4938e82795 Delete junk. 2017-04-17 18:01:51 -07:00
Adam Ierymenko 7a94f63058 Back out NaCl since the old one with xmm6 salsa2012 does not support multi-block use and the new one is slower. 2017-04-17 17:54:12 -07:00
Adam Ierymenko db0edf154c Use right deployment target in OSX bin. 2017-04-17 16:54:41 -07:00
Adam Ierymenko a1cd94a61d Actually include .a 2017-04-17 16:43:36 -07:00
Adam Ierymenko df48738ac9 Enable use of NaCl for faster X64 Salsa20 implementations. Also include binary for OSX for easy build. Blazingly fast. 2017-04-17 16:43:03 -07:00
Adam Ierymenko d8f5cfdee4 Windows profile build target (CPU profiling), and a little bit of optimization revealed by such. 2017-04-17 15:45:49 -07:00
Adam Ierymenko 95e5345cc3 Cluster build fix. 2017-04-17 10:12:13 -07:00
Adam Ierymenko ba5d0cc2f9 Silence some TRACE noise. 2017-04-17 09:31:07 -07:00
Adam Ierymenko 1d8ded3293 Tiny largely non-consequential credential fix. 2017-04-17 09:30:28 -07:00
Adam Ierymenko 2487a8bede Fix for 100% cpu issue. 2017-04-17 09:14:21 -07:00
Adam Ierymenko f1c0563c40 Fix for cluster handoff. 2017-04-14 18:02:04 -07:00
Adam Ierymenko 139c4b5633 Significant simplification to path logic. 2017-04-14 17:53:32 -07:00
Adam Ierymenko 645bf4a764 Resurrect zerotier-containerized. 2017-04-14 13:30:12 -07:00
Adam Ierymenko 88a4a3b1ba Pass tptr on leave. 2017-04-11 08:47:02 -07:00
Adam Ierymenko 6fabaae736 Add simple root server watcher (for our own new dashboard, but also for user use). 2017-04-04 16:47:14 -07:00
Adam Ierymenko 1b2cfd63e5 add libstdc++ dependency 2017-04-04 14:10:38 -07:00
Adam Ierymenko ff2b219abd root-watcher code 2017-04-04 12:39:14 -07:00
Adam Ierymenko 33c3af752b Need to just have a make option for soft float ARM. 2017-04-04 11:26:50 -07:00
Adam Ierymenko f73a1d2d56 Linux ARM flags. 2017-04-04 09:41:34 -07:00
Adam Ierymenko 470ad39d0d More Linux ARM stuff. 2017-04-04 09:15:38 -07:00
Adam Ierymenko 5ad120208f Small fix, should filter by temporal validity. 2017-04-04 08:46:12 -07:00
Adam Ierymenko b48a70db2e Merge branch 'dev' of http://10.6.6.2/zerotier/ZeroTierOne into dev 2017-04-04 08:39:22 -07:00
Adam Ierymenko cd050b3423 Performance improvement in controller. 2017-04-04 08:39:19 -07:00
Adam Ierymenko eddbc7e757 Logic simplification, cleanup, and memory use improvements in Membership. Also fix an issue that may cause network instability in some cases. 2017-04-04 08:07:38 -07:00
Adam Ierymenko 8a62ba07e5 Membership cleanup work in progress. 2017-04-04 06:47:01 -07:00
Adam Ierymenko b3298a8f57 Merge branch 'dev' of http://10.6.6.2/zerotier/ZeroTierOne into dev 2017-03-30 09:54:10 -07:00
Adam Ierymenko e5284771e4 Add ping/pong to API so controller supervisor in Central can do a full-path check of controller uptime, etc. 2017-03-30 09:54:04 -07:00
Grant Limberg 5f611dad51 added orbit/deorbit methods to java Node implementation 2017-03-29 13:29:02 -07:00
Grant Limberg 1c5fdb8a0a fix path checker initialization 2017-03-29 13:28:06 -07:00
Grant Limberg de4b9e9a16 Added path checking interface for Java 2017-03-29 12:52:52 -07:00
Adam Ierymenko 57b5a33fbb Fix bug preventing default from being set to null if already set to an integer. 2017-03-29 12:32:59 -07:00
Adam Ierymenko 3f4f7145a3 Another rule compiler fix. 2017-03-28 22:25:24 -07:00
Adam Ierymenko b959148447 Small rule compiler fix with tag defaults. 2017-03-28 21:50:44 -07:00
Grant Limberg 855361b5b8 fix native end of JNI code for new thread data ptr 2017-03-28 17:49:00 -07:00
Adam Ierymenko 91c9f4cb20 Fix TRACE and CLUSTER builds. 2017-03-27 17:33:25 -07:00
Adam Ierymenko e4896b257f Add thread PTR that gets passed through the entire ZT core call stack and then passed to handler functions resulting from a call. 2017-03-27 17:03:17 -07:00
Adam Ierymenko 592cac5815 Remove from a few other places. 2017-03-27 12:09:37 -07:00
Adam Ierymenko 4244cca48c Delete comically named SSL gateway code, which is going elsewhere. 2017-03-27 12:08:38 -07:00
Grant Limberg 179ab5220a Set macOS deployment target to 10.10 for UI applet
Must use CLI for older versions of macOS
2017-03-27 11:36:11 -07:00
Grant Limberg d6bb1b72c3 Fix some text colors to work on old OS X versions 2017-03-27 11:15:36 -07:00
Grant Limberg 3d9a5a4f91 Popovers now appear to work 2017-03-27 10:55:47 -07:00
Joseph Henry 683ba79ff0 Added ButtFlare stub code 2017-03-24 17:00:14 -07:00
Grant Limberg 0c69fc719f Windows UI will attempt to re-copy the auth token if a 401 error is received 2017-03-22 10:48:42 -07:00
Grant Limberg 03b48a4ad4 add lock around [ServiceCom key] and remove some debug code 2017-03-22 10:22:15 -07:00
Grant Limberg aa71292265 A couple more places we should check HTTP status 2017-03-22 10:18:12 -07:00
Grant Limberg d72eee6cf7 If we get a 401 error from the ZeroTier service in the macOS UI, try re-copying the auth token 2017-03-22 09:58:13 -07:00
Adam Ierymenko 6bb19e7947 build fix 2017-03-21 09:08:32 -07:00
Adam Ierymenko 3d2518f799 crazy formatting fix 2017-03-21 08:21:11 -07:00
Adam Ierymenko 5268909075 Add a facility for full flow-through uptime test of controller by Central. 2017-03-21 06:31:15 -07:00
Adam Ierymenko c62141fd98 Make controller do a simple write-through cache without revalidating. Means you must restart if files change on disk, but will decrease I/O considerably. 2017-03-21 06:15:49 -07:00
Adam Ierymenko ae303ee902 dev is now 1.2.3 2017-03-20 16:17:11 -07:00
Adam Ierymenko cfe0d0971f VERSION 1.2.2
Version 1.2.2 fixes a few bugs discovered after the 1.2.0 release. These are:

 * A bug causing unreliable multicast propagation (GitHub issue #461).
 * A crash in ARM binaries due to a build chain and flags problem.
 * A bug in the network controller preventing members from being listed (GitHub issue #460).
2017-03-17 21:13:41 -07:00
Adam Ierymenko c5c8facc2d Windows installer version bump and a build fix. 2017-03-17 20:20:47 -07:00
Adam Ierymenko f78d6a8a93 docs 2017-03-17 20:04:25 -07:00
Adam Ierymenko 78ef2c5f16 Windows build fixes, app about text revisions. 2017-03-17 20:01:58 -07:00
Adam Ierymenko ec8e1178e5 Version bumps, and fix Debian so default is to build normally and .static files are used in our builds. 2017-03-17 19:16:34 -07:00
Adam Ierymenko 4f3f471b4c GitHub issue #460 2017-03-17 18:19:51 -07:00
Adam Ierymenko e10325e133 GitHub issue #461 -- plus a bit of cleanup and optimization 2017-03-17 17:15:23 -07:00
Adam Ierymenko ef46d3c97d LZ4 cleanup 2017-03-17 23:09:18 +00:00
Adam Ierymenko a9c08c5975 . 2017-03-17 22:35:56 +00:00
Adam Ierymenko c467c3b7e4 ARM tweaks 2017-03-17 22:26:08 +00:00
Adam Ierymenko cdc0eaec3a Fix attempt to WHOIS self. 2017-03-17 22:13:34 +00:00
Adam Ierymenko a7cb738175 . 2017-03-17 14:25:54 -07:00
Adam Ierymenko d1bb22a583 . 2017-03-17 14:09:30 -07:00
Adam Ierymenko 553d972de5 bump that version. bump it good. 2017-03-17 13:56:45 -07:00
Adam Ierymenko cc883cc3d8 Merge branch 'master' of http://10.6.6.2/zerotier/ZeroTierOne 2017-03-17 13:56:01 -07:00
Adam Ierymenko c6a39ed927 Fixes for possible ARM issues, cleanup, fix for spurious meaningless exceptions on NETWORK_CONFIG_REQUEST 2017-03-17 13:55:26 -07:00
Adam Ierymenko df30255542 Merge branch 'master' into dev 2017-03-17 12:37:23 -07:00
Adam Ierymenko d5102539dd Merge pull request #457 from skunkwerks/master
build: use clang on FreeBSD
2017-03-17 12:18:54 -07:00
Adam Ierymenko e3feaf3f5d Warning removal, and dev is now 1.2.1 2017-03-16 16:45:11 -07:00
Dave Cottlehuber 25dc596397 build: use clang on FreeBSD
this avoids a whopping 500+Mb dependency on gcc and friends at runtime
2017-03-16 12:58:04 +01:00
Daniel Skowroński 18c9dc8a06 fix RTF_MULTICAST and g++ -w 2016-12-27 13:07:05 +01:00
Daniel Skowroński ba07d1f91d cleanup 2016-12-27 11:57:05 +01:00
Daniel Skowroński 9a2310395d mimic BSDEthernetTap but with creating/destroying char tap device 2016-12-27 11:42:43 +01:00
Daniel Skowroński 218ace51a7 use /dev/tap{0..3}; it is fully working now 2016-12-26 02:52:07 +01:00
Daniel Skowroński f09eedbd7a make it compilable 2016-12-25 22:54:27 +01:00
Daniel Skowroński 546e8a3b44 initial netbsd support in makefile/flags 2016-12-25 20:59:12 +01:00
517 changed files with 109025 additions and 35632 deletions

No files matched your search

+46
View File
@@ -0,0 +1,46 @@
---
name: Bug report
about: Create a report to help us improve
---
**Alternative, faster ways to get help**
If you have just started using ZeroTier, here are some places to get help:
- my.zerotier.com has a _Community_ tab. It's a live chat with other users and the developers.
- [ZeroTier Knowledge Base](https://zerotier.atlassian.net/wiki/spaces/SD/overview)
- www.zerotier.com has a Contact Us button
- email contact@zerotier.com
**Describe the bug**
A clear and concise description of what the bug is.
**To Reproduce**
Steps to reproduce the behavior:
1. Create a Network '...'
2. Install zerotier-one '....'
3. '....'
4. See error
**Expected behavior**
A clear and concise description of what you expected to happen.
**Screenshots**
If applicable, add screenshots or console output to help explain your problem.
**Desktop (please complete the following information):**
- OS: [e.g. Mac, Linux, Windows, BSD]
- OS/Distribution Version
- ZeroTier Version [e.g. 1.2.4]
- Hardware [e.g. raspberry pi 3]
**Smartphone (please complete the following information):**
- Device: [e.g. iPhone6]
- OS: [e.g. iOS8.1]
- Version [e.g. 1.2.4]
**Additional context**
Add any other context about the problem here.
- ZeroTier Network Configuration
- Router Config
- Firewall Config (try turning the firewall off)
- General Network Environment: [ e.g Home, University Campus, Corporate LAN ]
+17
View File
@@ -0,0 +1,17 @@
---
name: Feature request
about: Suggest an idea for this project
---
**Is your feature request related to a problem? Please describe.**
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
**Describe the solution you'd like**
A clear and concise description of what you want to happen.
**Describe alternatives you've considered**
A clear and concise description of any alternative solutions or features you've considered.
**Additional context**
Add any other context or screenshots about the feature request here.
+13 -2
View File
@@ -1,15 +1,17 @@
<<<<<<< HEAD
# Main binaries created in *nix builds
/zerotier-one
/zerotier-idtool
/zerotier-cli
/zerotier-selftest
/zerotier
/nltest
# OS-created garbage files from various platforms
.DS_Store
.Apple*
Thumbs.db
@eaDir
._*
# Windows build droppings
/windows/ZeroTierOne.sdf
@@ -26,6 +28,7 @@ Thumbs.db
/windows/Release
/windows/WebUIWrapper/bin
/windows/WebUIWrapper/obj
/windows/lib
/ext/installfiles/windows/ZeroTier One-SetupFiles
/ext/installfiles/windows/Prerequisites
/ext/installfiles/windows/*-cache
@@ -48,6 +51,7 @@ enc_temp_folder
/world/mkworld
/world/*.c25519
zt1-src.tar.gz
/MacEthernetTapAgent
# Miscellaneous temporaries, build files, etc.
*.log
@@ -59,7 +63,7 @@ zt1-src.tar.gz
*.pid
*.pkg
*.o
*.a
/*.a
*.dylib
*.so
*.so.*
@@ -77,6 +81,7 @@ debian/zerotier-one
debian/zerotier-one*.debhelper
debian/*.log
debian/zerotier-one.substvars
root-watcher/config.json
# Java/Android/JNI build droppings
java/obj/
@@ -109,3 +114,9 @@ build/
!default.perspectivev3
*.xccheckout
xcuserdata/
ext/librethinkdbxx/build
.vscode
__pycache__
*~
attic/world/*.c25519
attic/world/mkworld
+7 -7
View File
@@ -2,6 +2,7 @@
* 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
@@ -45,13 +46,6 @@ ZeroTier includes the following third party code, either in ext/ or incorporated
* Home page: https://github.com/nlohmann/json
* License grant: MIT
* TunTapOSX by Mattias Nissler
* Files: ext/tap-mac/tuntap/*
* Home page: http://tuntaposx.sourceforge.net/
* License grant: BSD attribution no-endorsement
* ZeroTier Modifications: change interface name to zt#, increase max MTU, increase max devices
* tap-windows6 by the OpenVPN project
* Files: windows/TapDriver6/*
@@ -71,3 +65,9 @@ ZeroTier includes the following third party code, either in ext/ or incorporated
* 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
+12
View File
@@ -0,0 +1,12 @@
# CMake build script for libzerotiercore.a
cmake_minimum_required (VERSION 2.8)
project (zerotiercore)
set (PROJ_DIR ${PROJECT_SOURCE_DIR})
set (ZT_DEFS -std=c++11)
file(GLOB core_src_glob ${PROJ_DIR}/node/*.cpp)
add_library(zerotiercore STATIC ${core_src_glob})
target_compile_options(zerotiercore PRIVATE ${ZT_DEFS})
+1 -1
View File
@@ -1,5 +1,5 @@
ZeroTier One, an endpoint server for the ZeroTier virtual network layer.
Copyright © 2011–2016 ZeroTier, Inc.
Copyright © 2011–2019 ZeroTier, Inc.
ZeroTier One is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
Vendored
+53 -51
View File
@@ -1,9 +1,11 @@
#!/usr/bin/env groovy
node('master') {
checkout scm
def changelog = getChangeLog currentBuild
slackSend "Building ${env.JOB_NAME} #${env.BUILD_NUMBER} \n Change Log: \n ${changelog}"
mattermostSend "Building ${env.JOB_NAME} #${env.BUILD_NUMBER} \n Change Log: \n ${changelog}"
}
parallel 'centos7': {
@@ -17,66 +19,66 @@ parallel 'centos7': {
}
catch (err) {
currentBuild.result = "FAILURE"
slackSend color: '#ff0000', message: "${env.JOB_NAME} broken on Centos 7 (<${env.BUILD_URL}|Open>)"
mattermostSend color: '#ff0000', message: "${env.JOB_NAME} broken on Centos 7 (<${env.BUILD_URL}|Open>)"
throw err
}
}
}, 'android-ndk': {
node('android-ndk') {
try {
checkout scm
// }, 'android-ndk': {
// node('android-ndk') {
// try {
// checkout scm
stage('Build Android NDK') {
sh "/android/android-ndk-r13b/ndk-build -C $WORKSPACE/java ZT1=${WORKSPACE}"
}
}
catch (err) {
currentBuild.result = "FAILURE"
slackSend color: '#ff0000', message: "${env.JOB_NAME} broken on Android NDK (<${env.BUILD_URL}|Open>)"
// stage('Build Android NDK') {
// sh "/android/android-ndk-r15b/ndk-build -C $WORKSPACE/java ZT1=${WORKSPACE}"
// }
// }
// catch (err) {
// currentBuild.result = "FAILURE"
// mattermostSend color: '#ff0000', message: "${env.JOB_NAME} broken on Android NDK (<${env.BUILD_URL}|Open>)"
throw err
}
}
}, 'macOS': {
node('macOS') {
try {
checkout scm
// throw err
// }
// }
// }, 'macOS': {
// node('macOS') {
// try {
// checkout scm
stage('Build macOS') {
sh 'make -f make-mac.mk'
}
// stage('Build macOS') {
// sh 'make -f make-mac.mk'
// }
stage('Build macOS UI') {
sh 'cd macui && xcodebuild -target "ZeroTier One" -configuration Debug'
}
}
catch (err) {
currentBuild.result = "FAILURE"
slackSend color: '#ff0000', message: "${env.JOB_NAME} broken on macOS (<${env.BUILD_URL}|Open>)"
// stage('Build macOS UI') {
// sh 'cd macui && xcodebuild -target "ZeroTier One" -configuration Debug'
// }
// }
// catch (err) {
// currentBuild.result = "FAILURE"
// mattermostSend color: '#ff0000', message: "${env.JOB_NAME} broken on macOS (<${env.BUILD_URL}|Open>)"
throw err
}
}
}, 'windows': {
node('windows') {
try {
checkout scm
// throw err
// }
// }
// }, 'windows': {
// node('windows') {
// try {
// checkout scm
stage('Build Windows') {
bat '''CALL "C:\\Program Files (x86)\\Microsoft Visual Studio 14.0\\VC\\vcvarsall.bat" amd64
git clean -dfx
msbuild windows\\ZeroTierOne.sln
'''
}
}
catch (err) {
currentBuild.result = "FAILURE"
slackSend color: '#ff0000', message: "${env.JOB_NAME} broken on Windows (<${env.BUILD_URL}|Open>)"
// stage('Build Windows') {
// bat '''CALL "C:\\Program Files (x86)\\Microsoft Visual Studio 14.0\\VC\\vcvarsall.bat" amd64
// git clean -dfx
// msbuild windows\\ZeroTierOne.sln
// '''
// }
// }
// catch (err) {
// currentBuild.result = "FAILURE"
// mattermostSend color: '#ff0000', message: "${env.JOB_NAME} broken on Windows (<${env.BUILD_URL}|Open>)"
throw err
}
}
// throw err
// }
// }
}
slackSend color: "#00ff00", message: "${env.JOB_NAME} #${env.BUILD_NUMBER} Complete (<${env.BUILD_URL}|Show More...>)"
mattermostSend color: "#00ff00", message: "${env.JOB_NAME} #${env.BUILD_NUMBER} Complete (<${env.BUILD_URL}|Show More...>)"
+37
View File
@@ -0,0 +1,37 @@
ZeroTier One - Network Virtualization Everywhere
Copyright (C) 2011-2019 ZeroTier, Inc. https://www.zerotier.com/
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
See LICENSE.GPL-3 for the full GNU GPL v3 license.
--
You can be released from the requirements of the license by purchasing
a commercial license. Buying such a license is mandatory as soon as you
develop commercial closed-source software that incorporates or links
directly against ZeroTier software without disclosing the source code
of your own application.
--
The above license does not apply to third party code included with or
linked against by ZeroTier software. See the third party code section
of the AUTHORS.md for an index of third party software included in
this software repository.
Licenses for third party code are all relatively permissive: MIT,
BSD, and public domain. The only exception is the tap-windows driver
which is under the GPLv2, but this is only needed to produce the
binary tap device driver used by the ZeroTier service on Windows.
+6 -2
View File
@@ -11,8 +11,8 @@ ifeq ($(OSTYPE),Linux)
endif
ifeq ($(OSTYPE),FreeBSD)
CC=gcc
CXX=g++
CC=clang
CXX=clang++
ZT_BUILD_PLATFORM=7
include make-bsd.mk
endif
@@ -22,3 +22,7 @@ ifeq ($(OSTYPE),OpenBSD)
ZT_BUILD_PLATFORM=9
include make-bsd.mk
endif
ifeq ($(OSTYPE),NetBSD)
include make-netbsd.mk
endif
+1 -31
View File
@@ -13,8 +13,8 @@ The version must be incremented in all of the following files:
/zerotier-one.spec
/debian/changelog
/ext/installfiles/mac/ZeroTier One.pkgproj
/ext/installfiles/windows/chocolatey/zerotier-one.nuspec
/ext/installfiles/windows/ZeroTier One.aip
/windows/WinUI/AboutView.xaml
The final .AIP file can only be edited on Windows with [Advanced Installer Enterprise](http://www.advancedinstaller.com/). In addition to incrementing the version be sure that a new product code is generated. (The "upgrade code" GUID on the other hand must never change.)
@@ -28,36 +28,6 @@ Mac's easy. Just type:
You will need [Packages](http://s.sudre.free.fr/Software/Packages/about.html) and our release signing key in the keychain.
## Linux
Mount the GPG key for *contact@zerotier.com* and then on an x86_64 box with a recent version of Docker and an Internet connection run:
make distclean
cd linux-build-farm
./build.sh
This will build i386 and x86_64 packages. Now ssh into our build Raspberry Pi and type `make debian` there to build the Raspbian armhf package. Copy it to `debian-jessie/` inside `linux-build-farm` so that it will be included in the repositories we generate. Now generate the YUM and APT repos:
rm -rf ~/.aptly*
rm -rf /tmp/zt-rpm-repo
./make-apt-repos.sh
./make-rpm-repos.sh
This will require the passphrase for *contact@zerotier.com*.
The contents of ~/.aptly/public must be published as `debian/` on `download.zerotier.com`. The contents of /tmp/zt-rpm-repo are published as `redhat/` on same.
## 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.
*After the MSI is published to download.zerotier.com in the proper RELEASE/#.#.#/dist subfolder for its version* the Chocolatey package must be rebuilt and published. Open a command prompt, change to `ext/installfiles/windows/chocolatey`, and type `choco pack`. Then use `choco push` to push it to Chocolatey (API key required).
choco pack
choco push zerotier-one.#.#.#.nupkg -s https://chocolatey.org/
Note that this does not cover rebuilding the drivers or their containing MSI projects, as this is typically not necessary and they are shipped in binary form in the repository for convenience.
## iOS, Android
... no docs here yet since this is done entirely out of band with regular installs.
+19 -35
View File
@@ -1,73 +1,57 @@
ZeroTier - A Planetary Ethernet Switch
ZeroTier - Global Area Networking
======
ZeroTier is an enterprise Ethernet switch for planet Earth.
ZeroTier is a smart programmable Ethernet switch for planet Earth. It allows networked devices and applications to be managed as if the entire world is one data center or cloud region.
It erases the LAN/WAN distinction and makes VPNs, tunnels, proxies, and other kludges arising from the inflexible nature of physical networks obsolete. Everything is encrypted end-to-end and traffic takes the most direct (peer to peer) path available.
It replaces the physical LAN/WAN boundary with a virtual one, allowing devices of any type at any location to be managed as if they all reside in the same cloud region or data center. All traffic is encrypted end-to-end and takes the most direct path available for minimum latency and maximum performance. The goals and design of ZeroTier are inspired by among other things the original [Google BeyondCorp](https://static.googleusercontent.com/media/research.google.com/en//pubs/archive/43231.pdf) paper and the [Jericho Forum](https://en.wikipedia.org/wiki/Jericho_Forum).
Visit [ZeroTier's site](https://www.zerotier.com/) for more information and [pre-built binary packages](https://www.zerotier.com/download.shtml). Apps for Android and iOS are available for free in the Google Play and Apple app stores.
Visit [ZeroTier's site](https://www.zerotier.com/) for more information and [pre-built binary packages](https://www.zerotier.com/download/). Apps for Android and iOS are available for free in the Google Play and Apple app stores.
### Getting Started
ZeroTier's basic operation is easy to understand. Devices have 10-digit *ZeroTier addresses* like `89e92ceee5` and networks have 16-digit network IDs like `8056c2e21c000001`. All it takes for a device to join a network is its 16-digit ID, and all it takes for a network to authorize a device is its 10-digit address. Everything else is automatic.
Everything in the ZeroTier world is controlled by two types of identifier: 40-bit/10-digit *ZeroTier addresses* and 64-bit/16-digit *network IDs*. A ZeroTier address identifies a node or "device" (laptop, phone, server, VM, app, etc.) while a network ID identifies a virtual Ethernet network that can be joined by devices.
A "device" in our terminology is any "unit of compute" capable of talking to a network: desktops, laptops, phones, servers, VMs/VPSes, containers, and even user-space applications via our [SDK](https://github.com/zerotier/ZeroTierSDK).
Another way of thinking about it is that ZeroTier addresses are port numbers on a giant planetary-sized smart switch while network IDs are VLANs to which these ports can be assigned. For more details read about VL1 and VL2 in [the ZeroTier manual](https://www.zerotier.com/manual/).
For testing purposes we provide a public virtual network called *Earth* with network ID `8056c2e21c000001`. You can join it with:
sudo zerotier-cli join 8056c2e21c000001
Now wait about 30 seconds and check your system with `ip addr list` or `ifconfig`. You'll see a new interface whose name starts with *zt* and it should quickly get an IPv4 and an IPv6 address. Once you see it get an IP, try pinging `earth.zerotier.net` at `29.209.112.93`. If you've joined Earth from more than one system, try pinging your other machine. If you don't want to belong to a giant Ethernet party line anymore, just type:
sudo zerotier-cli leave 8056c2e21c000001
The *zt* interface will disappear. You're no longer on the network.
To create networks of your own, you'll need a network controller. ZeroTier One (for desktops and servers) includes controller functionality in its default build that can be configured via its JSON API (see [README.md in controller/](controller/)). ZeroTier provides a hosted solution with a nice web UI and SaaS add-ons at [my.zerotier.com](https://my.zerotier.com/). Basic controller functionality is free for up to 100 devices.
*Network controllers* are ZeroTier nodes that act as access control certificate authorities and configuration managers for virtual networks. The first 40 bits (or 10 digits) of a network ID is the ZeroTier address of its controller. You can create networks with our [hosted controllers](https://my.zerotier.com/) and web UI/API or [host your own](controller/) if you don't mind posting some JSON configuration info or writing a script to do so.
### Project Layout
The base path contains the ZeroTier One service main entry point (`one.cpp`), self test code, makefiles, etc.
- `artwork/`: icons, logos, etc.
- `attic/`: old stuff and experimental code that we want to keep around for reference.
- `controller/`: the reference network controller implementation, which is built and included by default on desktop and server build targets.
- `debian/`: files for building Debian packages on Linux.
- `doc/`: manual pages and other documentation.
- `docker/`: Dockerfile to build as a container for containerized Linux systems and Kubernetes clusters.
- `ext/`: third party libraries, binaries that we ship for convenience on some platforms (Mac and Windows), and installation support files.
- `include/`: include files for the ZeroTier core.
- `java/`: a JNI wrapper used with our Android mobile app. (The whole Android app is not open source but may be made so in the future.)
- `macui/`: a Macintosh menu-bar app for controlling ZeroTier One, written in Objective C.
- `node/`: the ZeroTier virtual Ethernet switch core, which is designed to be entirely separate from the rest of the code and able to be built as a stand-alone OS-independent library. Note to developers: do not use C++11 features in here, since we want this to build on old embedded platforms that lack C++11 support. C++11 can be used elsewhere.
- `osdep/`: code to support and integrate with OSes, including platform-specific stuff only built for certain targets.
- `rule-compiler/`: JavaScript rules language compiler for defining network-level rules.
- `service/`: the ZeroTier One service, which wraps the ZeroTier core and provides VPN-like connectivity to virtual networks for desktops, laptops, servers, VMs, and containers.
- `tcp-proxy/`: TCP proxy code run by ZeroTier, Inc. to provide TCP fallback (this will die soon!).
- `windows/`: Visual Studio solution files, Windows service code for ZeroTier One, and the Windows task bar app UI.
The base path contains the ZeroTier One service main entry point (`one.cpp`), self test code, makefiles, etc.
### Build and Platform Notes
To build on Mac and Linux just type `make`. On FreeBSD and OpenBSD `gmake` (GNU make) is required and can be installed from packages or ports. For Windows there is a Visual Studio solution in `windows/'.
- **Mac**
- Xcode command line tools for OSX 10.7 or newer are required.
- Tap device driver kext source is in `ext/tap-mac` and a signed pre-built binary can be found in `ext/bin/tap-mac`. You should not need to build it yourself. It's a fork of [tuntaposx](http://tuntaposx.sourceforge.net) with device names changed to `zt#`, support for a larger MTU, and tun functionality removed.
- Xcode command line tools for OSX 10.8 or newer are required.
- **Linux**
- The minimum compiler versions required are GCC/G++ 4.9.3 or CLANG/CLANG++ 3.4.2.
- The minimum compiler versions required are GCC/G++ 4.9.3 or CLANG/CLANG++ 3.4.2. (Install `clang` on CentOS 7 as G++ is too old.)
- Linux makefiles automatically detect and prefer clang/clang++ if present as it produces smaller and slightly faster binaries in most cases. You can override by supplying CC and CXX variables on the make command line.
- CentOS 7 ships with a version of GCC/G++ that is too old, but a new enough version of CLANG can be found in the *epel* repositories. Type `yum install epel-release` and then `yum install clang` to build there.
- **Windows**
- Windows 7 or newer (and equivalent server versions) are supported. This *may* work on Vista but you're on your own there. Windows XP is not supported since it lacks many important network API functions.
- We build with Visual Studio 2015. Older versions may not work with the solution file and project files we ship and may not have new enough C++11 support.
- Pre-built signed Windows drivers are included in `ext/bin/tap-windows-ndis6`. The MSI files found there will install them on 32-bit and 64-bit systems. (These are included in our multi-architecture installer as chained MSIs.)
- Windows builds are more painful in general than other platforms and are for the adventurous.
- Windows 7 or newer is supported. This *may* work on Vista but isn't officially supported there. It will not work on Windows XP.
- We build with Visual Studio 2017. Older versions may not work. Clang or MinGW will also probably work but may require some makefile hacking.
- **FreeBSD**
- Tested most recently on FreeBSD-11. Older versions may work but we're not sure.
- GCC/G++ 4.9 and gmake are required. These can be installed from packages or ports. Type `gmake` to build.
- GNU make is required. Type `gmake` to build.
- **OpenBSD**
- There is a limit of four network memberships on OpenBSD as there are only four tap devices (`/dev/tap0` through `/dev/tap3`). We're not sure if this can be increased.
- OpenBSD lacks `getifmaddrs` (or any equivalent method) to get interface multicast memberships. As a result multicast will only work on OpenBSD for ARP and NDP (IP/MAC lookup) and not for other purposes.
- Only tested on OpenBSD 6.0. Older versions may not work.
- GCC/G++ 4.9 and gmake are required and can be installed using `pkg_add` or from ports. They get installed in `/usr/local/bin` as `egcc` and `eg++` and our makefile is pre-configured to use them on OpenBSD.
- There is a limit of four network memberships on OpenBSD as there are only four tap devices (`/dev/tap0` through `/dev/tap3`).
- GNU make is required. Type `gmake` to build.
Typing `make selftest` will build a *zerotier-selftest* binary which unit tests various internals and reports on a few aspects of the build environment. It's a good idea to try this on novel platforms or architectures.
@@ -112,7 +96,7 @@ ZeroTier One peers will automatically locate each other and communicate directly
Users behind certain types of firewalls and "symmetric" NAT devices may not able able to connect to external peers directly at all. ZeroTier has limited support for port prediction and will *attempt* to traverse symmetric NATs, but this doesn't always work. If P2P connectivity fails you'll be bouncing UDP packets off our relay servers resulting in slower performance. Some NAT router(s) have a configurable NAT mode, and setting this to "full cone" will eliminate this problem. If you do this you may also see a magical improvement for things like VoIP phones, Skype, BitTorrent, WebRTC, certain games, etc., since all of these use NAT traversal techniques similar to ours.
If you're interested, there's a [technical deep dive about NAT traversal on our blog](https://www.zerotier.com/blog/?p=226). A troubleshooting tool to help you diagnose NAT issues is planned for the future as are uPnP/IGD/NAT-PMP and IPv6 transport.
If you're interested, there's a [technical deep dive about NAT traversal on our blog](https://www.zerotier.com/blog/?p=226?pk_campaign=github_ZeroTierOne). A troubleshooting tool to help you diagnose NAT issues is planned for the future as are uPnP/IGD/NAT-PMP and IPv6 transport.
If a firewall between you and the Internet blocks ZeroTier's UDP traffic, you will fall back to last-resort TCP tunneling to rootservers over port 443 (https impersonation). This will work almost anywhere but is *very slow* compared to UDP or direct peer to peer connectivity.
+93 -3
View File
@@ -1,6 +1,96 @@
ZeroTier Release Notes
======
# 2019-07-29 -- Version 1.4.0
### Major Changes
* Mac version no longer requires a kernel extension, instead making use of the [feth interfaces](https://apple.stackexchange.com/questions/337715/fake-ethernet-interfaces-feth-if-fake-anyone-ever-seen-this).
* Added support for concurrent multipath (multiple paths at once) with traffic weighting by link quality and faster recovery from lost links.
* Added under-the-hood support for QoS (not yet exposed) that will eventually be configurable via our rules engine.
### Minor Changes and Bug Fixes
* Experimental controller DB driver for [LF](https://github.com/zerotier/lf) to store network controller data (LFDB.cpp / LFDB.hpp).
* Modified credential push and direct path push timings and algorithms to somewhat reduce "chattiness" of the protocol when idle. More radical background overhead reductions will have to wait for the 2.x line.
* Removed our beta/half-baked integration of Central with the Windows UI. We're going to do a whole new UI of some kind in the future at least for Windows and Mac.
* Fixed stack overflow issues on Linux versions using musl libc.
* Fixed some alignment problems reported on ARM and ARM64, but some reports we could not reproduce so please report any issues with exact chip, OS/distro, and ZeroTier version in use.
* Fixed numerous other small issues and bugs such as ARM alignment issues causing crashes on some devices.
* Windows now sets the adapter name such that it is consistent in both the Windows UI and command line utilities.
# 2018-07-27 -- Version 1.2.12
* Fixed a bug that caused exits to take a long time on Mac due to huge numbers of redundant attempts to delete managed routes.
* Fixed a socket limit problem on Windows that caused the ZeroTier service to run out of sockets, causing the UI and CLI to be unable to access the API.
* Fixed a threading bug in the ZeroTier Core, albeit one that never manifested on the regular ZeroTier One service/client.
* Fixed a bug that could cause the service to crash if an authorized local client accessed an invalid URL via the control API. (Not exploitable since you needed admin access anyway.)
# 2018-05-08 -- Version 1.2.10
* Fix bug loading `moons.d/` files for federated root operation.
* Fix compile problem with ZT_DEBUG on some versions of `clang`
* Fix slow network startup bug related to loading of `networks.d/` cache files
# 2018-04-27 -- Version 1.2.8
* Linux version once again builds with PIE (position independent executable) flags
* Fixed bug in zerotier-idtool file sign and verify
* Fixed minor OSX app typo
* Merged alpha NetBSD support (mostly untested, so YMMV)
* Merged several minor typo and one-liner bug fixes
# 2018-04-17 -- Version 1.2.6
* Features and Core Improvements
* Path selection has been overhauled to improve path stability, simplify code, and prepare for multi-path and trunking in the next major release.
* This version introduces remote tracing for remote diagnostics. Network controllers can set a node (usually the controller itself) to receive remote tracing events from all members of the network or from select members. Events are only sent if they pertain to a given network for security reasons.
* Multicast replication can now be done by designated multicast replicators on a network (flagged as such at the controller) rather than by the sender. Most users won't want this, but it's useful for specialized use cases on hub-and-spoke networks and for low-power devices.
* Cryptographic performance improvements on several platforms.
* Multithreaded performance improvements throughout the code base, including the use of an inline lightweight spinlock for low-contention resources.
* Bugs fixed
* Disappearing routes on Mac (GitHub issue #600)
* Route flapping and path instability in some dual-stack V4/V6 networks
* Blacklist (in local.conf) doesn't work reliably (GitHub issue #656)
* Connection instabilities due to unsigned integer overflows in timing comparisons (use int64_t instead of uint64_t)
* Binaries don't run on some older or lower-end 32-bit ARM chips (build problem)
* ARM NEON crypto code crashes (build problem)
* Fixed some lock ordering issues revealed by "valgrind" tool
* The "zerotier-idtool" command could not be accessed from "zerotier-one" via command line switch
* Leaking sockets on some platforms when uPnP/NAT-PMP is enabled
* Fixed two very rare multithreading issues that were only observed on certain systems
* Platform-Specific Changes
* MacOS
* Installer now loads the kernel extension right away so that High Sierra users will see the prompt to authorize it. This is done in the "Security & Privacy" preference pane and must be done directly on the console (not via remote desktop). On High Sierra and newer kexts must be authorized at the console via security settings system preferences pane.
* Windows
* The Windows installer should now install the driver without requiring a special prompt in most cases. This should make it easier for our packages to be accepted into and updated in the Chocolatey repository and should make it easier to perform remote installs across groups of machines using IT management and provisioning tools.
* The Windows official packages are now signed with an EV certificate (with hardware key).
* The Windows UI can now log into ZeroTier Central and join networks via the Central API.
* The `zerotier-idtool` command should now work on Windows without ugly hacks.
* Upgraded the installer version.
* Made a few changes to hopefully fix sporadic "will not uninstall" problems, though we cannot duplicate these issues ourselves.
* Linux
* Device names are now generated deterministically based on network IDs for all newly joined networks.
* Android
* Multicast now works on Android in most cases! Android apps can send and receive multicast and subscribe to multicast group IPs. Note that in some cases the app must bind to the specific correct interface for this to work.
* IPv6 can be disabled in UI for cases where it causes problems.
# 2017-04-20 -- Version 1.2.4
* Managed routes are now only bifurcated for the default route. This is a change in behavior, though few people will probably notice. Bifurcating all managed routes was causing more trouble than it was worth for most users.
* Up to 2X crypto speedup on x86-64 (except Windows, which will take some porting) and 32-bit ARM platforms due to integration of fast assembly language implementations of Salsa20/12 from the [supercop](http://bench.cr.yp.to/supercop.html) code base. These were written by Daniel J. Bernstein and are in the public domain. My Macbook Pro (Core i5 2.8ghz) now does almost 1.5GiB/sec Salsa20/12 per core and a Raspberry Pi got a 2X boost. 64-bit ARM support and Windows support will take some work but should not be too hard.
* Refactored code that manages credentials to greatly reduce memory use in most cases. This may also result in a small performance improvement.
* Reworked and simplified path selection and priority logic to fix path instability and dead path persistence edge cases. There have been some sporadic reports of persistent path instabilities and dead paths hanging around that take minutes to resolve. These have proven difficult to reproduce in house, but hopefully this will fix them. In any case it seems to speed up path establishment in our tests and it makes the code simpler and more readable.
* Eliminated some unused cruft from the code around path management and in the peer class.
* Fixed an issue causing build problems on some MIPS architecture systems.
* Fixed Windows forgetting routes on sleep/wake or in some other circumstances. (GitHub issue #465)
# 2017-03-17 -- Version 1.2.2
* A bug causing unreliable multicast propagation (GitHub issue #461).
* A crash in ARM binaries due to a build chain and flags problem.
* A bug in the network controller preventing members from being listed (GitHub issue #460).
# 2017-03-14 -- Version 1.2.0
Version 1.2.0 is a major milestone release representing almost nine months of work. It includes our rules engine for distributed network packet filtering and security monitoring, federated roots, and many other architectural and UI improvements and bug fixes.
@@ -13,7 +103,7 @@ The largest new feature in 1.2.0, and the product of many months of work, is our
Rules allow you to filter packets on your network and vector traffic to security observers. Security observation can be performed in-band using REDIRECT or out of band using TEE.
Tags and capabilites provide advanced methods for implementing fine grained permission structures and micro-segmentation schemes without bloating the size and complexity of your rules table.
Tags and capabilities provide advanced methods for implementing fine grained permission structures and micro-segmentation schemes without bloating the size and complexity of your rules table.
See the [rules engine announcement blog post](https://www.zerotier.com/blog/?p=927) for an in-depth discussion of theory and implementation. The [manual](https://www.zerotier.com/manual.shtml) contains detailed information on rule, tag, and capability use, and the `rule-compiler/` subfolder of the ZeroTier source tree contains a JavaScript function to compile rules in our human-readable rule definition language into rules suitable for import into a network controller. (ZeroTier Central uses this same script to compile rules on [my.zerotier.com](https://my.zerotier.com/).)
@@ -96,7 +186,7 @@ A special kind of public network called an ad-hoc network may be accessed by joi
| Start of port range (hex)
Reserved ZeroTier address prefix indicating a controller-less network
Ad-hoc networks are public (no access control) networks that have no network controller. Instead their configuration and other credentials are generated locally. Ad-hoc networks permit only IPv6 UDP and TCP unicast traffic (no multicast or broadcast) using 6plane format NDP-emulated IPv6 addresses. In addition an ad-hoc network ID encodes an IP port range. UDP packets and TCP SYN (connection open) packets are only allowed to desintation ports within the encoded range.
Ad-hoc networks are public (no access control) networks that have no network controller. Instead their configuration and other credentials are generated locally. Ad-hoc networks permit only IPv6 UDP and TCP unicast traffic (no multicast or broadcast) using 6plane format NDP-emulated IPv6 addresses. In addition an ad-hoc network ID encodes an IP port range. UDP packets and TCP SYN (connection open) packets are only allowed to destination ports within the encoded range.
For example `ff00160016000000` is an ad-hoc network allowing only SSH, while `ff0000ffff000000` is an ad-hoc network allowing any UDP or TCP port.
@@ -111,7 +201,7 @@ If you have data in an old SQLite3 controller we've included a NodeJS script in
## Major Bug Fixes in 1.2.0
* **The Windows HyperV 100% CPU bug is FINALLY DEAD**: This long-running problem turns out to have been an issue with Windows itself, but one we were triggering by placing invalid data into the Windows registry. Microsoft is aware of the issue but we've also fixed the triggering problem on our side. ZeroTier should now co-exist quite well with HyperV and should now be able to be bridged with a HyperV virtual switch.
* **Segmenation faults on musl-libc based Linux systems**: Alpine Linux and some embedded Linux systems that use musl libc (a minimal libc) experienced segmentation faults. These were due to a smaller default stack size. A work-around that sets the stack size for new threads has been added.
* **Segmentation faults on musl-libc based Linux systems**: Alpine Linux and some embedded Linux systems that use musl libc (a minimal libc) experienced segmentation faults. These were due to a smaller default stack size. A work-around that sets the stack size for new threads has been added.
* **Windows firewall blocks local JSON API**: On some Windows systems the firewall likes to block 127.0.0.1:9993 for mysterious reasons. This is now fixed in the installer via the addition of another firewall exemption rule.
* **UI crash on embedded Windows due to missing fonts**: The MSI installer now ships fonts and will install them if they are not present, so this should be fixed.
Binary file not shown.

After

Width:  |  Height:  |  Size: 47 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 621 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.0 KiB

File diff suppressed because it is too large. Load diff
File diff suppressed because it is too large. Load diff
@@ -1,96 +0,0 @@
/*
* ZeroTier One - Network Virtualization Everywhere
* Copyright (C) 2011-2015 ZeroTier, Inc.
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
* --
*
* ZeroTier may be used and distributed under the terms of the GPLv3, which
* are available at: http://www.gnu.org/licenses/gpl-3.0.html
*
* If you would like to embed ZeroTier into a commercial application or
* redistribute it in a modified binary form, please contact ZeroTier Networks
* LLC. Start here: http://www.zerotier.com/
*/
#ifndef ZT_OSXETHERNETTAP_HPP
#define ZT_OSXETHERNETTAP_HPP
#include <stdio.h>
#include <stdlib.h>
#include <stdexcept>
#include <string>
#include <vector>
#include "../node/Constants.hpp"
#include "../node/MAC.hpp"
#include "../node/InetAddress.hpp"
#include "../node/MulticastGroup.hpp"
#include "Thread.hpp"
namespace ZeroTier {
/**
* OSX Ethernet tap using ZeroTier kernel extension zt# devices
*/
class OSXEthernetTap
{
public:
OSXEthernetTap(
const char *homePath,
const MAC &mac,
unsigned int mtu,
unsigned int metric,
uint64_t nwid,
const char *friendlyName,
void (*handler)(void *,uint64_t,const MAC &,const MAC &,unsigned int,unsigned int,const void *,unsigned int),
void *arg);
~OSXEthernetTap();
inline void setEnabled(bool en) { _enabled = en; }
inline bool enabled() const { return _enabled; }
bool addIp(const InetAddress &ip);
bool removeIp(const InetAddress &ip);
std::vector<InetAddress> ips() const;
void put(const MAC &from,const MAC &to,unsigned int etherType,const void *data,unsigned int len);
std::string deviceName() const;
void setFriendlyName(const char *friendlyName);
void scanMulticastGroups(std::vector<MulticastGroup> &added,std::vector<MulticastGroup> &removed);
void threadMain()
throw();
// Private members of OSXEthernetTap have public visibility to be accessable
// from an internal bounce function; don't modify directly.
void (*_handler)(void *,uint64_t,const MAC &,const MAC &,unsigned int,unsigned int,const void *,unsigned int);
void *_arg;
void *_pcap; // pcap_t *
uint64_t _nwid;
MAC _mac;
Thread _thread;
std::string _homePath;
std::string _dev;
std::vector<MulticastGroup> _multicastGroups;
unsigned int _mtu;
unsigned int _metric;
volatile bool _enabled;
};
} // namespace ZeroTier
#endif
Loaded 20 of 517 files, more files were not shown because too many files have changed in this diff. Show more