Adam Ierymenko
4218cd13d5
VERSION 1.1.6: route management, default route override, new IPv6 mode for Docker, and more!
...
(Retagged due to silly one-line bug and left over debug line... doh!)
Version 1.1.6 contains several significant improvements for use in complex network
environments along with some minor bug fixes and improvements to path stability and
dead path detection.
ROUTE MANAGEMENT AND FULL TUNNEL SUPPORT
1.1.6 is the first version of ZeroTier One to permit "full tunnel" (default route
override) operation on Linux, Mac, and Windows. This allows all Internet traffic
to be tunneled through ZeroTier while allowing ZeroTier peer-to-peer traffic to
continue to use the physical interface. 1.1.6 also brings route management support
and permissions settings for local networks to control whether networks are allowed
to modify the routing table or override default routing.
This is currently considered a beta/experimental feature and must be enabled via
the command line interface.
Route management and default route override requires support at the network controller.
When my.zerotier.com is updated and ready, we will post more information and testing
instructions at: https://www.zerotier.com/community
HIGHLY SCALABLE CONTAINER NETWORKING
1.1.6 also brings a new multicast-free (NDP emulated) IPv6 private addressing scheme
called "6plane." 6plane provides each host with a private IPv6 /80 and routes *all*
IPv6 traffic for this subnet to the host via transparent NDP emulation. This /80 can
then be assigned to Docker or other container/VM managers to assign a network-wide
IPv6 /128 to every container. Since NDP is emulated and multicast isn't needed, this
system can scale to millions of containers or more on a single backplane network with
a high degree of efficiency and reliability.
6plane also requires controller support. Look for it at my.zerotier.com once we have
upgraded our core infrastructure and web UIs.
(All hosts must be running 1.1.6 for 6plane to work properly. Other IPv6 addresses
or addressing modes are not affected and normal IPv6 NDP will continue to work
alongside 6plane in the same network.)
OTHER CHANGES
* Upgraded bundled miniupnpc, libnatpmp, and http-parser.
* New Debian and RPM packaging that is closer to compliance with distribution
guidelines, and a new Dockerized Linux package build system in linux-build-farm/
that can build every package on actual images of the correct distribution.
* Improvements to dead path detection.
* IPv6 now uses keepalive because a significant number of stateful IPv6 edge
routers have very short timeouts (30 seconds or less!).
* Significant performance improvements to network controllers under high load.
* Enable -fstack-protector-strong for better stack canary (security) support
in binaries. Note that this may require newer gcc/g++ or clang.
COMING SOON
The next version of ZeroTier One should have a new Mac UI. It's a system tray app
that looks and behaves a lot like the Mac WiFi pulldown menu. We'll also be adding
GUI support for default route and route management options and other new features.
Shortly after that we plan on adding full OpenFlow-like SDN rules engine support
to the ZeroTier core, making our planetary Ethernet switch a fully manageable smart
switch and enabling sophisticated security and flow rule management.
2016-06-29 18:16:58 -07:00
Adam Ierymenko
030dfde38e
Unused printf removal while we are at it.
2016-06-29 18:14:49 -07:00
Adam Ierymenko
901e2fd692
Fix silly one-liner bug... retag time.
2016-06-29 18:12:35 -07:00
Adam Ierymenko
c03ca3c278
VERSION 1.1.6: route management, default route override, new IPv6 mode for Docker, and more!
...
Version 1.1.6 contains several significant improvements for use in complex network
environments along with some minor bug fixes and improvements to path stability and
dead path detection.
ROUTE MANAGEMENT AND FULL TUNNEL SUPPORT
1.1.6 is the first version of ZeroTier One to permit "full tunnel" (default route
override) operation on Linux, Mac, and Windows. This allows all Internet traffic
to be tunneled through ZeroTier while allowing ZeroTier peer-to-peer traffic to
continue to use the physical interface. 1.1.6 also brings route management support
and permissions settings for local networks to control whether networks are allowed
to modify the routing table or override default routing.
This is currently considered a beta/experimental feature and must be enabled via
the command line interface.
Route management and default route override requires support at the network controller.
When my.zerotier.com is updated and ready, we will post more information and testing
instructions at: https://www.zerotier.com/community
HIGHLY SCALABLE CONTAINER NETWORKING
1.1.6 also brings a new multicast-free (NDP emulated) IPv6 private addressing scheme
called "6plane." 6plane provides each host with a private IPv6 /80 and routes *all*
IPv6 traffic for this subnet to the host via transparent NDP emulation. This /80 can
then be assigned to Docker or other container/VM managers to assign a network-wide
IPv6 /128 to every container. Since NDP is emulated and multicast isn't needed, this
system can scale to millions of containers or more on a single backplane network with
a high degree of efficiency and reliability.
6plane also requires controller support. Look for it at my.zerotier.com once we have
upgraded our core infrastructure and web UIs.
(All hosts must be running 1.1.6 for 6plane to work properly. Other IPv6 addresses
or addressing modes are not affected and normal IPv6 NDP will continue to work
alongside 6plane in the same network.)
OTHER CHANGES
* Upgraded bundled miniupnpc, libnatpmp, and http-parser.
* New Debian and RPM packaging that is closer to compliance with distribution
guidelines, and a new Dockerized Linux package build system in linux-build-farm/
that can build every package on actual images of the correct distribution.
* Improvements to dead path detection.
* IPv6 now uses keepalive because a significant number of stateful IPv6 edge
routers have very short timeouts (30 seconds or less!).
* Significant performance improvements to network controllers under high load.
* Enable -fstack-protector-strong for better stack canary (security) support
in binaries. Note that this may require newer gcc/g++ or clang.
COMING SOON
The next version of ZeroTier One should have a new Mac UI. It's a system tray app
that looks and behaves a lot like the Mac WiFi pulldown menu. We'll also be adding
GUI support for default route and route management options and other new features.
Shortly after that we plan on adding full OpenFlow-like SDN rules engine support
to the ZeroTier core, making our planetary Ethernet switch a fully manageable smart
switch and enabling sophisticated security and flow rule management.
2016-06-29 15:53:46 -07:00
Adam Ierymenko
af2268ebd7
docs
2016-06-29 15:33:18 -07:00
Adam Ierymenko
b9876d1809
docs
2016-06-29 15:30:49 -07:00
Adam Ierymenko
e64909cdcd
docs
2016-06-29 15:24:45 -07:00
Adam Ierymenko
ce2ad69e5f
Get rid of aptly script.
2016-06-29 14:44:29 -07:00
Adam Ierymenko
56fb08621e
amazon-2016.03 docker image
2016-06-29 14:35:53 -07:00
Adam Ierymenko
4457c8218d
Auto-detect miniupnpc 2.0 and use it on Linux if present.
2016-06-29 13:27:10 -07:00
Adam Ierymenko
c862f199e3
Windows: ship it!
2016-06-29 13:22:04 -07:00
Adam Ierymenko
7918b26f65
Hack settings into old CLI.
2016-06-29 12:22:37 -07:00
Adam Ierymenko
df00d3b046
Going to have to continue to use the old MAC web-container-based UI on Macs prior to 10.10 even when the new UI comes out, and the new UI is not ready yet anyway, so resurrect this.
2016-06-29 12:00:16 -07:00
Adam Ierymenko
19735e7050
Revert backgrounding of controller requests hack. Controller code is not really parallel anyway and we fixed the perf problem.
2016-06-29 11:43:22 -07:00
Adam Ierymenko
bb63646682
Fix broken SQL in controller.
2016-06-29 11:37:28 -07:00
Adam Ierymenko
b4fcf2ee60
Fix a valgrind warning.
2016-06-29 11:11:16 -07:00
Adam Ierymenko
d9eacd1616
Controller fixes...
2016-06-29 17:02:03 +00:00
Adam Ierymenko
5309c7e082
Merge branch 'dev' of https://github.com/zerotier/ZeroTierOne into dev
2016-06-29 16:47:57 +00:00
Adam Ierymenko
dbe57742e6
Merge branch 'dev' of http://10.6.6.2/zerotier/ZeroTierOne into dev
2016-06-29 09:45:05 -07:00
Adam Ierymenko
928c625e2c
docs
2016-06-29 09:45:02 -07:00
Adam Ierymenko
1e00603241
Merge branch 'dev' of http://10.6.6.2/zerotier/ZeroTierOne into dev
2016-06-28 16:09:41 -07:00
Adam Ierymenko
f6442f2752
fedora-22
2016-06-28 16:09:36 -07:00
Adam Ierymenko
7b7ab823b0
Fix getPeer(self) bug if I am the controller.
2016-06-28 22:49:01 +00:00
Adam Ierymenko
0410fd4824
Refactor recent member request history to fix performance problem in controller.
2016-06-28 12:44:47 -07:00
Adam Ierymenko
02fa32422a
Dockerfile ordering
2016-06-27 20:07:35 -07:00
Adam Ierymenko
12037961ff
small perf improvement in sqlite db.
2016-06-27 18:48:02 -07:00
Adam Ierymenko
8c572dead1
Query optimization.
2016-06-27 18:28:18 -07:00
Adam Ierymenko
3ddfebe742
dead code removal
2016-06-27 17:15:39 -07:00
Adam Ierymenko
972bbb7e06
Allow further concurrency on network controller.
2016-06-27 17:14:47 -07:00
Adam Ierymenko
45f315e603
Defer NETWORK_CONFIG_REQUEST packets and allow multithreaded processing.
2016-06-27 17:09:04 -07:00
Adam Ierymenko
b9e86103cf
Docker build farm seems to work!
2016-06-27 16:38:08 -07:00
Adam Ierymenko
0588589d57
.
2016-06-27 16:21:55 -07:00
Adam Ierymenko
4d30f60bbe
.
2016-06-27 16:12:17 -07:00
Adam Ierymenko
d58dcf29cc
For now go back to bundling http-parser etc. in our official RPM builds since this introduces an EPEL dependency for CentOS which would only make sense if we are actually in EPEL. Probably will eventually have two spec files: one for official and one for our own.
2016-06-27 15:46:54 -07:00
Adam Ierymenko
809457599a
CentOS7 fixes.
2016-06-27 15:21:24 -07:00
Adam Ierymenko
2d19fb7f8c
More RPM fixes.
2016-06-27 15:08:51 -07:00
Adam Ierymenko
2c9401ed74
CentOS6 fix.
2016-06-27 14:56:40 -07:00
Adam Ierymenko
af23596c34
Put everything in /usr/sbin on Linux.
2016-06-27 14:45:38 -07:00
Adam Ierymenko
233945e60f
More Dockerfile fixes, and do not use "ln -r" since it is not supported on older Linux distributions.
2016-06-27 14:36:58 -07:00
Adam Ierymenko
147f735333
More build fixes.
2016-06-27 14:21:54 -07:00
Adam Ierymenko
8de5b2beda
RPM build fixes -- use RPM cflags, spec fixes, etc.
2016-06-27 09:25:34 -07:00
Adam Ierymenko
b02c3dfe8d
Debian dependency for iproute2
2016-06-27 08:48:09 -07:00
Adam Ierymenko
c5d3895313
ZeroTier One requires /sbin/ip (RPM-based distros)
2016-06-27 08:47:09 -07:00
Adam Ierymenko
d20bcdae12
CentOS 6 Docker build.
2016-06-25 16:27:28 -07:00
Adam Ierymenko
81cd68b60d
.
2016-06-25 14:07:02 -07:00
Adam Ierymenko
0582b3daba
.
2016-06-25 14:06:40 -07:00
Adam Ierymenko
af0a205594
Build and spec file updates for CentOS6
2016-06-25 14:04:08 -07:00
Adam Ierymenko
06e2e8119e
Script to create Debian repos (requires aptly)
2016-06-24 16:23:10 -07:00
Adam Ierymenko
8b78f19335
More build targets.
2016-06-24 14:57:20 -07:00
Adam Ierymenko
9784393b15
More Linux Docker build farm targets.
2016-06-24 14:45:09 -07:00
Adam Ierymenko
65da797112
Merge branch 'dev' of http://10.6.6.2/zerotier/ZeroTierOne into dev
2016-06-24 14:19:01 -07:00
Adam Ierymenko
75fe981b9d
Bump version.
2016-06-24 14:18:28 -07:00
Adam Ierymenko
caaf33e4cf
Bump version.
2016-06-24 10:20:35 -07:00
Adam Ierymenko
d642db6f66
Changes for Debian packaging to prep for 1.1.6 interim.
2016-06-24 10:19:41 -07:00
Adam Ierymenko
3740b83f63
Don't back up sqlite db if it hasn't changed to prevent constant thrashing on inactive controllers.
2016-06-24 06:53:23 -07:00
Adam Ierymenko
90cdef8400
Forgot NDP emulation flag.
2016-06-24 06:43:23 -07:00
Adam Ierymenko
ee649ae69a
Add 6plane assignment support to network controller, and cleanup.
2016-06-24 06:40:50 -07:00
Adam Ierymenko
20d155e630
.
2016-06-24 05:21:25 -07:00
Adam Ierymenko
be5996daca
Cleanup of 6plane stuff.
2016-06-24 04:54:05 -07:00
Adam Ierymenko
38dfebad8c
IPv6 NDP emulation flag in NetworkConfig, and implement Docker-friendly
...
(and other host friendly) IPv6 /80 magic subnetting to allow massive
multicast-free NDP emulated IPv6 networks where each host can have a
/48 worth of IPv6 IPs for internal containers, VMs, etc.
Alan Kay, thou art avenged.
https://ivanovivan.wordpress.com/2010/09/13/alan-kay-quotes/
2016-06-23 22:41:14 -07:00
Adam Ierymenko
a5a05e454e
cli work...
2016-06-23 17:00:33 -07:00
Adam Ierymenko
32d9850263
More new CLI work.
2016-06-23 12:37:15 -07:00
Adam Ierymenko
a5ea8cc5cb
.
2016-06-22 17:56:36 -07:00
Adam Ierymenko
0ad6b4105a
Outline of new CLI with ability to control controllers/central as well as service.
2016-06-22 17:54:07 -07:00
Adam Ierymenko
f765597526
Add network local.conf stuff to save network permission settings and wire it all through via the JSON API. Default route and route management stuff just about done.
2016-06-21 16:52:49 -07:00
Adam Ierymenko
8ca4f22f1d
cleanup
2016-06-21 15:53:38 -07:00
Adam Ierymenko
674b84d908
Plumbing for network setting control, and GitHub issue #330
2016-06-21 14:58:30 -07:00
Adam Ierymenko
e2ca239be0
Comment cleanup.
2016-06-21 14:38:15 -07:00
Adam Ierymenko
4f237687ce
Route management now works on Windows, including default route override! 1.1.6 very close!
2016-06-21 13:54:03 -07:00
Adam Ierymenko
5b2d2efb45
Windows builds again. And there was much rejoicing.
2016-06-21 12:55:43 -07:00
Adam Ierymenko
82473c85e0
Default route override and route management in general now works in Linux.
2016-06-21 12:32:58 -07:00
Adam Ierymenko
51ced0cf41
GitHub issue #338
2016-06-21 09:41:55 -07:00
Adam Ierymenko
6c4a444f29
GitHub issue #339
2016-06-21 09:40:53 -07:00
Adam Ierymenko
330c80f3f5
Add rule type to match a COM field of the peer by ID and value because this will be powerful.
2016-06-21 08:09:20 -07:00
Adam Ierymenko
eee59ec9ce
Fix Buffer<> version of Dictionary.get().
2016-06-21 08:00:40 -07:00
Adam Ierymenko
0959d33ba0
Add a few technically unnecessary but feel-good paranoia bounds checks in Dictionary.get().
2016-06-21 07:59:42 -07:00
Adam Ierymenko
ca82715bfa
Another fuzzing code fix.
2016-06-21 07:52:32 -07:00
Adam Ierymenko
0c05b2cb50
Comment cleanup and fuzzing improvements.
2016-06-21 07:49:46 -07:00
Adam Ierymenko
b2d048aa0e
Make Dictionary templatable so it can be used where we want a higher capacity.
2016-06-21 07:32:58 -07:00
Adam Ierymenko
3ee15e65aa
Tying up default route and route mgmt loose ends. It now periodically updates shadow routes so hopefully your link will stay up as you move around.
2016-06-17 13:14:48 -07:00
Adam Ierymenko
1bf1c38b30
Default route population works on Mac!
2016-06-16 18:23:33 -07:00
Adam Ierymenko
eb4a78bcc3
Report routes in locally joined network JSON.
2016-06-16 17:40:32 -07:00
Adam Ierymenko
37afa876a7
Linux bug fixes, small controller fix.
2016-06-17 00:21:58 +00:00
Adam Ierymenko
601c51b351
Bug fix.
2016-06-16 23:18:20 +00:00
Adam Ierymenko
20d4dada40
Refactor controller for new merged format.
2016-06-16 16:05:57 -07:00
Adam Ierymenko
901b75e756
New format now integrated, and it works.
2016-06-16 15:48:58 -07:00
Adam Ierymenko
bc3d7d11fe
Remove netcon from dev branch. This is moving to its own new ZeroTierSDK repo for future release under the SDK name.
2016-06-16 14:50:08 -07:00
Adam Ierymenko
490d20e8fb
Self test for dictionary, and fixes.
2016-06-16 14:45:36 -07:00
Adam Ierymenko
2113c21fdc
devicemap now works again in OSXEthernetTap
2016-06-16 14:09:09 -07:00
Adam Ierymenko
e09c1a1c11
Big refactor mostly builds. We now have a uniform backward compatible netconf.
2016-06-16 12:28:43 -07:00
Adam Ierymenko
b104bb4762
New super-packed dictionary -- we are going back to a backward compatibile format with the old netconf but in an embedded-friendly way. This is simpler.
2016-06-15 18:47:35 -07:00
Adam Ierymenko
f41ea24e97
Build fixes.
2016-06-16 00:11:46 +00:00
Adam Ierymenko
3c655a4b84
Default route ready to test on Mac.
2016-06-15 15:46:57 -07:00
Adam Ierymenko
b90e66f7c7
ManagedRoute, which applies C++ RAII to injected routes. Move RoutingTable to attic.
2016-06-15 15:02:40 -07:00
Adam Ierymenko
4446dbde5e
Big refactor in service code to prep for plumbing through route management.
2016-06-14 10:09:26 -07:00
Adam Ierymenko
769351b30f
Fix to routes config in controller API.
2016-06-13 15:58:00 -07:00
Adam Ierymenko
734cbb2f1e
Controller modifications for default route are ready to test. Will require slight changes in ZeroTier Central when it goes live.
2016-06-10 15:58:35 -07:00
Adam Ierymenko
acbe8ad398
More controller work, and some RedHat fixes.
2016-06-10 08:26:27 -07:00
Adam Ierymenko
9898066b47
Remove some deprecated stuff in controller -- not done yet.
2016-06-09 11:02:42 -07:00
Adam Ierymenko
82635ce606
Add flags and metric to ZT-managed routes.
2016-06-09 09:43:09 -07:00
Adam Ierymenko
8c7433a525
.
2016-06-08 17:45:25 -07:00
Adam Ierymenko
56ef9e0643
Add rpm target.
2016-06-08 16:29:30 -07:00
Adam Ierymenko
e6328dfe82
Add RPM spec conditionals to include json-parser or bundle it depending on whether we are fedora or rhel/centos/epel.
2016-06-08 16:19:38 -07:00
Adam Ierymenko
3a48e3781b
bundle miniupnpc for now... might change later.
2016-06-08 15:37:37 -07:00
Adam Ierymenko
f9056da6be
rpmbuild -ba zerotier-one.spec basically works
2016-06-08 15:33:59 -07:00
Adam Ierymenko
536feb632c
Support yet another old version of http-parser for CentOS/EPEL.
2016-06-08 15:09:09 -07:00
Adam Ierymenko
cafa41ba4d
RedHat stuff and cleanup.
2016-06-08 14:46:42 -07:00
Adam Ierymenko
196d96cfa7
Fix ronn convert problem in man page.
2016-06-08 14:08:56 -07:00
Adam Ierymenko
4e6f95e152
Build man pages with ruby-ronn on Debian.
2016-06-08 14:06:19 -07:00
Adam Ierymenko
de9fa6a334
All three init systems now covered in debian.
2016-06-08 13:30:29 -07:00
Adam Ierymenko
abd7071eaa
systemd stuff for debian
2016-06-08 13:19:08 -07:00
Adam Ierymenko
7e68791bee
Fix include for system json-parser.
2016-06-08 12:57:22 -07:00
Adam Ierymenko
6c6b18d003
Fix include for system lz4.
2016-06-08 12:50:56 -07:00
Adam Ierymenko
4da9d4e53a
Fix build against Debian version of libhttp-parser -- its old but it will work.
2016-06-08 12:49:07 -07:00
Adam Ierymenko
0ca764968a
Remove warnings, more Debian stuff, remove obsolete ui/ stuff.
2016-06-08 11:21:01 -07:00
Adam Ierymenko
62b64d39ab
Minimal debian is working.
2016-06-08 10:30:54 -07:00
Adam Ierymenko
ae87fbf8e3
make install installs man pages
2016-06-08 10:19:46 -07:00
Adam Ierymenko
2e890580fc
Stop shipping pre-build man pages since it violates Debian arcane rule #134931e+26 and add manpages build target.
2016-06-08 10:13:31 -07:00
Adam Ierymenko
afda5e684b
Make install/uninstall for Linux
2016-06-07 17:11:09 -07:00
Adam Ierymenko
9161eebc68
Carry virtual network routes through to API.
2016-06-07 12:15:19 -07:00
Adam Ierymenko
683254a0db
Don't bother signing if we are not using the legacy netconf.
2016-06-07 11:17:38 -07:00
Adam Ierymenko
2885aea65c
Only send new format netconf for PV>=6
2016-06-07 11:13:18 -07:00
Adam Ierymenko
523ea68ae2
Increment protocol version to indicate support for binary network config and config request meta-data.
2016-06-07 11:08:36 -07:00
Adam Ierymenko
ca88e1f1cf
fix size
2016-06-07 10:47:22 -07:00
Adam Ierymenko
be37d025b8
Make flags 64-bit in both network request and config.
2016-06-07 10:46:29 -07:00
Adam Ierymenko
4342b71d7a
Upgrade miniupnpc to 2.0
2016-06-02 17:04:15 -07:00
Adam Ierymenko
f20602a7b1
docs
2016-06-02 15:57:18 -07:00
Adam Ierymenko
f311b4111b
docs
2016-06-02 15:56:58 -07:00
Adam Ierymenko
61d6ada88d
.
2016-06-02 15:26:00 -07:00
Adam Ierymenko
506c74270c
Stash old Linux binary installer stuff in attic. This is going away.
2016-06-02 15:20:43 -07:00
Adam Ierymenko
4d13ddd48c
GPG public key for signing GitHub releases, etc.
2016-06-02 15:04:56 -07:00
Adam Ierymenko
cc89290eb6
last man page!
2016-06-02 14:50:38 -07:00
Adam Ierymenko
5bce3e37ee
clean doc node_modules on clean
2016-06-02 13:58:34 -07:00
Adam Ierymenko
6671d5553b
More man pages.
2016-06-02 13:56:24 -07:00
Adam Ierymenko
41b3b54bf8
man stuff
2016-06-02 13:04:46 -07:00
Adam Ierymenko
096db53822
Switch manual pages to "ronn," a program that converts MarkDown to roff man pages, and pre-build them. Also have the zerotier-cli(1) man page ready to go!
2016-06-02 12:33:28 -07:00
Adam Ierymenko
f9148bf9cb
Finally json-parser. Skip miniupnpc since some Linux distros (even newer ones) ship with an old unsafe crummy version.
2016-06-01 22:26:58 -07:00
Adam Ierymenko
a880f93166
also libnatpmp
2016-06-01 22:06:43 -07:00
Adam Ierymenko
fd81a7fe63
On Linux auto-detect presence of http-parser and lz4 and link against system libs instead of ext/ builtins (for RPM and DEB packaging effort)
2016-06-01 21:55:48 -07:00
Adam Ierymenko
65b7893a8a
add full docs to ext/json-parser (no upgrade available)
2016-06-01 18:51:22 -07:00
Adam Ierymenko
597dee40fd
upgrade ext/http-parser
2016-06-01 18:49:36 -07:00
Adam Ierymenko
2c995f1f91
IPv6 links are unfortunately not "reliable." Many IPv6 gateways, while not
...
implementing NAT, do implement stateful firewalling with absurdly short
timeouts (<60s). Keepalives are still required in IPv6.
Network engineers continue to mindlessly carry forward cruft and baggage
from IPv4 to IPv6.
2016-05-31 10:30:00 -07:00
Adam Ierymenko
68d950c344
Hack in zerotier-idtool to allow generation of vanity addresses.
2016-05-26 09:26:03 -07:00
Adam Ierymenko
0bcc7d46a3
Disable debug code.
2016-05-16 18:39:34 -07:00
Adam Ierymenko
93b673043c
Fix new binary meta-data deserialization and add some debug code (will disable later).
2016-05-16 18:37:37 -07:00
Grant Limberg
de1b745988
comment out a few TRACE messages that don't compile
2016-05-14 13:29:31 -07:00
Grant Limberg
efdbd6326f
compiling with C++11 requires a space between string literals
2016-05-14 13:25:40 -07:00
Adam Ierymenko
25c3d3a452
cleanup
2016-05-11 13:24:55 -07:00
Adam Ierymenko
548730660b
Ready to test whole new netconf refactor.
2016-05-11 10:19:14 -07:00
Adam Ierymenko
7ee3743c3d
Refactor controller to send both old and new format netconf.
2016-05-11 08:49:15 -07:00
Adam Ierymenko
37b89b3944
Add TCP relative sequence number criterion for documentation/posterity.
2016-05-09 17:00:17 -07:00
Adam Ierymenko
8b9519f0af
Simplify a bunch of NetworkConfig stuff by eliminating accessors, also makes network controller easier to refactor.
2016-05-06 16:13:11 -07:00
Adam Ierymenko
529515d1d1
Changes to how new-style binary network configs are detected, and a new-style binary serialized meta-data representation.
2016-05-06 13:29:10 -07:00
Adam Ierymenko
69d0562e2c
docs
2016-05-06 11:41:11 -07:00
Adam Ierymenko
7913fa7bbd
Dead code removal.
2016-05-06 11:13:34 -07:00
Adam Ierymenko
b543868351
Missing deserialize stuff.
2016-05-06 11:00:19 -07:00
Adam Ierymenko
0f17077b3d
Merge gateways and routes in netconf since they are the same thing.
2016-05-06 10:57:53 -07:00
Adam Ierymenko
9da8bf37d7
docs
2016-04-28 21:31:10 +02:00
Adam Ierymenko
e5cc487b95
Beginning of security doc and kill some obsolete defines in main include file.
2016-04-28 14:58:16 +02:00
Adam Ierymenko
726136beda
Ifdef fix.
2016-04-27 09:30:34 +02:00
Adam Ierymenko
59eb09d063
Deserialize new style netconf.
2016-04-26 17:20:31 -07:00
Adam Ierymenko
b9dba97fdb
Bunch more refactoring for an even more compact NetworkConfig representation, especially rules.
2016-04-26 17:11:25 -07:00
Adam Ierymenko
25a5275921
.
2016-04-26 08:53:49 -07:00
Adam Ierymenko
e731fc1a3a
Replace two bools in NetworkConfig with a flags field.
2016-04-26 08:40:26 -07:00
Adam Ierymenko
90e1262a8b
More refactoring to remove old Dictionary dependencies.
2016-04-26 08:20:03 -07:00
Adam Ierymenko
246f86dad3
Define an "anchor" as a statically defined device that serves as a network lookup point.
2016-04-26 07:56:41 -07:00
Adam Ierymenko
d736074301
Refactor rules table in-memory structure in new NetworkConfig to permit far more rules with better space efficiency.
2016-04-22 15:40:53 -07:00
Adam Ierymenko
368efaa2ba
Kill some old debug code.
2016-04-19 12:55:48 -07:00
Adam Ierymenko
2f18a92e20
Cleanup in numerous places, reduce network chattiness around MULTICAST_LIKE, and fix a "how was that working" latent bug causing some control traffic to take the scenic route.
2016-04-19 12:09:35 -07:00
Adam Ierymenko
affbca74b4
Clean up Linux makefile and remove doc target from default since it requires rst2man. Add doc target to official instead.
2016-04-19 09:35:32 -07:00
Adam Ierymenko
4c455876f9
Revise peer path weighting to always prioritize cluster-optimal paths.
2016-04-19 09:22:51 -07:00
Adam Ierymenko
cecfa99b7b
(1) cluster members send a flag indicating that a PUSH_DIRECT_PATHS is a cluster redirect, (2) 1.1.5 uses this to avoid a bug (this bug does not exist in 1.1.4)
2016-04-18 16:44:23 -07:00
Adam Ierymenko
b3cac538cc
Store lat/lon too for testing and future display use.
2016-04-18 15:48:33 -07:00
Adam Ierymenko
587b1e05d1
Replace cluster-geo subprocess with in-memory loaded CSV of GeoIP data. This is faster, cheaper, more reliable. We use https://db-ip.com/ but others would work too.
2016-04-18 11:33:54 -07:00
Adam Ierymenko
02c3727ccd
.
2016-04-18 10:21:38 -07:00
Adam Ierymenko
af471af8ef
Shrink NetworkConfig slightly.
2016-04-12 13:32:41 -07:00
Adam Ierymenko
e28838805f
Brace fix...
2016-04-12 13:17:16 -07:00
Adam Ierymenko
8a9762331f
Fix one more old NetworkConfig bit of code.
2016-04-12 12:54:14 -07:00
Adam Ierymenko
31db6f8f36
NetworkConfig refactor almost done.
2016-04-12 12:49:46 -07:00
Adam Ierymenko
ad1e83d8b9
Refactor IncomingPacket for new NetworkConfig
2016-04-12 12:32:33 -07:00
Adam Ierymenko
bbd9915056
Refactor Node for new NetworkConfig
2016-04-12 12:26:10 -07:00
Adam Ierymenko
51fecc0be9
Refactor Network for new NetworkConfig.
2016-04-12 12:16:29 -07:00
Adam Ierymenko
6f854c8391
NetworkConfig refactor part 1
2016-04-12 12:11:34 -07:00
Adam Ierymenko
9b8444fff1
Merge of bignose/manual-pages (Linux man pages)
2016-04-07 12:28:43 -07:00
Adam Ierymenko
43e317f0b7
Authorship stuff.
2016-04-07 12:24:15 -07:00
Adam Ierymenko
0e40181d8f
Merge branch 'license-clarification' into dev
2016-04-07 12:18:46 -07:00
Adam Ierymenko
63b62ebf4c
Boost local interface check interval a bit to speed direct link provisioning on startup.
2016-04-07 12:13:18 -07:00
Adam Ierymenko
569de22481
Make port mapper names even more unique, and trial bind before binding TCP now which should work on Linux and others.
2016-04-07 09:51:14 -07:00
Adam Ierymenko
9085a04b16
Merge branch 'dev' of http://git.int.zerotier.com:/zerotier/ZeroTierOne into dev
2016-04-07 16:41:28 +00:00
Adam Ierymenko
c7df61a3c3
dev branch now works again on Linux
2016-04-07 16:41:07 +00:00
Adam Ierymenko
c278f05181
RoutingTable build fixes.
2016-04-06 17:29:38 -07:00
Adam Ierymenko
61a9c27af0
Consolidate routing table code.
2016-04-06 17:14:05 -07:00
Adam Ierymenko
e9b2613d5f
Put routing table code back in osdep/
2016-04-06 16:57:37 -07:00
Adam Ierymenko
24469a7f43
.
2016-04-06 16:47:11 -07:00
Adam Ierymenko
56096be8b6
Tweak new RX queue algorithm to "expire" old entries to prevent always needing to traverse the whole queue array.
2016-04-06 16:28:40 -07:00
Adam Ierymenko
8ef78e7e7d
Preserve add local interface address add order and send in that order since this is a priority.
2016-04-06 11:50:00 -07:00
Adam Ierymenko
504738b183
Binder for Windows, and use Binder to get local interface addresses to advertise.
2016-04-05 15:53:19 -07:00
Adam Ierymenko
32cd2a02c9
OneService now binds all ports to specific local interfaces instead of wildcard and rebinds on changes. (default route)
2016-04-05 15:44:08 -07:00
Adam Ierymenko
4a109658ab
More refactoring and prep for explicit interface bindings (for default route support).
2016-04-05 11:59:46 -07:00
Adam Ierymenko
52d9612301
Reduce symmetric prediction fuzz just a bit.
2016-04-05 10:49:14 -07:00
Adam Ierymenko
d8b89b0c86
Fix Cluster to send from a designated endpoint address instead of wildcard.
2016-04-05 10:47:13 -07:00
Adam Ierymenko
e0ad854d19
Beginning of local binding manager for default gateway support.
2016-04-04 18:46:41 -07:00
Adam Ierymenko
0e26917c72
Tweak metric and clean out attic a bit.
2016-04-01 11:07:44 -07:00
Adam Ierymenko
3df60995e1
nit pick... might this matter?
2016-03-30 16:49:21 -07:00
Adam Ierymenko
1a5e7cb0cb
More tweaks to OS determination stuff.
2016-03-28 12:26:49 -07:00
Adam Ierymenko
8035afae87
Try to define ZT_NO_TYPE_PUNNING on iOS in case it wasn't.
2016-03-28 12:22:05 -07:00
Adam Ierymenko
284e5d83b5
Fix some broken TRACEs and a tiny reorder in a few ifs.
2016-03-28 12:15:24 -07:00
Adam Ierymenko
2b3e1d5c10
Ignore IP assignment pool ranges that begin with 0.0.0.0 or that contain no IPs.
2016-03-24 13:34:01 -07:00
Adam Ierymenko
2c328d61ad
Do not auto-assign IP addresses on bridges. IPs can still be assigned manually.
2016-03-24 13:32:01 -07:00
Adam Ierymenko
76f9b4c582
A few other little formatting things.
2016-03-18 15:06:45 -07:00
Adam Ierymenko
c589bc4c57
Indentation
2016-03-18 14:32:48 -07:00
Adam Ierymenko
d6a1868d0a
Refactor incoming packet (rxQueue/fragmentQueue) to eliminate variable length queues and merge queues. This is both faster and saves memory.
2016-03-18 14:16:07 -07:00
Adam Ierymenko
9f31cbd8b8
Make /network/???/active return more info.
2016-03-17 13:05:51 -07:00
Ben Finney
c0262d8f76
Add “doc” to the dependencies for the “all” build target.
2016-03-04 17:01:31 +11:00
Ben Finney
92702615a7
Add an overall “doc” build target.
2016-03-04 17:01:14 +11:00
Ben Finney
c9d3f3ab96
Correct license grant to match “GPL v3 or later” grant in source.
2016-03-04 16:45:15 +11:00
Ben Finney
72797c25d5
Update copyright notice.
2016-03-04 16:44:23 +11:00
Ben Finney
ea6ce47345
Refactor the program name to a pre-processor directive.
2016-03-04 16:42:30 +11:00
Ben Finney
10855b451d
Refactor the copyright notice text to a pre-processor directive.
2016-03-04 16:40:09 +11:00
Ben Finney
3265b3594b
Refactor the license grant text to a pre-processor directive.
2016-03-04 16:37:36 +11:00
Ben Finney
cafc46a8e9
Add Makefile module for building documentation.
2016-03-04 16:06:17 +11:00
Ben Finney
5993b178c5
Ignore generated man page files.
2016-03-04 16:05:55 +11:00
Ben Finney
24e286b5ec
Add a stub for an encoding declaration on a man page.
2016-03-04 16:04:57 +11:00
Ben Finney
c63de27633
Add references to other tools for ‘zerotier-one’.
2016-03-04 15:41:06 +11:00
Ben Finney
a84a256df4
Add incomplete man pages for ‘zerotier-idtool’ and ‘zerotier-cli’.
2016-03-04 15:40:08 +11:00
Ben Finney
88dfa860f4
Document how the home directory is used, and its default value.
2016-03-04 15:08:17 +11:00
Ben Finney
83bc5d95aa
Document remaining options explicitly.
2016-03-04 14:57:10 +11:00
Ben Finney
09c61d5cb1
More explicit specification of how to use ‘-i’ and ‘-q’.
2016-03-04 14:53:50 +11:00
Ben Finney
71c84aee60
Add “see also” section referring to ZeroTier documentation online.
2016-03-04 11:36:19 +11:00
Ben Finney
cee09b0d2e
Refine description of ZeroTier One.
2016-03-04 11:36:04 +11:00
Ben Finney
fdb8ea93ef
Add a reStructuredText document for a ‘zerotier-one(8)’ man page.
2016-03-04 11:35:16 +11:00
Adam Ierymenko
60ab565185
Fix cluster-geo code to cache IPv6 by first 64 bits to prevent cache fillup due to IPv6 privacy extensions.
2016-03-03 15:33:38 -08:00
Adam Ierymenko
1fe251d0a0
stupid bug is stupid
2016-03-03 14:50:47 -08:00
Adam Ierymenko
ff931e53b5
more makefile stuff
2016-03-03 14:31:43 -08:00
Adam Ierymenko
ef376a7919
Linux make clean fix.
2016-03-03 14:24:52 -08:00
Adam Ierymenko
09fc9e4d0c
indent fix
2016-03-03 14:21:13 -08:00
Adam Ierymenko
fe3a84a422
Fix problems with previous commit.
2016-03-03 14:15:09 -08:00
Adam Ierymenko
ba56a5b9d1
Another NAT-t improvement:
...
Many NATs revert to symmetric behavior from friendlier modes if they cannot
preserve ports. This can occur if there is, for example, more than one ZT
device behind the NAT using port 9993.
Others (Airport Extreme?) seem to have bugs in which they completely freak
out if more than one device tries to do a lot of mappings using the same
internal local port.
Mostly to fix the latter case and somewhat to fix the former, we introduce
a secondary port. ZeroTier now binds 9993 (or whatever port you specify)
plus another port computed deterministically from your ZeroTier address.
This port is used for new links 1/4 of the time.
This mostly addresses the second problem above and partly helps to address
the first.
If uPnP/NAT-PMP is enabled we also still open a tertiary port because some
routers freak out if NAT-t is attempted using the same port as uPnP.
All of this is IPv4 only of course. IPv6 is sane.
2016-03-03 13:52:27 -08:00
Adam Ierymenko
a27d8b2910
Windows cleanup.
2016-03-02 19:20:04 -08:00
Adam Ierymenko
b6f6ed35fc
More Windows tweaks and a compile fix.
2016-03-02 19:06:29 -08:00
Adam Ierymenko
d3cb063d13
Tweaks to WindowsEthernetTap to attempt to address GitHub issue #308 and/or GitHub issue #277 -- we can't reproduce yet but I found one area where a spin was possible under certain failure conditions. Maybe.
2016-03-02 18:37:24 -08:00
Ben Finney
b9125e4256
Document myself as a contributor.
2016-03-02 10:38:30 +11:00
Adam Ierymenko
0aae86be2e
Merge branch 'dev' of https://github.com/krisek/ZeroTierOne into dev
2016-03-01 12:29:29 -08:00
Adam Ierymenko
d9fa07399e
Fix GitHub issue #311
2016-03-01 09:49:33 -08:00
Ben Finney
d570adf021
State grant of license in each third-party component.
2016-02-29 18:11:54 +11:00
Ben Finney
dcb91c043f
State which exact files constitute third-party works.
2016-02-29 18:04:20 +11:00
Ben Finney
f613930dee
Explicitly mark home page URLs of third-party code.
2016-02-29 18:03:16 +11:00
Ben Finney
667048310d
Remove text that paraphrases GPLv3 conditions.
2016-02-29 17:44:47 +11:00
Ben Finney
642aa3313d
Explicitly grant GPLv3-or-later terms to the overall code base.
2016-02-29 17:44:47 +11:00
Ben Finney
f6e98df8da
Refer directly to the accompanying GPL-3 license document.
2016-02-29 17:44:47 +11:00
Ben Finney
d37e44225f
Add explicit copyright statement in same file as license grant.
2016-02-29 17:44:47 +11:00
Ben Finney
5c172d1a15
Rename file that is not a license text.
2016-02-29 17:44:10 +11:00
Ben Finney
0bf2060a7d
Add verbatim text of GNU General Public License version 2.
2016-02-29 15:16:19 +11:00
Ben Finney
22883b3eeb
Add verbatim text of GNU General Public License version 3.
2016-02-29 15:13:37 +11:00
Kristof Imre Szabo
6d1dc47368
Typo fix.
2016-02-28 17:06:46 +01:00
Kristof Imre Szabo
f8d05eb625
Spec description rephrased.
2016-02-28 17:05:43 +01:00
Kristof Imre Szabo
45c233c0e7
Formatting change
2016-02-28 00:04:18 +01:00
Kristof Imre Szabo
b836228465
Formatting change
2016-02-28 00:02:48 +01:00
Kristof Imre Szabo
8118630861
Formatting change
2016-02-28 00:00:55 +01:00
Kristof Imre Szabo
bf3e31ece7
Initial commit of the standard zerotier RPM specification
2016-02-27 23:55:14 +01:00
Adam Ierymenko
f217ce7ff7
Upgrade http-parser.
2016-02-25 18:13:42 -08:00
Adam Ierymenko
039790cf26
Upgrade LZ4 to hopefully fix wacky sporadic crash when built with g++ 5.3.1 on Debian/testing.
2016-02-25 15:39:15 -08:00
Adam Ierymenko
e5f82f5457
cleanup
2016-02-25 10:08:30 -08:00
Adam Ierymenko
a5e4e3fcac
Remove ui/ on Linux uninstall.
2016-02-24 17:24:36 -08:00
Adam Ierymenko
3fe60615df
Make installers silent when run inside packages.
2016-02-24 15:23:49 -08:00
Adam Ierymenko
7b5c1696eb
Fix a CIRCUIT_TEST bug in forwarding of tests along hop paths on private networks. Unfortunately this means full circuit testing for private nets will need an upgrade. :(
2016-02-23 14:56:51 -08:00
Adam Ierymenko
c7c61b4ac0
Fix checking of path address validity.
2016-02-22 16:01:35 -08:00
Adam Ierymenko
92f24d1988
Make maximum size of a circuit test structure sane.
2016-02-22 15:54:18 -08:00
Adam Ierymenko
9b59bcd995
Clean controller circuit test memory.
2016-02-22 15:48:27 -08:00
Adam Ierymenko
43fff1a87e
Deprecate reporting of local clock in circuit tests since a small number of users might have security problems with this.
2016-02-22 12:59:26 -08:00
Adam Ierymenko
2aa7138373
Reduce direct ping delay back to 1m and make SelfAwareness aware of local received-on address to eliminate false symmetric classification.
2016-02-22 09:47:50 -08:00
Adam Ierymenko
69a438d64d
Small tweak to active threshold.
2016-02-19 09:10:31 -08:00
Adam Ierymenko
772551c45d
Try +1 and +2 existing surfaces for symmetric NATs.
2016-02-11 10:39:39 -08:00
Adam Ierymenko
0c951b6e56
More tweaks to new symmetric NAT buster, and stop using old iterative method since this supersedes it.
2016-02-10 18:41:39 -08:00
Adam Ierymenko
eadafd8de7
Little fix to NAT-t alg
2016-02-10 17:51:42 -08:00
Adam Ierymenko
f9230eb970
Widen max delta for TS/revision just a bit more for now.
2016-02-10 16:18:45 -08:00
Adam Ierymenko
82348e1537
Temporarily blacklist he.net IPv6 tunnel addresses for paths: these usually have a very low MTU which causes packet loss and other issues.
2016-02-10 11:06:26 -08:00
Adam Ierymenko
10bb9919f1
Tweak certificate of membership revision/time tolerance to eliminate boundary packet loss issues occasionally seen in the wild.
2016-02-10 09:32:42 -08:00
Adam Ierymenko
4769dacf61
Tweak needsOurMembershipCertificate timing to resolve a possible source of occasional dropped packets.
2016-02-09 16:54:47 -08:00
Adam Ierymenko
63ec7e58d4
Make activity no longer a function of ping frequency, since this causes compatibility bugs when the latter was modified due to timer interactions with other versions.
2016-02-08 10:03:01 -08:00
Adam Ierymenko
a963810e02
Tweak a few cluster params for higher perf / lower initial setup latency.
2016-02-08 09:57:46 -08:00
Adam Ierymenko
69b1da2e1d
return 200 instead of 404 when test is fetched
2016-02-04 16:27:25 -08:00
Adam Ierymenko
dc3d899e70
Return test ID when we post a test.
2016-02-04 16:09:26 -08:00
Adam Ierymenko
78c1d9006a
flood protection fix
2016-02-04 14:39:43 -08:00
Adam Ierymenko
5dad73647d
Lengthen backup period again
2016-02-04 14:22:54 -08:00
Adam Ierymenko
13b39a0c3e
SQLite perf tuning
2016-02-04 14:03:37 -08:00
Adam Ierymenko
90801a94d3
Track client version and tell whether active nodes support circuit test.
2016-02-04 13:38:42 -08:00
Adam Ierymenko
fab6f4450d
/active subpath off networks
2016-02-04 12:17:55 -08:00
Adam Ierymenko
2e04dc03f2
Logging to NodeHistory, SQL queries.
2016-02-03 18:10:56 -08:00
Adam Ierymenko
f8eb6b0067
Add NodeHistory table on sqlite controller.
2016-02-03 13:56:35 -08:00
Adam Ierymenko
7a63fdc447
Fix for GitHub issue #298 and hopefully #297
2016-02-01 14:41:54 -08:00
Adam Ierymenko
4655a59912
typo
2016-01-28 17:59:31 -08:00
Adam Ierymenko
c0668dcdf2
Merge branch 'edge' into dev
2016-01-26 14:20:25 -08:00
Adam Ierymenko
9cb4bbe2b8
Save test results for circuit tests in memory and then cancel the test and send the results when the test is queried later. This way you can POST a test and then come GET the result at the appointed time.
2016-01-26 12:42:44 -08:00
Joseph Henry
95d28494f6
Mac OSX Port - Lightly tested
2016-01-25 12:55:29 -08:00
Grant Limberg
67f678d60a
Merge branch 'master' into dev
2016-01-22 18:07:20 -08:00
Grant Limberg
3993dfa2a5
Fix JNI for API changes in 1.1.4
2016-01-22 18:06:58 -08:00
Adam Ierymenko
935f00ad4c
Merge branch 'edge' of http://10.6.6.2/zerotier/ZeroTierOne into edge
2016-01-21 16:03:14 -08:00
Adam Ierymenko
bafdb54752
New dev version: 1.1.5
2016-01-21 16:02:16 -08:00
Adam Ierymenko
7526ed705c
Check for /dev/tun as well as /dev/net/tun since some Linux devices put it there.
2016-01-21 16:01:24 -08:00
Joseph Henry
bccd60125b
Added python, python3, darkhttpd unit tests
2016-01-21 15:52:54 -08:00
Joseph Henry
7127d2b811
Updated unit tests + README
2016-01-21 15:10:26 -08:00
Adam Ierymenko
9cc2733ed8
VERSION 1.1.4: Improved path detection, improved anti-recursion code, and Network Containers BETA
...
ZeroTier One version 1.1.4 has several improvements to path stability and
path learning logic. It also contains the BETA version of Network Containers!
See netcon/README.md and https://www.zerotier.com/product-netcon.shtml for more
information.
Improvements in 1.1.4:
- Paths are now confirmed more aggressively on inactivity. This version can
usually detect a dead direct path in under 10 seconds vs 1-2 minutes in
previous versions.
- Logic to prevent recursion has been overhauled. The old versions had code
that explicitly checked packet contents (AntiRecursion.hpp). This is now
gone in favor of a function that checks IP addresses of ZeroTier devices
when paths are learned or probed. This is both more efficient and less
prone to edge case failures. Testing in several complex environments has
shown that this eliminates a few edge cases where inappropriate paths would
be used.
2016-01-20 18:10:40 -08:00
Adam Ierymenko
3b10fd7557
Windows build fixes.
2016-01-20 18:06:20 -08:00
Adam Ierymenko
f782797dc7
readme
2016-01-20 17:44:17 -08:00
Adam Ierymenko
227b8bfbf6
Merge branch 'edge' of http://10.6.6.2/zerotier/ZeroTierOne into edge
2016-01-20 16:59:59 -08:00
Adam Ierymenko
385770dcc8
1.1.4 bump
2016-01-20 16:59:54 -08:00
Janjaap Bos
4f6ca14d4f
typo
2016-01-20 16:52:46 -08:00
Janjaap Bos
c3fc5340b6
Added check for identiy
...
Needed if you just copy & paste the whole block.
2016-01-20 16:43:37 -08:00
Adam Ierymenko
4f30b06930
Merge branch 'dev' into edge
2016-01-20 16:28:14 -08:00
Joseph Henry
398e0b7c63
Removed debug line
2016-01-20 15:04:02 -08:00
Joseph Henry
b7b014298b
Bad connection reference fix + RX lock fix
2016-01-20 14:43:49 -08:00
Joseph Henry
bcaf42e075
Transfer speed increate + stability fixes
2016-01-20 13:38:14 -08:00
Joseph Henry
357cb92f2e
Stability fix + introduction of connection probation
2016-01-18 23:41:28 -08:00
Joseph Henry
31ed86740c
Added some safety + unregister callbacks on close
2016-01-18 16:04:29 -08:00
Joseph Henry
f2cc144811
Fixed nc_sent possible bad ptr on close issue
2016-01-18 12:26:40 -08:00
Joseph Henry
1783867f96
Print path for user. Removed unused stub Phy methods
2016-01-17 15:13:32 -08:00
Joseph Henry
a73638b214
Fixed memory leak
2016-01-17 14:32:34 -08:00
Grant Limberg
bd1884e48f
yay more icons
2016-01-15 18:39:16 -08:00
Grant Limberg
5cd20c0009
Adding app icons for iOS
2016-01-15 18:22:53 -08:00
Joseph Henry
58ebfdffcb
Debugs off by default
2016-01-15 13:03:37 -08:00
Joseph Henry
1e2c434ae8
nc_recved() connection closure change
2016-01-15 13:02:48 -08:00
Joseph Henry
7107297c25
Merge branch 'edge' of http://10.6.6.2/zerotier/zerotierone into edge
2016-01-15 11:19:25 -08:00
Joseph Henry
35fb602dff
Fixed pcb->state == CLOSE_WAIT bug
2016-01-15 11:18:26 -08:00
Adam Ierymenko
8af3d35234
Merge branch 'dev' into edge
2016-01-15 11:18:23 -08:00
Joseph Henry
323d40a560
Small formatting changes
2016-01-15 10:27:27 -08:00
Joseph Henry
321bca4bf7
Adjusted formatting/conventions to conform to rest of ZT codebase
2016-01-15 10:09:31 -08:00
Joseph Henry
7cb08630d0
Fixed RX race condition
2016-01-14 18:59:08 -08:00
Joseph Henry
45f0737a00
Naming convention update
2016-01-14 14:15:50 -08:00
Joseph Henry
6cf478c1b2
RX buffer update
2016-01-14 14:03:03 -08:00
Joseph Henry
f52a82d9f2
Updated RX buffer code
2016-01-14 13:23:01 -08:00
Grant Limberg
6dac0c8c4f
C doesn't support default arguments
2016-01-13 17:47:34 -08:00
Joseph Henry
5e30eabd30
Updated getsockopt/setsockopt, removed unused code
2016-01-13 15:52:15 -08:00
Joseph Henry
7bba867ce8
Fixed double-close bug
2016-01-13 13:55:11 -08:00
Adam Ierymenko
e8e6a4702b
Merge branch 'dev' into edge
2016-01-13 13:15:47 -08:00
Joseph Henry
c3e2cb9b8e
Modified PCB/state management logic
2016-01-13 12:19:48 -08:00
Adam Ierymenko
2e5caa335a
Old SF root is dead. Now we are just on Alice and Bob. (world update for 1.1.4)
2016-01-13 10:18:41 -08:00
Joseph Henry
bdabe40c65
Updated error reporting for sock_fd_read()
2016-01-12 14:25:30 -08:00
Adam Ierymenko
7991a7c50a
Merge branch 'dev' into edge
2016-01-12 14:05:40 -08:00
Adam Ierymenko
4e4fd51117
boring doc stuff
2016-01-12 14:04:55 -08:00
Joseph Henry
e91322bd10
README update and example server port change
2016-01-12 14:04:55 -08:00
Joseph Henry
23cdb3aed5
Removed ztnc network config file
2016-01-12 13:58:15 -08:00
Joseph Henry
bd3d9ee356
Removed terminology changes
2016-01-12 13:55:46 -08:00
Adam Ierymenko
76f1ab33f0
Make clean rm .depend
2016-01-12 13:44:59 -08:00
Adam Ierymenko
61fd8463f8
Merge branch 'dev' into edge
2016-01-12 13:19:53 -08:00
Adam Ierymenko
3883ac08c7
Docs and cleanup.
2016-01-12 13:17:30 -08:00
Joseph Henry
dd233fdb8d
Updated terminology. No functional change
2016-01-12 13:00:31 -08:00
Joseph Henry
18aea2d3d3
Removed unused code
2016-01-12 12:56:51 -08:00
Joseph Henry
74e22368b5
Fixed sketchy memcpy logic, also added checks for service RPC ACK
2016-01-12 12:42:46 -08:00
Adam Ierymenko
d03a63e055
Merge branch 'edge' of http://10.6.6.2/zerotier/ZeroTierOne into edge
2016-01-12 12:25:19 -08:00
Adam Ierymenko
93ab8d46b9
Merge branch 'dev' into edge
2016-01-12 12:25:15 -08:00
Adam Ierymenko
740eb6ebc4
Simplify Peer locking to eliminate deadlock with new path recursion check code (and also probably improve performance).
2016-01-12 12:12:25 -08:00
Adam Ierymenko
d6f0f1a82a
Use network user ptr in lookup for Ethernet frame handling to eliminate map lookup.
2016-01-12 11:34:22 -08:00
Adam Ierymenko
83ef98a9dc
Add a network-associated user ptr in API.
2016-01-12 11:04:35 -08:00
Adam Ierymenko
3edfbfec93
Merge branch 'master' into dev
2016-01-12 09:50:19 -08:00
Adam Ierymenko
68c004ef68
Merge pull request #291 from JackyRen/patch-1
...
Update controller README.md
2016-01-12 09:49:54 -08:00
Joseph Henry
e2ae9165c6
RPC update
2016-01-12 09:46:49 -08:00
Adam Ierymenko
704205c5f7
Dead code removal.
2016-01-12 09:33:14 -08:00
Ren Jie
21656ba015
Update controller README.md
...
Sync make parameter with code.
2016-01-12 22:51:08 +08:00
Adam Ierymenko
bbcc3304a0
Check shouldUsePathForZeroTierTraffic in legacy beacon responder.
2016-01-11 15:57:58 -08:00
Adam Ierymenko
c6571073fe
Get rid of constructor/destructor in libzerotierintercept, and simplify a few things.
2016-01-11 15:27:22 -08:00
Adam Ierymenko
ba9fcb31d0
Merge branch 'dev' into edge
2016-01-11 14:30:24 -08:00
Joseph Henry
78c0f0a443
RPC detection fix
2016-01-11 13:23:43 -08:00
Joseph Henry
7656e6b9f8
Transfer tune-up
2016-01-11 11:37:04 -08:00
Joseph Henry
39d79f34ab
Added RPC ACK
2016-01-11 10:35:02 -08:00
Adam Ierymenko
b3e3d4cacc
Instead of using binary packet comparison, add a callback to the API to explicitly check whether paths should be used. Check in with this callback (if present) when learning new paths or sending initial packets.
2016-01-11 10:17:44 -08:00
Joseph Henry
3e65ecb93d
Stateless RPC rework
2016-01-11 10:12:59 -08:00
Adam Ierymenko
ba2a89c760
docs
2016-01-11 09:13:41 -08:00
Adam Ierymenko
eea634a432
Refactor to eliminate copypasta.
2016-01-11 09:11:35 -08:00
Adam Ierymenko
ab19e19f00
Fix a bug that we visually found in Windows code -- it was not advertising uPnP addresses?!?
2016-01-11 09:09:24 -08:00
Adam Ierymenko
1023ef23b7
Remove somewhat ugly and costly anti-recursion hack -- we will switch to more explicit methods.
2016-01-11 09:06:10 -08:00
Adam Ierymenko
a56fbc1929
Close another potential anti-recursion loophole.
2016-01-06 15:35:27 -08:00
Adam Ierymenko
47ce52228b
Roots should probably not do this since it would likely be a waste of packets.
2016-01-06 12:54:51 -08:00
Adam Ierymenko
ff9317365a
Merge branch 'dev' into edge
2016-01-06 11:38:11 -08:00
Adam Ierymenko
0a3ef38cad
Put old test code in attic.
2016-01-06 11:06:47 -08:00
Adam Ierymenko
9aee72099e
AntiRecursion cleanup and some other minor things.
2016-01-06 10:59:39 -08:00
Adam Ierymenko
05b2c0743f
Tighten up dead path detection. Should now auto-detect dead paths in less than 10 seconds at a very small cost in ECHO requests (or HELLOs for older peers). GitHib issue #272
2016-01-06 10:00:03 -08:00
Adam Ierymenko
4d94ae77b4
simplify if
2016-01-05 16:48:35 -08:00
Adam Ierymenko
d8143a5e18
Implement first pass on rapid dead path detection, and increment version to 1.1.3 (dev)
2016-01-05 16:41:54 -08:00
Adam Ierymenko
cba739fd6b
more dead code
2016-01-05 14:46:26 -08:00
Adam Ierymenko
fb5237d5b6
Outline dead path detection mechanism.
2016-01-05 14:42:56 -08:00
Adam Ierymenko
258f95b2cd
dead code removal
2016-01-05 14:19:16 -08:00
Janjaap Bos
b8059d5c87
typo
2015-12-23 22:54:36 +01:00
Adam Ierymenko
66894eb473
Merge branch 'dev' into edge
2015-12-21 16:56:13 -08:00
Adam Ierymenko
61becbb7e5
.
2015-12-21 16:56:11 -08:00
Adam Ierymenko
42e453872c
VERSION 1.1.2: bug fixes and NAT-PMP support
...
ZeroTier One version 1.1.2 is mostly a bug fix release, but also includes support
for NAT-PMP as a method of mapping external ports from behind supported routers.
Bugs fixed include:
- Refactored path selection code to eliminate a change that might have introduced
a reliability regression from earlier versions.
- Reworked UPnP code for improved reliability and also added NAT-PMP support.
- Fixed a crash on network preferred relays. (Not exploitable or security critical
since only network controllers can send that config option and there was no
buffer overflow or other exploitable issue.)
- Fix GUI problem on OSX where window could be larger than screen on some Macbooks.
- Fix a potential rate limit problem on PUSH_DIRECT_PATHS that could negatively
impact same-network connectivity.
- Update zerotier-cli to show preferred vs. active paths and hide inactive ones.
- Fix an issue on shutdown with thread delete order and thread synchronization.
2015-12-21 16:48:33 -08:00
Adam Ierymenko
2f42a7c010
Windows 1.1.2 build.
2015-12-21 16:36:56 -08:00
Adam Ierymenko
436c1fac1d
Selectively move over changes from "edge" to "dev" excluding netcon.
2015-12-21 16:15:39 -08:00
Adam Ierymenko
16bc9533ed
Fix a problem that made valgrind complain on shutdown (not otherwise an issue).
2015-12-21 15:23:14 -08:00
Adam Ierymenko
63a51e2890
Fix a small potential uninitialized variable issue.
2015-12-21 14:55:11 -08:00
Adam Ierymenko
23eaafc4eb
Remove stray file that is instead found in netcon.
2015-12-21 14:01:48 -08:00
Adam Ierymenko
536b7000bc
Merge branch 'edge' of http://10.6.6.2/zerotier/ZeroTierOne into edge
2015-12-21 13:15:09 -08:00
Adam Ierymenko
24cc0904fa
1.1.2 Windows build fixes, tweaks, etc.
2015-12-21 13:14:48 -08:00
Janjaap Bos
5a65463b92
typo
2015-12-21 22:11:39 +01:00
Janjaap Bos
c8056452b8
fix / workaround for ubuntu
...
Otherwise, if started with -d as daemon, the netcon service dies after
intercept listen registers.
2015-12-21 21:20:22 +01:00
Janjaap Bos
64e273e9c0
updated netcon readme
2015-12-21 19:49:22 +01:00
Joseph Henry
6f62d6bb34
Removed straggler debug prints
2015-12-21 07:36:44 -08:00
Joseph Henry
d430457f1e
Updated readme, removed test network keys
2015-12-21 07:26:45 -08:00
Joseph Henry
4267cc138e
Readme changes, turned off debug
2015-12-21 07:17:37 -08:00
Joseph Henry
de2ba8d0f7
Fixed typo
2015-12-21 05:36:27 -08:00
Joseph Henry
c488fa8461
Tightening of RPC code
2015-12-21 05:03:26 -08:00
Joseph Henry
608e059b18
single updated test file
2015-12-18 15:19:34 -08:00
Joseph Henry
81203b20b8
Merge branch 'edge' of http://10.6.6.2/zerotier/zerotierone into edge
2015-12-18 15:09:18 -08:00
Joseph Henry
91bc32fe51
Re-added keys for testing
2015-12-18 15:09:08 -08:00
Adam Ierymenko
d3dacf5c2a
Tiny bit of dead code cleanup.
2015-12-18 14:51:24 -08:00
Adam Ierymenko
13036a1085
.
2015-12-18 14:30:47 -08:00
Adam Ierymenko
942ab6fd95
.
2015-12-18 14:29:23 -08:00
Adam Ierymenko
fd9b2e931f
Merge branch 'edge' of http://10.6.6.2/zerotier/ZeroTierOne into edge
2015-12-18 14:26:37 -08:00
Adam Ierymenko
6de67e828d
Fix accept4() semantics.
2015-12-18 14:26:31 -08:00
Joseph Henry
2d9f1f7857
Added install script for debugging with strace
2015-12-18 13:13:47 -08:00
Joseph Henry
fde8af9483
getsockopt() tweak
2015-12-18 11:37:11 -08:00
Joseph Henry
c22c0a20f6
Merge branch 'edge' of http://10.6.6.2/zerotier/zerotierone into edge
2015-12-18 10:31:24 -08:00
Joseph Henry
9063209124
getsockname() fix
2015-12-18 10:31:11 -08:00
Adam Ierymenko
61dc13a6e1
Cache query in progress to reduce redundant GeoIP2 queries.
2015-12-18 09:38:34 -08:00
Joseph Henry
e3eea6fcbd
RPC Reliability improvements and partial getsockname() fix
2015-12-16 18:05:47 -08:00
Adam Ierymenko
7d001458cb
Update World to drop an old legacy root.
2015-12-17 11:52:05 -08:00
Adam Ierymenko
823c9979c0
Erase more debug junk.
2015-12-17 11:45:55 -08:00
Adam Ierymenko
9ebcbc94e4
Remove some stray debug stuff.
2015-12-17 11:44:48 -08:00
Adam Ierymenko
aa39b0dc24
Show paths as active or preferred in listpeers.
2015-12-17 11:03:39 -08:00
Adam Ierymenko
2160164e8c
(1) Get rid of path sorting and just scan them, since sorting may have been a premature optimization that introduced a regression and path instability in a few edge cases, and (2) do not attempt to contact remote paths received via PUSH_DIRECT_PATH if we already have that path and it is already active (dumb, should have done this originally)
2015-12-17 10:53:07 -08:00
Adam Ierymenko
3137f43da9
Fix for getsockname() crash and other address size issues.
2015-12-16 10:30:02 -08:00
Adam Ierymenko
efc2a74df1
Some final README revs.
2015-12-16 10:07:04 -08:00
Joseph Henry
9638889614
Removed docker-test keys/config for netcon network
2015-12-16 08:33:39 -08:00
Joseph Henry
0df639f8f5
readme update
2015-12-15 16:20:31 -08:00
Joseph Henry
011ce35ede
Merge branch 'edge' of http://10.6.6.2/zerotier/zerotierone into edge
2015-12-15 15:57:02 -08:00
Joseph Henry
a9802eff02
readme update
2015-12-15 15:56:47 -08:00
Adam Ierymenko
f9837163d3
docs
2015-12-15 15:43:07 -08:00
Adam Ierymenko
6bc93d2050
Docs, and change ZT_NC_NWID to ZT_NC_NETWORK and use full path in local ZT home dir to enable multiple instances.
2015-12-15 15:35:21 -08:00
Adam Ierymenko
37a7e9e275
Merge branch 'edge' of http://10.6.6.2/zerotier/ZeroTierOne into edge
2015-12-15 15:00:05 -08:00
Adam Ierymenko
531e5f9923
.
2015-12-15 15:00:03 -08:00
Joseph Henry
617845a7da
readme and makefile updates
2015-12-15 14:59:17 -08:00
Joseph Henry
9dc59eff76
Cleaned up, tests updated, readme updated
2015-12-15 14:50:54 -08:00
Adam Ierymenko
a6c5596782
Patch controller to not send relays to 1.1.0 to avoid triggering 1.1.0 network preferred relays bug.
2015-12-15 10:53:15 -08:00
Adam Ierymenko
022d3857cc
Fix should use ECHO check.
2015-12-15 10:37:32 -08:00
Adam Ierymenko
82aa3f59d6
Fix bug in ECHO handling (OK was invalid!), and use ECHO on newer peers for path confirmation. Also get rid of path confirmation circuit breaker since this causes issues with some peers and should be done more intelligently anyway.
2015-12-15 10:30:40 -08:00
Adam Ierymenko
04d6b03733
Make auto backups slightly less frequent.
2015-12-15 09:22:10 -08:00
Adam Ierymenko
3b22ecc80c
Make hex device address in UPnP name the right length.
2015-12-14 17:35:45 -08:00
Adam Ierymenko
53fe576028
Merge branch 'edge' of http://10.6.6.2/zerotier/ZeroTierOne into edge
2015-12-14 17:04:36 -08:00
Adam Ierymenko
f6dc99f345
Old NYC is dead.
2015-12-14 17:04:27 -08:00
Adam Ierymenko
c0df1169ee
Remove unimplemented SET_EPHEMERAL_KEY for now.
2015-12-14 14:53:43 -08:00
Joseph Henry
b92884a0ad
Merge branch 'edge' of http://10.6.6.2/zerotier/zerotierone into edge
2015-12-14 14:45:40 -08:00
Joseph Henry
a421e31dd5
send_cmd() retrun value bugfix + minor debug changes
2015-12-14 14:45:25 -08:00
Adam Ierymenko
7b1c0c4013
Cache null results from Maxmind.
2015-12-14 14:40:00 -08:00
Joseph Henry
f558b088e6
Library functions are now static, RPC return value tuning, and cleanup
2015-12-14 09:06:58 -08:00
Joseph Henry
99afc74021
FDs transferred over listen socket + other fixes
2015-12-12 01:28:59 -08:00
Joseph Henry
761bb4fdd0
Stability fix
2015-12-11 12:19:54 -08:00
Joseph Henry
663a336b83
RPC cleanup + Temporary timing fix
2015-12-10 09:24:56 -08:00
Adam Ierymenko
e506fda3e4
Only set SO_NO_CHECK on IPv4 UDP sockets for now due to broken V6 stacks that drop zero checksum UDP packets.
2015-12-09 15:02:42 -08:00
Joseph Henry
42da36ba81
Fixed addrlen assignment in getsockname()
2015-12-09 12:22:08 -08:00
Joseph Henry
a730c86907
getsockname() implemented
2015-12-09 12:20:38 -08:00
Adam Ierymenko
b8cba90d85
.
2015-12-09 09:01:09 -08:00
Adam Ierymenko
9090edebb0
.
2015-12-08 18:17:03 -08:00
Adam Ierymenko
49d76c6311
Stub out getsockname()
2015-12-08 18:07:46 -08:00
Adam Ierymenko
5717dfe3b9
.
2015-12-08 17:45:51 -08:00
Adam Ierymenko
c576cd68cb
.
2015-12-08 17:44:13 -08:00
Adam Ierymenko
f2078bf986
(WIP) more netcon work
2015-12-08 17:35:37 -08:00
Adam Ierymenko
c2c37f3a63
Merge with fixes of netcon to edge.
2015-12-08 15:15:44 -08:00
Joseph Henry
b1eb16d5fb
Updated README, tests, and Intercept
2015-12-08 07:47:20 -08:00
Joseph Henry
f2db82940b
Nginx patch. Verified to work in fc23 and ub14
2015-12-08 05:09:12 -08:00
Joseph Henry
a2837ccaa7
Fixed typo
2015-12-07 08:36:13 -08:00
Joseph Henry
284b37ccc0
Updated compatibility section
2015-12-07 08:35:26 -08:00
Joseph Henry
48d9708abe
Combined make-linux.mk and make-intercept.mk's installer section
2015-12-07 06:54:13 -08:00
Joseph Henry
b141026fc7
Replaced darkhttpd with httpd since darkhttpd is not currently supported and does not work
2015-12-07 06:41:20 -08:00
Joseph Henry
c9bd0b3bf1
More concise unit test section
2015-12-07 06:30:54 -08:00
Joseph Henry
21b158cc48
Added unit test info to README.md
2015-12-07 06:21:40 -08:00
Joseph Henry
dab13f59e5
Test updates
2015-12-07 05:37:14 -08:00
root
036bbfaff9
Modified test scripts to match new naming conventions
2015-12-07 03:21:46 -08:00
Joseph Henry
afafde2571
Modified Nginx test scripts
2015-12-06 22:37:23 -08:00
Joseph Henry
1dec034f77
Added application-specific test arguments to test script
2015-12-06 17:55:48 -08:00
Adam Ierymenko
0df33485ca
Merge remote-tracking branch 'origin/netcon' into edge
2015-12-04 15:41:56 -08:00
Joseph Henry
7ea53dd21b
(WIP) Additional test script changes
2015-12-04 15:39:35 -08:00
Adam Ierymenko
3869d6257b
Always Salsa20 encrypt the result of the system CSPRNG as a mitigation against various low-entropy bugs such as the recent Raspberry Pi one.
2015-12-04 14:50:24 -08:00
Adam Ierymenko
4e12899a8e
docs
2015-12-04 14:17:33 -08:00
Adam Ierymenko
cebced259e
docs
2015-12-04 13:48:53 -08:00
Adam Ierymenko
425d311ce8
Merge of netcon with edge and unification of make processes.
2015-12-04 13:19:31 -08:00
Adam Ierymenko
ac8918992b
Merge dev.
2015-12-04 12:45:21 -08:00
Adam Ierymenko
cbf8d9c45b
.
2015-12-04 12:43:48 -08:00
Adam Ierymenko
905253b4f5
First draft (unfinished) of new README for netcon (original in README.orig.md).
2015-12-04 12:43:21 -08:00
Joseph Henry
d9b12be697
ZT_NC_NWID patch + (WIP) test script modifications
2015-12-04 12:39:54 -08:00
Joseph Henry
2196d982c3
(fixed) nwid detection in test script
2015-12-03 18:50:20 -08:00
Joseph Henry
5c5943a00c
(fixed) test script liblwip.so placement, also streamlined test logic
2015-12-03 07:11:33 -08:00
Adam Ierymenko
a4cfe4cd16
Fix Linux init script to properly specify runlevels.
2015-12-01 10:19:10 -08:00
Adam Ierymenko
ceaef19fb7
Fix for GitHub issue #260 -- fix for (non-exploitable) crash in network preferred relay code
2015-11-30 17:20:12 -08:00
Adam Ierymenko
944fdfb65e
Low-impact sanity check against GitHub issue #247 -- will likely prevent other weird recursions too.
2015-11-30 16:44:32 -08:00
Adam Ierymenko
be44b15eac
Fix for GitHub issue #252
2015-11-30 16:15:23 -08:00
Adam Ierymenko
d73edfea56
GitHub issue #257
2015-11-30 16:12:03 -08:00
Adam Ierymenko
c21882da9c
Put selftest back and turn off tracing in PortMapper.
2015-11-30 16:07:02 -08:00
Adam Ierymenko
f260250580
Simplify IP assignment logic in OSXEthernetTap, also fix for GitHub issue #249
2015-11-30 15:39:34 -08:00
Adam Ierymenko
40a4ba6e39
indentation
2015-11-30 15:15:43 -08:00
Adam Ierymenko
d862d2868c
... and here.
2015-11-30 14:57:28 -08:00
Adam Ierymenko
1e213b4d4c
Need to close on premature abort too or resources are leaked.
2015-11-30 14:56:36 -08:00
Adam Ierymenko
3d66492828
Also add a timeout for the actual NAT-PMP port mapping step.
2015-11-30 14:17:58 -08:00
Adam Ierymenko
838fdf4d11
ifdef naming fix.
2015-11-30 13:32:30 -08:00
Adam Ierymenko
685c5e9ad1
Fix for uPnP
2015-11-30 13:25:34 -08:00
Adam Ierymenko
66a29a00ee
Merge miniupnpc/libnatpmp build into main build by just adding flags, defs, and objs.
2015-11-30 13:17:43 -08:00
Adam Ierymenko
6768521330
Ton of uPnP work and adding NAT-PMP support, still testing...
2015-11-30 13:10:22 -08:00
Adam Ierymenko
6c0de526e8
Merge pull request #261 from janjaapbos/synology
...
Fix for cross compiling
2015-11-30 11:07:20 -08:00
Adam Ierymenko
4c812e3796
Merge pull request #259 from janjaapbos/jb-dev
...
Increase maximum number of paths per IP scope to 4
2015-11-30 10:53:22 -08:00
Janjaap Bos
e6808c69f8
Increase maximum number of paths per IP scope to 4
...
Otherwise, local discovered routes are ignored.
Don't know what the best value would be. Taking 4 for now.
2015-11-30 19:48:38 +01:00
Adam Ierymenko
75637f68b3
Merge branch 'dev' of github.com:zerotier/ZeroTierOne into dev
2015-11-24 14:11:31 -08:00
Adam Ierymenko
56cb2f43fa
Merge pull request #254 from bonki/fix_iproute2_ip_handling
...
Fix for GitHub issue #253 .
2015-11-24 14:11:14 -08:00
Adrian Frühwirth
038476c412
Fix for GitHub issue #253 .
...
Make 'ip' detection more robust (some distros don't ship the binary in /sbin or /usr/sbin).
Add error handling for cases where an ip add/remove fails.
2015-11-24 22:56:02 +01:00
Joseph Henry
201109a7a0
(fixed) make-linux.mk conflicts, updated clean logic
2015-11-23 16:02:39 -08:00
Adam Ierymenko
7e28161638
Merge dev
2015-11-30 15:17:31 -08:00
Adam Ierymenko
ef4472e185
Intercept now checks ZT_NC_NWID environment variable for 16-digit network ID and does not initialize if not present.
2015-11-23 13:59:38 -08:00
Adam Ierymenko
4acb3d81f3
Rename Common to common.inc.c to indicate that this is an included C file not a primary build C file.
2015-11-23 13:25:46 -08:00
Adam Ierymenko
bee44ae731
Merge Sendfd into Common.c
2015-11-23 13:24:28 -08:00
Adam Ierymenko
95106e2e30
Mare make-self-contained code cleanup.
2015-11-23 13:18:46 -08:00
Adam Ierymenko
2a6ea38718
More code cleanup, just moving some stuff into NetconEthernetTap that is not used elsewhere.
2015-11-23 13:02:50 -08:00
Adam Ierymenko
d8d4cfbf01
Eliminate a few warnings and some small code reorg.
2015-11-23 12:43:42 -08:00
Adam Ierymenko
34404eb300
Ignore more DLL patterns.
2015-11-23 12:34:46 -08:00
Adam Ierymenko
7a84805824
Uncommit binary... :P
2015-11-23 12:34:23 -08:00
Adam Ierymenko
1d4563ac31
A few very tiny bits of dead code removal, etc.
2015-11-23 12:32:20 -08:00
Adam Ierymenko
a18336fa18
MERGE current "dev" into "netcon" -- should not affect netcon itself but will retest -- brings ZeroTier core up to 1.1.0
2015-11-23 10:46:52 -08:00
Adam Ierymenko
1e4a40e772
Reformat table.
2015-11-23 10:11:46 -08:00
Joseph Henry
6e5feaba3a
Updated test files
2015-11-23 07:08:07 -08:00
Joseph Henry
71b38a48ac
Replaced README
2015-11-23 06:22:09 -08:00
Joseph Henry
6a3f230555
Unit test info added to README
2015-11-23 06:20:01 -08:00
Joseph Henry
a952ff2c61
Removed odd file
2015-11-23 06:11:19 -08:00
Joseph Henry
05e51f40b4
README formatting update. Removed odd files
2015-11-23 06:07:48 -08:00
Joseph Henry
b83aefcf8f
Updated README, fixed node.js test bug
2015-11-23 05:59:05 -08:00
Joseph Henry
8b9b593256
Removed old READMEs and OS files
2015-11-23 05:21:20 -08:00
Joseph Henry
275a76ff5c
Test update
2015-11-23 05:15:19 -08:00
Joseph Henry
3d163f7044
Patch for Node.js -- accept() bug
2015-11-23 01:14:17 -08:00
Grant Limberg
764dd1c3d9
ARP packets do need the source IP address in them, as well as the MAC address.
...
Packets wouldn't even show up in WireShark without the source IP in it.
2015-11-21 19:14:59 -08:00
Grant Limberg
ac09c3569a
ARP packet lengths are 28 bytes. This condition required the packet to be 29 or more bytes.
2015-11-21 19:14:06 -08:00
Adam Ierymenko
ce5b7f0305
The World as of 2015-11-20
2015-11-20 12:49:23 -08:00
Adam Ierymenko
1fde17bacb
Update World to reflect Alice and Bob in their final glory. Will hot-push this soon.
2015-11-20 11:46:10 -08:00
Joseph Henry
d472c59b8d
Additional test files
2015-11-20 02:41:27 -08:00
Joseph Henry
126fc46dc4
Updated makefile, removed old results directory
2015-11-20 01:22:15 -08:00
Joseph Henry
d2e624f301
Updated makefile, removed old results directory
2015-11-20 01:19:16 -08:00
Joseph Henry
7173b0124b
Removed old test directory
2015-11-20 01:13:04 -08:00
Joseph Henry
1f27022fa7
Test/Code Refactor in preparation for merge
2015-11-20 01:08:38 -08:00
Joseph Henry
9a25a627bb
WIP: Unit tests -- more generalization
2015-11-19 17:34:56 -08:00
Adam Ierymenko
375aae44e4
.
2015-11-19 16:36:15 -08:00
Joseph Henry
31bc5e1559
WIP: Unit tests
2015-11-19 16:21:59 -08:00
Joseph Henry
b1100b3d13
WIP: Automated tests
2015-11-19 16:14:27 -08:00
Grant Limberg
399b2e9e26
forgot to submit this. Add DeferredPackets.cpp to the android makefile
2015-11-17 19:16:10 -08:00
Adam Ierymenko
6f16f44438
VERSION 1.1.0: Win/Mac UI improvements, improved NAT-t, CIRCUIT_TEST, and more!
...
ZeroTier 1.1.0 introduces a number of fixes and improvements in several areas.
We incremented the secondary version to indicate the significance of this release.
Version numbering has been a bit ad-hoc in the past. In future versions we will
adopt the following scheme: odd-numbered revision numbers like 1.1.1 will indicate
development versions, while even numbered ones like 1.1.2 will indicate tagged
releases. The public git repo branching has also been revised: master will always
be the latest tagged release, dev will be usually-working development, and edge
will host maybe-broken "bleeding edge" development. Pull requests on GitHub should
generally be made against dev, not master or edge. Other branches that may appear
from time to time may be feature or experimental branches. Only master is confirmed
good, with dev usually being okay but not guaranteed to be such. (To the extent
that any software is ever guaranteed to be anything.)
Change summary:
User-facing changes and improvements:
- Windows now has a new .NET-based native UI, which replaces the old WebControl
wrapper around the React UI. This just didn't work well on older Windows systems,
and we did not want to bundle 40+ megabytes of web browser with our app just for
its very simple UI.
- The web UI (still used for Mac and usable in Linux as well) is updated with
improved look and simplifications.
- Both UIs no longer have the "Peers" tab, since several users reported that non-
technical users found this confusing and even alarming (does this mean people
can access my system?). This information is visibile with "listpeers" from the
command line (zerotier-cli).
New features:
- Virtual networks that use our RFC4193-based IPv6 numbering scheme now emulate
IPv6 NDP for queries that target these addresses within the same network. This
allows for faster multicast-free connection init and improved security since
the address is now hard-wired to the device ID (which is a crypto token). This
does not affect IPv6 NDP for other IPv6 addresses or link-local, which will
continue to work normally. This also opens the potential for a reduced footprint
multicast-free build for embedded applications.
- This version includes beta support for a feature called CIRCUIT_TEST. Network
controllers for networks you have joined can now send a special message called
CIRCUIT_TEST which allows for ZeroTier-layer link testing and remote diagnosis
of link issues. Any operator of a network controller can do this; more
documentation will be forthcoming. The only information that may be gathered
in this way is IP addressing info and very basic system info (OS, 32/64 bit,
ZeroTier version). No personal information, hard drive data, location, or other
private info is available. This can only be ordered by a controller of a network
you have joined and is secured using cryptographic signatures.
- This version includes an alpha version of clustering a.k.a. multi-homing! This
powerful feature allows for a single ZeroTier device to be run from multiple
endpoints, with connecting peers being handed off to endpoints that are closer
via GeoIP lookup and/or are more lightly loaded. Currently this is only suitable
for use in our soon-to-be-upgraded root server infrastructure (details will be
blogged soon), but in the future it will be capable of hosting multi-homed
devices on user networks. This will allow things like (for example) a geo-
clustered Cassandra server that appears behind a single IP on a virtual LAN.
This feature must be enabled with the ZT_ENABLE_CLUSTER=1 build option.
Bug fixes and other improvements (including performance!):
- A faster version of the Poly1305 cryptographic MAC function was substituted
for sometimes greatly improved performance.
- C++ STL std::map was replaced throughout the entire core with a hand-rolled
Hashtable implementation for improved performance and in some cases a reduced
memory footprint. Some maps are still used in peripheral code that is not
performance critical or where ordered keys are needed.
- The zerotier-cli and zerotier-idtool symbolic links are now created in
/usr/local/bin on OSX to comply with El Capitan file security restrictions.
- The OSX tap device driver has been updated. This update may fix issues that
some users have reported with bridging on OSX. This new tap device driver
drops 32-bit support, but if you have a 32-bit system you can manually install
the old driver from ext/bin/tap-mac.
- Mac users could experience a problem with the UI if they installed ZeroTier,
then uninstalled it, then installed again. This is now fixed.
- UPnP port mappings should work better on some routers, and a different local
port is now used for UPnP mapped traffic vs. NAT-t'd traffic to get around
a bug in several popular mid-tier routers where using UPnP mapping alongside
traditional NAT traversal made a port unreachable.
- Debian package now builds with the right arch label on armv7l systems (Pi 2)
- The old "root topology" has been replaced with a similar but better thought
out concept called a World. The World defines the root servers and possibly
in the future other things, and can be updated in-band from trusted peers
allowing for software-upgrade-free network upgrades to keep up with growing
demand. See node/World.hpp for details.
- A fix was made to "self-awareness," which keeps track of your external IP
info and adapts to changes, to eliminate a problem that could cause "link
thrashing" behind some symmetric NATs.
- Escalating UDP TTLs was re-introduced to better transit some port-restricted
cone NATs such as Linux IP MASQ (used for Docker).
- An otherwise harmless crash-on-exit bug in the network controller was fixed.
- All new direct links are now confirmed in both directions. This adds a very
small amount of initial HELLO/OK traffic but fixes some edge cases where an
incomplete or unidirectional path might be used.
- [SECURITY] Better rate limiting was put in place for VERB_PUSH_DIRECT_PATHS
to prevent potential abuse for amplification attacks.
- [SECURITY] Build flags were tweaked on OSX to ensure that all code including
dependency libraries are built with full stack canary protection and ASLR
support.
Visit https://www.zerotier.com/blog or follow @ZeroTier on Twitter for updates
and announcements!
2015-11-17 12:18:45 -08:00
Adam Ierymenko
1c0c3e62dc
Just add a launch prerequisite for .NET 4.5 -- it's usually there, and if not it can be easily installed. This is mostly an issue on old Windows Server systems, and in that case the admin will likely want to decide how to proceed.
2015-11-17 11:13:44 -08:00
Adam Ierymenko
9169b6c999
Fix crash on exit in Windows (does not affect other OSes) and revert debugging tweak in Windows version that prevented service from starting after real install.
2015-11-17 09:56:19 -08:00
Joseph Henry
a660ec490e
Started work on automated unit test scripts
2015-11-17 02:28:23 -08:00
Joseph Henry
f5c2600ca4
Added symbol checks in intercept. This seems wise after all
2015-11-16 23:57:19 -08:00
Adam Ierymenko
48745eca57
Fix ARM dpkg build.
2015-11-16 19:54:58 -08:00
Joseph Henry
b0f6dc43b4
Revised fd RX logic
2015-11-16 19:53:59 -08:00
Adam Ierymenko
456bfea58d
Real World -- edge now talks to real net.
2015-11-16 19:27:36 -08:00
Adam Ierymenko
0f5fb48a0b
Turns out it wasn't hard to add miniupnpc to the VS2012 project and just have it build with the rest of the code.
2015-11-16 19:04:04 -08:00
Adam Ierymenko
dc8edea0c6
Linux make rules to make libminiupnpc from source.
2015-11-16 18:33:52 -08:00
Adam Ierymenko
cf6164e847
Build libminiupnpc from source now, and update version.
2015-11-16 18:28:55 -08:00
Adam Ierymenko
a13a21377c
Delete pre-build miniupnpc for Linux and Mac -- will add Make rules to build from source and include source in ext/
2015-11-16 18:18:08 -08:00
Adam Ierymenko
37acd375d6
Fix 64-bit int warning.
2015-11-16 18:10:40 -08:00
Joseph Henry
f2289544b7
Check for fork/clone and re-initialize in close() -- for nginx
2015-11-16 17:44:11 -08:00
Adam Ierymenko
7a53ecac86
UI stuff.
2015-11-16 17:18:44 -08:00
Adam Ierymenko
906e49ff72
Add make option ZT_ENABLE_CLUSTER and disable it in default Linux build.
2015-11-16 16:22:41 -08:00
Adam Ierymenko
e4d1aba3f8
Use new OSX tap version, and update OSX install scripts.
2015-11-16 16:19:24 -08:00
Adam Ierymenko
38fe77ecf2
WebUIWrapper is dead.
2015-11-16 15:44:07 -08:00
Adam Ierymenko
8fde33d87c
.
2015-11-16 14:45:17 -08:00
Adam Ierymenko
220552af62
GitHub issue #241 -- and also some appearance updates. Eventually this might get replaced by a native Mac app.
2015-11-16 14:30:25 -08:00
Adam Ierymenko
637d50a9de
Write binary of world too.
2015-11-16 13:11:16 -08:00
Adam Ierymenko
f5b465c0e1
Merge branch 'edge' of http://10.6.6.2/zerotier/ZeroTierOne into edge
2015-11-16 11:13:02 -08:00
Adam Ierymenko
6ac70ba808
.
2015-11-16 11:01:19 -08:00
Adam Ierymenko
08cd603623
Code to generate real World for edge.
2015-11-16 10:58:40 -08:00
Adam Ierymenko
ddf0cb0278
Docs and tweak some caching values.
2015-11-16 09:54:08 -08:00
Grant Limberg
75f8ee1b9c
get the compiler to stop complaining about two string literals (one a macro) next to each other without an intervening space
2015-11-14 18:19:33 -08:00
Grant Limberg
0508a41afd
added ttl parameter to WirePacketSendFunction
2015-11-14 17:40:17 -08:00
Adam Ierymenko
0d9f33dc4f
Fix: (1) Windows stack overflow due to buffer too large in peer deserialize, (2) clean up some other stuff seen during debugging and reduce the sizes of some buffers due to Windows small stack size, (3) remove a redundant try/catch.
2015-11-13 12:14:28 -08:00
Adam Ierymenko
90f9415107
Update installer to drag along a net-install binary for .NET 4.5 that it runs if .NET 4.5 is not present... because yes we have to install Microsoft's own flagship runtime under some conditions. (Rare, but present.)
2015-11-13 09:11:12 -08:00
Adam Ierymenko
2ec638a23d
New Windows UI tweaks: get rid of networks tab (only one tab!), make networks full width and make window narrower and a bit taller, colors, fixed-width fonts in several places, make network IDs selectable.
2015-11-12 17:38:30 -08:00
Joseph Henry
a6cffefa6d
Updated compatibility
2015-11-12 17:15:44 -08:00
Joseph Henry
a818c622d9
Updated throughput_httpd docker test files
2015-11-12 16:57:45 -08:00
Adam Ierymenko
ccae473783
Eliminate Windows warnings.
2015-11-12 16:51:33 -08:00
Adam Ierymenko
54f68280bd
Minor Windows build fixes. Builds on VS2012 again.
2015-11-12 16:48:42 -08:00
Joseph Henry
7d8084262a
Fixed rpc_st command alignment bug for RPC_SOCKET
2015-11-12 16:48:08 -08:00
Adam Ierymenko
bacb53fe8f
Remove old Windows NDIS5 tap driver -- I think this is dead.
2015-11-12 16:40:50 -08:00
Adam Ierymenko
33c132968e
GitHub issue #219 -- make Linux makefile cross-compiler aware.
2015-11-12 15:37:32 -08:00
Adam Ierymenko
73e314cc1a
Shelve pcap-with-bridge OSX experiment -- apparently pcap_inject does not work with bridge devices. Still have to use a kext.
2015-11-12 15:28:55 -08:00
Joseph Henry
6af54c5943
Minor debug updates
2015-11-12 14:49:20 -08:00
Joseph Henry
fa7220ec0e
Removed old Common.h
2015-11-12 14:35:58 -08:00
Joseph Henry
d1a22a0878
Streamlined debug output code
2015-11-12 14:32:27 -08:00
Adam Ierymenko
8ac411a9e4
Stashing utun work for OSX -- abandoning for now since utun excludes mDNS among other issues.
2015-11-12 10:47:50 -08:00
Joseph Henry
e5fad005a9
Updated RPC handling
2015-11-12 08:21:05 -08:00
Adam Ierymenko
0940d673db
Always advertise to the cluster when we have a peer even if we have also initiated handoff. This might be the cause of the warmup problem -- will test later. At the very least it should not hurt anything due to pick-latest logic and the fact that cluster members with only suboptimal paths do not respond to WANT_PEER.
2015-11-11 14:36:22 -08:00
Adam Ierymenko
b94335f115
Increase WHOIS retry delay slightly to allow for global cluster latency (e.g. 300+ms from New York to Johhannesburg)
2015-11-11 11:07:08 -08:00
Adam Ierymenko
a13ba7102a
GitHub issue #242 -- crappy uPnP protocol demands infinite lease time or else
2015-11-10 17:45:05 -08:00
Adam Ierymenko
451b8aa7b2
Query both root and network controller for multicast last resort GATHER.
2015-11-10 17:37:38 -08:00
Adam Ierymenko
53731acf51
Bracket by time in result cruncher script.
2015-11-10 17:15:06 -08:00
Adam Ierymenko
3b9411044f
Patch tap-mac to latest tuntaposx upstream changes, and add updated build for 10.8 or later (keep old one for 10.7).
2015-11-10 16:00:21 -08:00
Adam Ierymenko
141e2db38c
More results.
2015-11-10 15:47:18 -08:00
Adam Ierymenko
0cf4ddda4a
Some more test results, and fix OSX installer to put symlinks in /usr/local as per El Capitan requirements.
2015-11-10 15:11:15 -08:00
Adam Ierymenko
0e4a2c378f
Fix a sporadic warning in cluster-geo, and fix test to not overload the test-watcher.
2015-11-10 13:09:58 -08:00
Adam Ierymenko
2854f14966
Some cluster parameter tweaks, and change the test code in tests/http to dramatically reduce the amount of data transfer to/from the test master. Also add results of first successful 50k test.
2015-11-10 11:59:03 -08:00
Adam Ierymenko
4328c6c3bc
Fix delete oldest logic.
2015-11-10 09:46:14 -08:00
Adam Ierymenko
b171c9a0db
Replace slow std::list<> with an O(log(N)) data structure for the cluster relaying send queue.
2015-11-10 09:05:01 -08:00
Joseph Henry
82a60b1e28
Fixed throughput build script
2015-11-09 20:16:27 -08:00
Joseph Henry
19f09e46fa
Moved/Renamed Docker test dirs
2015-11-09 19:37:19 -08:00
root
134ad8ac21
Changed httpd version in throughput-test Dockerfile
2015-11-09 19:13:53 -08:00
Adam Ierymenko
32ec378e3b
Announce that we have peers on the cluster when we first see them to improve startup times, and add a result crunching script to tests/http.
2015-11-09 18:01:23 -08:00
Adam Ierymenko
2cc50bdb10
Try bringing back TTL escalation -- may help with Docker (IP-MASQ) type NAT
2015-11-09 15:44:13 -08:00
Adam Ierymenko
94f4316a0e
Fix for possible high CPU usage on multicast queries.
2015-11-09 14:54:05 -08:00
Adam Ierymenko
35c4e28f31
Mark geo-redirected paths as suboptimal and do not report that we have a peer if all we have is one of these. Also a few other small fixes.
2015-11-09 14:25:28 -08:00
Adam Ierymenko
47424df417
Fix (1) a deadlock bug and (2) a bug that prevented distributed rendezvous messages from being sent.
2015-11-09 13:39:06 -08:00
Adam Ierymenko
73e2c6e511
How did that ever work?
2015-11-09 12:24:49 -08:00
Adam Ierymenko
12cd9df059
.
2015-11-09 11:30:17 -08:00
Adam Ierymenko
4ad2ff2f71
.
2015-11-09 11:08:52 -08:00
Adam Ierymenko
b57c855a8c
PROXY_SEND fix.
2015-11-09 10:25:20 -08:00
Adam Ierymenko
ed954c5ca2
.
2015-11-09 10:09:16 -08:00
Adam Ierymenko
21341ab15c
Ready to test.
2015-11-09 09:45:43 -08:00
Adam Ierymenko
f4d12603e0
Tweak how Switch passes off to Cluster on relay to fit new paradigm.
2015-11-09 09:19:03 -08:00
Adam Ierymenko
ff81415ffe
Build fixes...
2015-11-09 09:14:26 -08:00
Adam Ierymenko
5371195c80
Merge branch 'edge' of http://10.6.6.2/zerotier/ZeroTierOne into edge
2015-11-09 09:01:58 -08:00
Adam Ierymenko
473ce82040
Merge branch 'edge' of http://git.int.zerotier.com/zerotier/ZeroTierOne into edge
2015-11-09 09:01:41 -08:00
Adam Ierymenko
ab013d831c
.
2015-11-09 09:01:38 -08:00
Adam Ierymenko
57b71bfff0
Cluster simplification and refactor work in progress...
2015-11-08 13:57:02 -08:00
Adam Ierymenko
6bc8c9d8ef
Clustering cleanup, still a work in progress.
2015-11-06 16:12:41 -08:00
Adam Ierymenko
5f39d5b7ea
Further pare down Cluster messaging and rename some stuff.
2015-11-06 14:37:17 -08:00
Adam Ierymenko
9490b1f136
Try prioritizing cluster-send over direct send in cluster mode -- may improve cluster relaying reliability.
2015-11-06 13:38:56 -08:00
Adam Ierymenko
badec136fc
New agent master IP.
2015-11-06 11:55:06 -08:00
Adam Ierymenko
8ea5f424fd
Small amount of cleanup.
2015-11-06 11:15:06 -08:00
Grant Limberg
3cafa60284
fix up some borders & colors
2015-11-05 19:44:19 -08:00
Grant Limberg
2415ae45c1
remove the peers page
2015-11-05 19:44:19 -08:00
Adam Ierymenko
aa169b54de
Add conntrack tweak to nf for testing.
2015-11-05 18:06:04 -08:00
Adam Ierymenko
83c6b7ab3d
Use bigger UDP buffer on bigger x64 machines. Keep old value elsewhere since these are likely to be smaller boxes.
2015-11-05 17:41:07 -08:00
Adam Ierymenko
ba5008c370
Now make cluster announcements slightly more frequent.
2015-11-05 17:28:55 -08:00
Adam Ierymenko
3fa1b5a89d
Make cluster HAVE_PEER a little lighter by removing full identity. Technically this is not necessary and they will propagate over time in any case. Might restore it in some form in the future.
2015-11-05 17:22:22 -08:00
Adam Ierymenko
7603d8cee8
Merge branch 'edge' of http://git.int.zerotier.com/zerotier/ZeroTierOne into edge
2015-11-05 16:46:42 -08:00
Adam Ierymenko
869eff49bc
.
2015-11-05 16:46:33 -08:00
Adam Ierymenko
d9abc28fe3
.
2015-11-05 14:54:54 -08:00
Adam Ierymenko
3e22fee842
Integrate deferred background processing into main OneService implementation.
2015-11-05 12:41:14 -08:00
Adam Ierymenko
5ec5911e1b
Merge branch 'edge' of http://10.6.6.2/zerotier/ZeroTierOne into edge
2015-11-05 12:23:06 -08:00
Adam Ierymenko
8ef4edebbf
Deferred decode for HELLO to prevent HELLOcalypse under high load of new peers.
2015-11-05 12:22:58 -08:00
Grant Limberg
86c74d8a65
set manifest to require administrator privileges and read the authtoken and port from disk
2015-11-04 20:34:49 -08:00
Grant Limberg
49086e4556
just a little xaml cleanup
2015-11-04 20:31:41 -08:00
Grant Limberg
4c7bb06894
make the main window width a bit smaller
2015-11-04 20:19:14 -08:00
Grant Limberg
f3e527e130
update the peer list in place rather than replacing it
2015-11-04 20:17:58 -08:00
Grant Limberg
df74dd6e41
make the peers page prettier
2015-11-04 20:03:25 -08:00
Grant Limberg
5e9166cec7
setting width/height isn't necessary
2015-11-04 19:30:26 -08:00
Grant Limberg
d2c288b13f
Fix vertical scrolllbar on networks view
2015-11-04 19:12:12 -08:00
Grant Limberg
fc32dc11a6
make the networks view a bit prettier
2015-11-04 19:08:13 -08:00
Grant Limberg
2721804ebf
make the tabs a little prettier
2015-11-04 18:41:08 -08:00
Grant Limberg
7b86176d0e
Don't go kaboom when the ZeroTier service isn't running.
2015-11-04 18:28:07 -08:00
Adam Ierymenko
a95ff21aaf
test stuff
2015-11-04 15:09:19 -08:00
Joseph Henry
3e84e8b8c3
Performance tweaks to lwipopts.h (TX=12MB/s)
2015-11-04 14:45:26 -08:00
Adam Ierymenko
9ec32e7926
Agent settings for big test.
2015-11-04 13:28:43 -08:00
Grant Limberg
7756b5bf1c
Merge branch 'android-jni-dev' into edge
2015-11-03 19:15:00 -08:00
Grant Limberg
eadeac0a42
logging of events
2015-11-03 19:14:11 -08:00
Joseph Henry
4b07987210
Added throughput-test Docker files
2015-11-03 18:10:39 -08:00
Adam Ierymenko
172fc1052b
Merge windows-ui into edge.
2015-11-03 17:38:36 -08:00
Adam Ierymenko
523412edfb
Abort backup in progress if thread is told to shut down.
2015-11-03 16:03:00 -08:00
Adam Ierymenko
f7a407ffa0
Tweak timings and use lock in backup to make it a bit faster and still permit main thread to work.
2015-11-03 15:56:24 -08:00
Adam Ierymenko
7903f24a8f
Create periodic backup copies of controller.db in network controller from the main process itself to facilitate easier and safer backups of controller.db.
2015-11-03 15:52:10 -08:00
Adam Ierymenko
4b655ab22c
tests
2015-11-03 14:39:44 -08:00
Adam Ierymenko
d9d11042ca
.
2015-11-03 12:56:34 -08:00
Adam Ierymenko
0b245b031e
Allow ZT_TRACE without debug.
2015-11-03 11:20:12 -08:00
Adam Ierymenko
a42d714a87
.
2015-11-03 11:18:45 -08:00
Adam Ierymenko
c9e6e60c09
Handle ZeroTier-RFC4193 IPv6 address NDP queries inline by spoofing responses if the addressing scheme matches -- this allows multicast-free instant lookup of local IPv6 for better performance and reliability.
2015-11-03 10:46:41 -08:00
Joseph Henry
df391c8413
Added debug statements for transfer test
2015-11-03 10:30:18 -08:00
Joseph Henry
4c20fa4874
Added debug statements for transfer test
2015-11-03 10:26:10 -08:00
Grant Limberg
b7df177f33
updates for origin/edge
2015-11-02 19:18:55 -08:00
Grant Limberg
179b064b05
Merge branch 'edge' into android-jni-dev
2015-11-02 18:32:21 -08:00
Grant Limberg
a19e82fcbc
Merge branch 'edge' into windows-ui
2015-11-02 18:30:54 -08:00
Joseph Henry
ccbdb1a3a1
RPC command index fix
2015-11-02 16:09:28 -08:00
Adam Ierymenko
4e9d430476
Make root and relay selection somewhat more robust.
2015-11-02 16:03:28 -08:00
Joseph Henry
8d7b2cd486
Removed serv. conn. checks.
2015-11-02 15:52:12 -08:00
Adam Ierymenko
00dcb0f22c
.
2015-11-02 15:39:09 -08:00
Adam Ierymenko
7fbe2f7adf
Tweak some more timings for better reliability.
2015-11-02 15:38:53 -08:00
Joseph Henry
fd33e0812c
Added checks for bad service connection.
2015-11-02 15:31:57 -08:00
Adam Ierymenko
60ce886605
Tweak some timings for better reliability.
2015-11-02 15:15:20 -08:00
Adam Ierymenko
ab27a91b07
.
2015-11-02 13:53:27 -08:00
Joseph Henry
24ffb22fa6
Changed default debug level
2015-11-02 13:26:59 -08:00
Joseph Henry
da462bbd55
Removed curses dependency
2015-11-02 13:21:40 -08:00
Adam Ierymenko
fd3916a49e
More test stuff... make it more granular and less batch based.
2015-11-02 13:17:11 -08:00
Joseph Henry
bb912cff30
More appropriate phyOnUnixClose handling
2015-11-02 12:50:32 -08:00
Adam Ierymenko
e53ef9642e
test stuff.
2015-11-02 12:31:34 -08:00
Joseph Henry
6338a4933b
Fixed another closure bug. Updated debug levels
2015-11-02 12:30:18 -08:00
Adam Ierymenko
29249db5d2
Big test stuff.
2015-11-02 11:37:32 -08:00
Joseph Henry
4dbb84cea1
Fixed connection closure bug (ERR_ABRT from nc_recved)
2015-11-02 10:59:46 -08:00
Adam Ierymenko
f1b6427e63
Decided to make this 1.1.0 (semantic versioning increment is warranted), and add a legacy hack for older clients working with clusters.
2015-11-02 09:32:56 -08:00
Joseph Henry
db473beb48
Fixed accept return value / errno bug, also fdret_sock return bug
2015-10-30 17:00:30 -07:00
Adam Ierymenko
1b4cc4af5c
Fix evil bug, and instrument/assert on some other stuff, and a bit of cleanup.
2015-10-30 15:54:40 -07:00
Adam Ierymenko
7382c328da
Null pointer bug appears fixed... testing again at large scale.
2015-10-30 14:23:28 -07:00
Adam Ierymenko
641b0dec44
.
2015-10-30 14:12:20 -07:00
Adam Ierymenko
2fbb5d0bbf
.
2015-10-30 14:11:45 -07:00
Adam Ierymenko
d8dbbf7484
Add some debug code in TRACE mode to catch a bug.
2015-10-30 14:11:10 -07:00
Adam Ierymenko
377ccff600
getPeer() had a small potential to be unsafe.
2015-10-30 13:39:28 -07:00
Adam Ierymenko
f974517f64
Save zerotier output in containers.
2015-10-30 13:06:30 -07:00
Adam Ierymenko
f808138a94
docs and stuff
2015-10-30 13:05:34 -07:00
Adam Ierymenko
b845dd1b88
Set contact IP for real test.
2015-10-30 12:38:12 -07:00
Adam Ierymenko
b6725c4415
Optimize AntiRecursion.
2015-10-30 11:48:33 -07:00
Adam Ierymenko
5bfa29dded
Make antirec tail len slightly shorter, better performance and still plenty long enough.
2015-10-30 11:09:40 -07:00
Adam Ierymenko
80e62ad291
docs
2015-10-30 10:55:05 -07:00
Adam Ierymenko
e2fc20876d
docs
2015-10-29 18:23:41 -07:00
Joseph Henry
96eb0ce492
Added state dump, fixed numerous RPC related bugs
2015-10-29 17:57:59 -07:00
Adam Ierymenko
d6c0d176ee
Periodically re-announce peers that we have.
2015-10-29 10:10:09 -07:00
Adam Ierymenko
9f0f0197fe
More dead code removal.
2015-10-29 09:44:25 -07:00
Adam Ierymenko
a994573a43
Eliminate some more dead code. We may do path trust, but not like that.
2015-10-29 09:42:15 -07:00
Adam Ierymenko
883c84bdb9
Tweak some timings, and remove some dead code.
2015-10-29 09:39:36 -07:00
Joseph Henry
f6e0bdb2f2
Fixed PCB state issue when closing connection
2015-10-28 16:18:08 -07:00
Adam Ierymenko
e3d811b04b
docs
2015-10-28 15:55:40 -07:00
Adam Ierymenko
cabb8752cb
docs
2015-10-28 15:28:05 -07:00
Adam Ierymenko
1f5ef968cf
Test need a more recent version of NodeJS so update Dockerfile.
2015-10-28 15:08:00 -07:00
Joseph Henry
c8f27da294
Added support for MongoDB (server side)
2015-10-28 14:37:46 -07:00
Adam Ierymenko
68d6d3c4ff
Fix bug in peer count.
2015-10-28 14:29:08 -07:00
Adam Ierymenko
4c24e0cfb0
More tweaks to tests... just about ready to run at scale.
2015-10-28 14:24:54 -07:00
Adam Ierymenko
9653531242
.
2015-10-28 14:18:58 -07:00
Adam Ierymenko
07c1b4ddee
test stuff
2015-10-28 14:16:58 -07:00
Adam Ierymenko
1cae7327ae
Basic Dockerfile for building test agents.
2015-10-28 13:35:52 -07:00
Adam Ierymenko
c03550de35
HTTP test works!
2015-10-28 13:14:53 -07:00
Adam Ierymenko
c6a918d996
HTTP test code.
2015-10-28 12:50:48 -07:00
Adam Ierymenko
0034efafe4
On semi-undocumented test net, assign a RFC4193 IPv6 address too. Will be useful for our at-scale tests.
2015-10-28 11:08:15 -07:00
Adam Ierymenko
0fd15d9cf3
Fix inverted sense bug.
2015-10-28 10:38:37 -07:00
Adam Ierymenko
938d0a970b
TRACE build fixes.
2015-10-28 10:01:32 -07:00
Adam Ierymenko
fdc3e103cc
Cleanup and docs.
2015-10-28 09:38:33 -07:00
Adam Ierymenko
c1b0329969
Only check IP equality to detect external surface changes (should prevent some spurious resets under symmetric NATs), and simplify some logic.
2015-10-28 09:32:07 -07:00
Adam Ierymenko
da93712846
Clean up PUSH_DIRECT_PATH limits a bit more and make them a bit smarter.
2015-10-28 09:11:30 -07:00
Adam Ierymenko
cdc99bfee1
Add a circuit breaker for VERB_PUSH_DIRECT_PATHS.
2015-10-27 18:18:26 -07:00
Adam Ierymenko
88b100e5d0
More cleanup.
2015-10-27 17:59:17 -07:00
Joseph Henry
21889305e0
Updated README.md
2015-10-27 17:41:51 -07:00
Joseph Henry
18db95d0e9
Updated README.md
2015-10-27 17:38:56 -07:00
Adam Ierymenko
51fcc75354
Some cleanup, and use getPeerNoCache() exclusively in Cluster.
2015-10-27 17:36:47 -07:00
Joseph Henry
721d58b464
Added support for Redis
2015-10-27 17:12:32 -07:00
Adam Ierymenko
4221552c0b
Use getPeerNoCache() in Cluster to avoid keeping all peers cached everywhere.
2015-10-27 16:52:44 -07:00
Adam Ierymenko
cc1b275ad9
Replicate peer endpoints and forget paths if we have them -- this allows two clusters to talk to each other, whereas forgetting all paths does not.
2015-10-27 16:47:13 -07:00
Adam Ierymenko
cc6080fe38
(1) No need to confirm if we are a root (small optimization), (2) Refactor peer affinity tracking.
2015-10-27 15:57:26 -07:00
Adam Ierymenko
6399f6f094
This no longer has to be quite so fast.
2015-10-27 15:02:15 -07:00
Adam Ierymenko
218ef07d8e
Build fix in TRACE mode.
2015-10-27 15:01:11 -07:00
Adam Ierymenko
16bc3e0398
Factor out RemotePath subclass of Path -- no longer needed, just cruft.
2015-10-27 15:00:16 -07:00
Adam Ierymenko
40976c02a4
Forget paths to peers if we are handing them off.
2015-10-27 14:37:38 -07:00
Adam Ierymenko
f692cec763
Change how cluster relays packets -- just PROXY_UNITE and then send packet via normal ZeroTier front plane -- more efficient and eliminates fragmentation issues.
2015-10-27 14:04:12 -07:00
Adam Ierymenko
40e0a34a5c
Add set buffer sizes code to Phy<>
2015-10-27 13:04:08 -07:00
Adam Ierymenko
7295fcfa86
Merge Phy<> from netcon.
2015-10-27 12:50:23 -07:00
Adam Ierymenko
cfe166ef35
Tweak some size limits.
2015-10-27 12:29:01 -07:00
Adam Ierymenko
0ffbd05c0e
--wtf; prevent roots from TCP fallback
2015-10-27 12:21:57 -07:00
Adam Ierymenko
a1a0ee4edb
Fix infinite loop in Cluster, clean up some stuff elsewhere, and back out rate limiting in PUSH_DIRECT_PATHS for now (but we will do something else to mitigate amplification attacks)
2015-10-27 12:01:00 -07:00
Adam Ierymenko
54a99d8e32
Well that was broken.
2015-10-27 11:14:07 -07:00
Adam Ierymenko
62db18b6dd
Lessen this limit just a bit to make cluster settle faster.
2015-10-27 11:01:58 -07:00
Adam Ierymenko
f32e9d07dd
Don't include COM if not necessary (fix).
2015-10-27 10:58:01 -07:00
Adam Ierymenko
700c3166b7
Fix inverted sense bug.
2015-10-27 10:51:11 -07:00
Adam Ierymenko
17e7528e2c
More root cleanup.
2015-10-27 10:40:31 -07:00
Adam Ierymenko
8a7a0b6b88
Cleanup, including simplification of root server picking algorithm since we no longer need all that craziness.
2015-10-27 10:37:39 -07:00
Adam Ierymenko
9617208e40
Some cleanup, and use VERB_PUSH_DIRECT_PATHS to redirect newer peers.
2015-10-27 09:53:43 -07:00
Adam Ierymenko
fb3b7a3baa
Take -DZT_ENABLE_CLUSTER out of Mac defaults.
2015-10-27 09:41:12 -07:00
Adam Ierymenko
69857b4ba8
Refactor cluster redirects to move code to push peers out of the actual Cluster function that checks for redirect, and clean up Peer::received() to be a bit more logical.
2015-10-27 09:36:48 -07:00
Grant Limberg
0ffcfa307e
another build setting
2015-10-26 20:26:19 -07:00
Grant Limberg
16c812ec80
set the app icon for release
2015-10-26 20:24:08 -07:00
Grant Limberg
268fbdabce
disable sorting of peers
2015-10-26 20:06:53 -07:00
Grant Limberg
87496e9f4a
can now leave networks
2015-10-26 19:53:03 -07:00
Grant Limberg
300a951730
Figured out how to expand controls to fill parent. yay
2015-10-26 19:39:54 -07:00
Grant Limberg
095539de29
Initial peers page
2015-10-26 19:21:21 -07:00
Grant Limberg
c4c67e591b
add error handling for JSON serialization
2015-10-26 19:02:19 -07:00
Grant Limberg
502aa68bb7
change int to UInt64 for these properties
2015-10-26 19:01:59 -07:00
Grant Limberg
81cb4bc8d6
set up a timer to update the UI from a background thread
2015-10-26 18:31:10 -07:00
Adam Ierymenko
e713f7a54c
Can redirect in response to a few more verbs, just not these.
2015-10-26 18:20:40 -07:00
Grant Limberg
352b83252f
Merge branch 'adamierymenko-dev' into windows-ui
2015-10-26 18:10:27 -07:00
Grant Limberg
a0c3083af0
disallow paste of non hex characters
2015-10-26 18:08:44 -07:00
Adam Ierymenko
98d856daa2
Only send redirects to the sending InetAddress and only in response to a set of certain frame types to avoid potential race conditions.
2015-10-26 17:58:51 -07:00
Adam Ierymenko
8bfb02ba3c
Only send redirects for the same address class, and elminiate some TRACE noise.
2015-10-26 16:55:55 -07:00
Adam Ierymenko
0b82c9ebad
Fix infinite loop if there are no live roots (never happened before?!? wow!)
2015-10-26 16:09:56 -07:00
Adam Ierymenko
de761c5a82
Fix test world def.
2015-10-26 15:47:32 -07:00
Adam Ierymenko
6cf1da166f
Add the whole new World, though with test identities at this point.
2015-10-26 15:12:28 -07:00
Adam Ierymenko
6625d79296
Fix if cluster compiled in but not enabled.
2015-10-26 13:07:00 -07:00
Adam Ierymenko
debed1ac2d
Expose cluster status in /status JSON response.
2015-10-26 13:06:10 -07:00
Adam Ierymenko
5ff7733f84
More plumbing of cluster status.
2015-10-26 12:49:17 -07:00
Adam Ierymenko
865acfa40f
Cluster status plumbing.
2015-10-26 12:41:08 -07:00
Adam Ierymenko
3ce5ad9e2c
For forward compatibility, add minimal parse for some future physical address types.
2015-10-26 10:42:30 -07:00
Adam Ierymenko
d2b1dfe424
Fully specify new network in alice-test, this will (with different identities) eventually become the World.
2015-10-23 15:51:50 -07:00
Grant Limberg
55dcf4c65f
wire up the join network button
2015-10-23 15:50:49 -07:00
Grant Limberg
7e635d37ad
only accept hex characters for network id
2015-10-23 15:49:04 -07:00
Grant Limberg
b7b973624a
add methods for joining/leaving networks, and getting peers
2015-10-23 15:37:36 -07:00
Grant Limberg
62059a91aa
C#-ifying stuff
2015-10-23 15:36:42 -07:00
Adam Ierymenko
35676217e8
Refactor multicast group announcement to work directly or indirectly.
2015-10-23 14:50:07 -07:00
Joseph Henry
8cfee8a38c
Changed to more appropriate APP_POLL_FREQ
2015-10-23 14:31:06 -07:00
Joseph Henry
80a73cb14b
Minor cleanup
2015-10-23 14:23:04 -07:00
Adam Ierymenko
e9648a6cdf
Clarify logic in pinging, and prevent roots from pinging "down."
2015-10-23 14:05:12 -07:00
Adam Ierymenko
e6a63f5547
Fix bug in setWorld that might have caused a peer entry for myself (which would never be used)
2015-10-23 13:57:02 -07:00
Joseph Henry
b48ed824e6
Improved RPC connection closure logic
2015-10-23 13:37:41 -07:00
Adam Ierymenko
29b966894c
(1) Fix bug in geo-ip service that prevented cache lookup, (2) fix problem in SelfAwareness (will need to test ALL versions in the wild with this), and (3) add more TRACE instrumentation to Cluster.
2015-10-23 13:03:34 -07:00
Adam Ierymenko
f0160635a2
Add --harmony for older nodeJS.
2015-10-23 12:05:17 -07:00
Adam Ierymenko
964b30902a
Cluster fix: was accumulating remote endpoints endlessly.
2015-10-23 11:51:18 -07:00
Adam Ierymenko
2a3dd53952
.
2015-10-22 17:50:00 -07:00
Joseph Henry
236e474553
Unload lwipstack->_libref upon exit
2015-10-22 16:26:29 -07:00
Adam Ierymenko
dee6e7e3c1
.
2015-10-22 16:11:48 -07:00
Adam Ierymenko
7711eba297
More cluster wiring...
2015-10-22 16:02:01 -07:00
Joseph Henry
2f4628520b
Improved RPC connection cleanup logic
2015-10-22 13:20:50 -07:00
Joseph Henry
b203d25656
PhySocket NULL check added to handle_write. Fixed after-close handle_write segfault
2015-10-22 12:40:01 -07:00
Adam Ierymenko
1bc451ed10
GeoIP cluster service works.
2015-10-22 10:41:15 -07:00
Adam Ierymenko
e07bae2525
Run geoip cluster service sub-process.
2015-10-22 10:18:05 -07:00
Adam Ierymenko
5304b0d8d1
Rename index.js so process is distinguishable.
2015-10-22 09:09:15 -07:00
Grant Limberg
fe6960888a
add a scroll bar to the network info view
2015-10-21 20:40:43 -07:00
Grant Limberg
5b6ddaa2d7
Base windows UI is working.
...
* No joining/leaving networks yet, but they do display.
* Nothing is updated yet after first load of the app. Need to set up a background task to run updates.
2015-10-21 20:29:03 -07:00
Grant Limberg
6471c1f4e2
Merge branch 'adamierymenko-dev' into windows-ui
2015-10-21 17:35:38 -07:00
Joseph Henry
8e7e409fce
Updated netcon README
2015-10-21 16:56:39 -07:00
Joseph Henry
1458dc8347
set O_NONBLOCK default in accept()
2015-10-21 16:32:27 -07:00
Joseph Henry
303579cb42
Added Node.js support
2015-10-21 16:27:17 -07:00
Adam Ierymenko
a46514b397
Cluster-geo launcher.
2015-10-21 12:47:02 -07:00
Adam Ierymenko
25a84e30fc
Code for cluster-geo service.
2015-10-21 12:41:46 -07:00
Adam Ierymenko
978b056a01
Wire in redirectPeer(), now about ready to test clustering!
2015-10-20 17:36:10 -07:00
Adam Ierymenko
6a7b47e5e1
Forgot a return true.
2015-10-20 17:27:57 -07:00
Adam Ierymenko
d6dee7bb5c
Clustered handling of relaying.
2015-10-20 17:22:53 -07:00
Adam Ierymenko
35a12b94ea
Outfit Cluster with TRACE for debugging.
2015-10-20 16:48:49 -07:00
Adam Ierymenko
2258e36a59
Move replication of COMs to avoid race condition.
2015-10-20 16:34:21 -07:00
Adam Ierymenko
59e1444b27
Finish wiring up Cluster, fix some issues with other recent changes.
2015-10-20 16:31:41 -07:00
Adam Ierymenko
eb79d4a2f3
Wire up peer announcement in cluster.
2015-10-20 16:24:21 -07:00
Adam Ierymenko
57e29857cf
Cluster work -- integrating with the rest of the code.
2015-10-20 15:27:53 -07:00
Grant Limberg
21ae423feb
.
2015-10-19 21:19:23 -07:00
Grant Limberg
9ba5c91d4a
initial layout for network info
2015-10-19 21:17:18 -07:00
Grant Limberg
80d02d189a
set the main window icon
2015-10-19 20:30:21 -07:00
Grant Limberg
56267b2aed
setting icon and a few other settings
2015-10-19 20:29:06 -07:00
Grant Limberg
6040574d8d
set up project and base UI for a native windows UI for ZeroTier
2015-10-19 20:20:42 -07:00
Adam Ierymenko
5e6eae620b
Make _members dynamically allocated due to static array limit on ARM.
2015-10-19 16:18:57 -07:00
Adam Ierymenko
69dad37d8f
Restore default World for commit to upstream
2015-10-19 15:23:43 -07:00
Adam Ierymenko
cfdcce6d12
Fix very obscure IP scope classification logic bug.
2015-10-19 15:19:04 -07:00
Adam Ierymenko
0b2e5ed499
Fix some broken logic in Path::reliable()
2015-10-19 15:11:43 -07:00
Adam Ierymenko
9150778757
.
2015-10-19 15:04:26 -07:00
Adam Ierymenko
50f3ccd3c9
.
2015-10-19 15:03:58 -07:00
Adam Ierymenko
584072fa6a
Fix for V4/V6 stable addressing.
2015-10-19 14:04:36 -07:00
Adam Ierymenko
3adb183c5f
Fix bad COM attachment bug and eliminate an unnecessary redundant check.
2015-10-19 13:38:27 -07:00
Adam Ierymenko
95953b48f9
Do not allow VERB_RENDEZVOUS from non-upstream peers to block potential DOS vector.
2015-10-19 12:56:29 -07:00
Adam Ierymenko
aa6e3c79a0
Some test stuff that will not be pushed elsewhere.
2015-10-19 10:49:31 -07:00
Adam Ierymenko
0c43d34ce3
World test stuff... some of this will be yanked before release.
2015-10-19 10:00:35 -07:00
Joseph Henry
8b03965912
Added status debugs
2015-10-16 19:30:01 -04:00
Janjaap Bos
82e0abc4be
Fix for cross compiling
2015-10-17 00:15:10 +02:00
Joseph Henry
0405ba1ccf
Misc changes
2015-10-16 18:02:07 -04:00
Adam Ierymenko
738fa5a5e5
.
2015-10-16 12:10:57 -07:00
Joseph Henry
b96c08f35c
Fixed nginx listen() bug
2015-10-16 14:43:38 -04:00
Adam Ierymenko
cc4d0199e7
Fix vProto init.
2015-10-16 10:58:59 -07:00
Adam Ierymenko
781f06ef82
Accept OK for confirm of HELLO or ECHO.
2015-10-16 10:48:38 -07:00
Adam Ierymenko
f9f60f89d9
Peer save/restore fix.
2015-10-16 10:45:58 -07:00
Adam Ierymenko
5ce3aac929
Add rate limit on receive of DIRECT_PATH_PUSH to prevent DOS exploitation.
2015-10-16 10:28:09 -07:00
Adam Ierymenko
2229e91b57
IPv6 support fixes.
2015-10-16 10:10:12 -07:00
Adam Ierymenko
2debde3451
GitHub issue #235 , and I also see no reason not to communicate with people from other Worlds.
2015-10-15 07:22:17 -07:00
Joseph Henry
3e8e025704
Minor cleanup items
2015-10-14 19:55:21 -04:00
Adam Ierymenko
a775ee7d31
.
2015-10-14 16:21:39 -07:00
Adam Ierymenko
9ece8c465e
decrypt fix
2015-10-14 15:49:41 -07:00
Joseph Henry
499d1628c7
Improved error coverage
2015-10-14 17:59:11 -04:00
Adam Ierymenko
59389b3dce
Untested cluster code, not enabled.
2015-10-14 14:17:55 -07:00
Adam Ierymenko
619e113748
Work in progress on Cluster for new root infrastructure, multi-homing.
2015-10-14 14:12:12 -07:00
Joseph Henry
e722eab892
Disabled TCP listen backlog, must be enabled in lwipopts.h
2015-10-14 17:03:32 -04:00
Joseph Henry
9ca699c86d
Added support for listen backlogs
2015-10-14 16:04:26 -04:00
Joseph Henry
d45db0f5af
Fixed premature connection close bug
2015-10-14 15:46:22 -04:00
Joseph Henry
0b5a2a7594
Removed character from NEtconEthernetTap.cpp
2015-10-14 13:49:13 -04:00
Joseph Henry
831a513b2d
Normalized cases
2015-10-14 13:47:35 -04:00
Adam Ierymenko
c312ae221f
Fix for world size in OK(HELLO)
2015-10-14 10:45:33 -07:00
Joseph Henry
a35b6589d2
Removed lowercase intercept.h conflicting file
2015-10-14 13:43:12 -04:00
Adam Ierymenko
719233617c
Add uint16_t key to Hashtable, and make Salsa20 zero its keyspace on destruction.
2015-10-14 10:14:07 -07:00
Joseph Henry
3c8e74023f
Inconsequential. Updated commends, added debug statements
2015-10-13 20:20:45 -04:00
Joseph Henry
71c6ec71e5
connect() now checks socket family
2015-10-13 19:27:19 -04:00
Joseph Henry
1fd04557c7
Refactored connect(), added checks to socket(), updated checklists
2015-10-13 19:12:12 -04:00
Joseph Henry
aa6ff039c4
Improved bind() logic, added more error handling to accept()
2015-10-13 18:33:56 -04:00
Joseph Henry
8a05efa365
EBADF, EOPNOTSUPP, EMFILE error repoarting for accept()
2015-10-13 17:57:17 -04:00
Joseph Henry
da536cc311
Improved error reporting
2015-10-13 17:37:54 -04:00
Joseph Henry
0912d4be59
Fixed socket protocol check logic in socket()
2015-10-13 17:05:11 -04:00
Adam Ierymenko
489e1a5b83
Don't keep connections up longer than the alive timeout (unless they are relays or roots)
2015-10-13 13:51:54 -07:00
Adam Ierymenko
824ed99160
.
2015-10-13 12:42:54 -07:00
Adam Ierymenko
385f1410d2
Expose world info in JSON.
2015-10-13 12:33:15 -07:00
Adam Ierymenko
70d8e3ad94
Expose world ID and world timestamp in ZT_NodeStatus
2015-10-13 12:31:38 -07:00
Adam Ierymenko
71348f3ebb
docs
2015-10-13 12:29:01 -07:00
Adam Ierymenko
e268d9492a
cleanup
2015-10-13 12:18:47 -07:00
Adam Ierymenko
123c466843
Full integration of World and World updates.
2015-10-13 12:17:47 -07:00
Adam Ierymenko
5d2f523e81
World stuff...
2015-10-13 12:10:44 -07:00
Joseph Henry
73145de618
Added some parameter checks from linux kernel syscall source
2015-10-13 14:27:30 -04:00
Adam Ierymenko
05677f57e2
Add C output to mkworld.
2015-10-13 08:55:21 -07:00
Adam Ierymenko
cae58f43f1
More World stuff, and mkworld.
2015-10-13 08:49:36 -07:00
Joseph Henry
82052459a2
Odds and ends
2015-10-12 21:50:41 -04:00
Joseph Henry
4e1e857949
Minor bug fixes
2015-10-12 21:26:32 -04:00
Adam Ierymenko
1b1945c63e
Work in progress on refactoring root-topology into World and adding in-band updates.
2015-10-12 18:25:29 -07:00
Joseph Henry
8d1b01cb5b
Bug fix: Connection fd lookup in service
2015-10-12 20:46:59 -04:00
Adam Ierymenko
70fe7dd1fd
cleanup
2015-10-12 16:40:57 -07:00
Joseph Henry
5dffa43201
Additional retval+errno handling
2015-10-12 19:29:27 -04:00
Joseph Henry
6b1a38f14c
Better retval+errno handling
2015-10-12 16:38:08 -04:00
Joseph Henry
fe8e7ded8c
retval+errno return test
2015-10-09 20:27:38 -04:00
Adam Ierymenko
eff1fe3c61
Create files for each hop (more convenient) and fix a packet parse bug.
2015-10-09 16:22:34 -07:00
Adam Ierymenko
7d01fab132
Reorg fields to be in same order as FS scheme.
2015-10-09 15:18:01 -07:00
Adam Ierymenko
c9295a5883
.
2015-10-09 15:12:05 -07:00
Adam Ierymenko
aec13b50fd
Be a bit more verbose in circuit test reports to more clearly track current and upstream hop in graph traversal history.
2015-10-09 15:05:26 -07:00
Adam Ierymenko
a95fa379cc
Circuit tests basically work but need some tweaks, and fix some issues found with valgrind.
2015-10-09 14:51:38 -07:00
Joseph Henry
07536216c2
Removed netcon/.depend
2015-10-09 17:36:27 -04:00
Joseph Henry
3bcb6bf321
Minor cleanup
2015-10-09 17:31:22 -04:00
Joseph Henry
7f56678d84
Added liblwip.so and libintercept build files
2015-10-09 17:06:09 -04:00
Adam Ierymenko
97dee9de36
Add more helpful example stuff.
2015-10-09 12:50:52 -07:00
Joseph Henry
e3ec000e93
Added intercept build file and sources
2015-10-09 15:41:16 -04:00
Adam Ierymenko
6b5bb0b278
Eliminate format string warnings.
2015-10-09 12:22:13 -07:00
Adam Ierymenko
e33adad8f5
Script to quickly generate test docker env files.
2015-10-09 12:15:42 -07:00
Joseph Henry
769bad3320
Test: Added handle_write call to nc_poll
2015-10-09 15:05:45 -04:00
Adam Ierymenko
9a25651151
.
2015-10-09 10:14:45 -07:00
Adam Ierymenko
c2bbec2f05
Docker example (and useful for testing)
2015-10-09 10:14:20 -07:00
Adam Ierymenko
0c498556d5
Unroll Salsa20 fully for a little more speed (non-SSE now almost as fast as SSE)
2015-10-09 09:39:27 -07:00
Adam Ierymenko
3fa6dd377f
docs
2015-10-09 08:51:57 -07:00
Joseph Henry
6600b005b6
No Whack!
2015-10-08 21:24:51 -04:00
Joseph Henry
b5b57aca02
Whack!
2015-10-08 21:04:47 -04:00
Adam Ierymenko
160278c489
Little bit of reorg in Salsa20 which seems to speed things up very slightly.
2015-10-08 17:42:53 -07:00
Joseph Henry
d868a234da
Refactored write logic
2015-10-08 19:38:29 -04:00
Adam Ierymenko
59da8b2a4b
Logging of circuit test results to disk.
2015-10-08 15:44:06 -07:00
Joseph Henry
41dfbe544f
Removed exit(0) for debugging
2015-10-08 18:10:10 -04:00
Joseph Henry
bbfc9359e9
Minor timer changes (~21 Mb/s local)
2015-10-08 17:55:58 -04:00
Adam Ierymenko
558775d544
Merge branch 'adamierymenko-dev' of http://10.6.6.2/zerotier/ZeroTierOne into adamierymenko-dev
2015-10-08 13:26:43 -07:00
Adam Ierymenko
a3876353ca
Abiltiy to post a test via the controller web API, and parsing of CIRCUIT_TEST_REPORT messages.
2015-10-08 13:25:38 -07:00
Adam Ierymenko
273f0d18b0
docs
2015-10-08 09:05:25 -07:00
Grant Limberg
9347d6c866
Make it so ZeroTierOne.h can be used with a C compiler again.
2015-10-07 18:04:40 -07:00
Adam Ierymenko
fea1b6b2c3
docs
2015-10-07 16:25:08 -07:00
Adam Ierymenko
0ce0bc00d2
Make sure received() gets called for some new messages, and docs.
2015-10-07 16:20:54 -07:00
Adam Ierymenko
69b44bf9a5
Finally add an ECHO.
2015-10-07 16:11:50 -07:00
Adam Ierymenko
73cafbe0ec
Limit proof of work difficulty to something sane.
2015-10-07 13:46:44 -07:00
Adam Ierymenko
e5f168f599
Add proof of work request for future DDOS mitigation use.
2015-10-07 13:35:46 -07:00
Adam Ierymenko
7d62dbe9f7
Tune NAT-t keepalives so that timing is better obeyed, clean up a build warning, and fix a potential source of network recursion (though harmless).
2015-10-07 11:57:59 -07:00
Adam Ierymenko
13f14c2f4c
Kill debug line.
2015-10-07 10:56:47 -07:00
Adam Ierymenko
c952fbbd8d
Only enable 128-bit Poly1305 on X86_64 right now. Has compilation issues on ARM, but the 64-bit version should be fine.
2015-10-07 10:40:59 -07:00
Adam Ierymenko
ab0228f626
More cleanup and simple refactoring, consolidate InetAddres serialize/deserialize into the class.
2015-10-07 10:30:47 -07:00
Adam Ierymenko
6c7ce79c89
Be consistent in how enums are defined in the main .h file.
2015-10-07 09:51:35 -07:00
Adam Ierymenko
1b2cac0cc5
Trim some cruft that is not used and probably never would be.
2015-10-07 09:38:33 -07:00
Joseph Henry
1bc33ae8d7
Minor debug output changes
2015-10-06 21:22:08 -04:00
Adam Ierymenko
598a1d8dd7
Try reopening /dev/urandom if there is a problem.
2015-10-06 18:10:40 -07:00
Adam Ierymenko
64aaea3978
Cleanup, and add an even faster Poly1305 on systems that support it.
2015-10-06 18:04:53 -07:00
Adam Ierymenko
876aa0883d
Merge branch 'adamierymenko-dev' into netcon
2015-10-06 17:56:47 -07:00
Adam Ierymenko
477feee8a3
Some work on CIRCUIT_TEST, and a significant speedup to Poly1305.
2015-10-06 17:55:57 -07:00
Joseph Henry
36db5865e7
Refactored tcp_write code - Reduced CPU usage to respectable levels
2015-10-06 20:32:48 -04:00
Adam Ierymenko
7394ec6f6a
Prep in controller code to run tests.
2015-10-06 15:56:18 -07:00
Adam Ierymenko
3593fb3462
Send initial CIRCUIT_TEST packet.
2015-10-06 15:16:41 -07:00
Adam Ierymenko
d3f29d09e8
Plumbing through circuit test stuff.
2015-10-06 14:42:51 -07:00
Adam Ierymenko
5341afcdcd
Handling of CIRCUIT_TEST, should be ready to test.
2015-10-06 11:47:16 -07:00
Adam Ierymenko
57c857e89a
Fix TRACE output.
2015-10-06 06:57:00 -07:00
Grant Limberg
c16ad053b6
no toString() method on peer. Commenting out for now.
2015-10-02 19:39:46 -07:00
Grant Limberg
6080a45c9c
change cert to com. no variable named cert.
2015-10-02 19:39:13 -07:00
Adam Ierymenko
5384f185ae
Simplify Dictionary and reduce memory usage, now no more std::maps in core.
2015-10-01 18:12:16 -07:00
Adam Ierymenko
76a95dc58f
The return of peer peristence.
2015-10-01 17:09:01 -07:00
Adam Ierymenko
5076c49210
Peer serialization and related changes.
2015-10-01 15:40:54 -07:00
Adam Ierymenko
72e7e36a5b
No reason to randomly pick uPnP secondary port. In fact it would likely cause problems on restarts and uPnP rule bloat.
2015-10-01 14:40:28 -07:00
Adam Ierymenko
2fa21aa676
.
2015-10-01 13:43:57 -07:00
Adam Ierymenko
3999e468b7
Need to hold nconf so *com does not die while being used.
2015-10-01 13:43:15 -07:00
Adam Ierymenko
6693149f3e
Send COM with MULTICAST_GATHER for future use.
2015-10-01 13:34:12 -07:00
Adam Ierymenko
2c196307ee
--bugs;
2015-10-01 13:01:18 -07:00
Adam Ierymenko
d6676a9d6c
Always announce multicast groups, not just to peers with direct links, and push network COMs to any MULTICAST_LIKE recipient for future use.
2015-10-01 12:50:19 -07:00
Adam Ierymenko
a7409850d6
Get trim() out of core where it is not needed.
2015-10-01 12:37:18 -07:00
Adam Ierymenko
53e5f94b99
.
2015-10-01 12:25:43 -07:00
Adam Ierymenko
64bf3ffe6c
Mutex cleanup.
2015-10-01 11:44:09 -07:00
Adam Ierymenko
9405150b11
Restore group announcement on Peer::receive() but centralize packet composition in one place.
2015-10-01 11:37:02 -07:00
Adam Ierymenko
a3db7d0728
Refactor: move network COMs out of Network and into Peer in prep for tightening up multicast lookup and other things.
2015-10-01 11:11:52 -07:00
Adam Ierymenko
11ff96ba1d
Consider IPv6 paths reliable (no constant keepalives needed)
2015-09-30 15:20:08 -07:00
Adam Ierymenko
0d0039674f
Add new verb names, and fix some Mac compiler flags.
2015-09-30 14:48:07 -07:00
Adam Ierymenko
789046ca57
Speed up Salsa20 just a bit.
2015-09-30 14:35:05 -07:00
Adam Ierymenko
1a4f16e0ed
More work on circuit testing...
2015-09-30 13:59:05 -07:00
Joseph Henry
4983fd3776
Recompiled ZTO binary with fix + moves index.html to var/www
2015-09-29 14:32:07 -04:00
Adam Ierymenko
cc10d4f310
Speed up multicast group checking/registration.
2015-09-29 10:31:41 -07:00
Adam Ierymenko
167a5039d0
.
2015-09-28 23:40:20 -07:00
Adam Ierymenko
4b82171a95
.
2015-09-28 22:16:58 -07:00
Adam Ierymenko
b4624237af
.
2015-09-28 22:14:32 -07:00
Adam Ierymenko
49f93a57bf
.
2015-09-28 17:07:46 -07:00
Adam Ierymenko
ea71738c72
Entry point stuff...
2015-09-28 16:36:20 -07:00
Joseph Henry
49956ed63d
Updated intercept library for Earth
2015-09-28 19:31:32 -04:00
Adam Ierymenko
280fcc3771
add cr after identity in demo script.
2015-09-28 16:15:17 -07:00
Adam Ierymenko
3a6346f560
More entry point work, and change network to 8056c2e21c000001 for demo.
2015-09-28 16:14:32 -07:00
Adam Ierymenko
980d145f48
Entry point changes to wait for ZT startup, print banners, log output debug messages and trace to files.
2015-09-28 15:31:47 -07:00
Adam Ierymenko
a7bd1eaa40
Never assign v4 IPs ending in .255 even within range.
2015-09-28 15:28:30 -07:00
Joseph Henry
1773dca9dc
Optimized Dockerfile arrangement
2015-09-28 17:59:54 -04:00
Joseph Henry
8e3e830e89
Working intercepted Apache
2015-09-28 17:47:38 -04:00
Joseph Henry
77b385fb12
Re-added Apache to Dockerfile
2015-09-28 17:30:18 -04:00
Joseph Henry
0b34d8e75e
New Dockerfile
2015-09-28 16:56:14 -04:00
Joseph Henry
0c3dd2be96
Fixed apache script
2015-09-27 21:48:38 -04:00
Joseph Henry
444481f6d9
Modified Dockerfile
2015-09-27 21:26:57 -04:00
Joseph Henry
299ec12b39
Added docker-test folder
2015-09-27 21:16:02 -04:00
Joseph Henry
b21c5d8e51
Added dockerfile
2015-09-27 20:51:32 -04:00
Adam Ierymenko
2d0adb562d
Specify circuit test messages.
2015-09-27 11:37:39 -07:00
Joseph Henry
3bc9530db7
Object-Model refactor: Removed notion of Client
2015-09-27 06:08:39 -04:00
Grant Limberg
75a191a856
don't create an InetSocketAddress on local address if it's equal to ZT_SOCKADDR_NULL
2015-09-26 14:10:45 -07:00
Grant Limberg
7c3be2b5c1
fix function signature in lookup for onSendPacketRequested function
2015-09-26 14:10:16 -07:00
Grant Limberg
0b9e5928d3
update PacketSender interface
2015-09-26 13:53:38 -07:00
Grant Limberg
e8cdff3eaf
Merge branch 'adamierymenko-dev' into android-jni-dev
...
also update for changed function calls that now accept a local address
# Conflicts:
# include/ZeroTierOne.h
# java/CMakeLists.txt
# java/jni/Android.mk
# java/jni/ZT1_jnicache.cpp
# java/jni/ZT1_jnilookup.h
# java/jni/ZT1_jniutils.cpp
# java/jni/com_zerotierone_sdk_Node.cpp
2015-09-26 13:47:55 -07:00
Joseph Henry
fe78eb77d4
Fixed another closure bug
2015-09-24 19:22:56 -04:00
Adam Ierymenko
f69454ec98
(1) Make ZT_ naming convention consistent (get rid of ZT1_), (2) Make local interface a full sockaddr_storage instead of an int identifier, which turns out to be better for multi-homing and other uses.
2015-09-24 16:21:36 -07:00
Joseph Henry
8a8264bc39
Fixed their_fd closure bug
2015-09-24 17:33:25 -04:00
Joseph Henry
1119f64a77
Fixed connection closure issue
2015-09-24 17:10:30 -04:00
Joseph Henry
c25ceaf06b
Fixed recursive lock problem in closeConnection
2015-09-24 16:15:14 -04:00
Adam Ierymenko
b263926ea6
thread fixes.
2015-09-24 13:02:10 -07:00
Adam Ierymenko
84747b1a14
thread fixes...
2015-09-24 13:01:19 -07:00
Joseph Henry
9396b8d53c
Minor debug changes
2015-09-24 15:56:48 -04:00
Joseph Henry
37497ec2a8
Minor changes
2015-09-24 15:31:11 -04:00
Joseph Henry
851e4c667f
Minor changes
2015-09-24 15:30:07 -04:00
Adam Ierymenko
9feeafd757
Make LWIPStack thread safe.
2015-09-24 12:29:10 -07:00
Joseph Henry
0027a1e152
Merge branch 'netcon' of http://10.6.6.2/zerotier/zerotierone into netcon
2015-09-24 14:33:49 -04:00
Joseph Henry
65af5af138
Added debug statements
2015-09-24 14:33:15 -04:00
Adam Ierymenko
557d2b3b0d
Make LWIPStack clean up properly.
2015-09-24 11:11:16 -07:00
Adam Ierymenko
fbde40d1fc
Merge branch 'adamierymenko-dev' into netcon
2015-09-24 11:00:22 -07:00
Joseph Henry
557c0c29b0
minor changes
2015-09-23 19:45:44 -04:00
Adam Ierymenko
0e5aac6a11
Prefer IPv6 paths if available.
2015-09-23 16:16:36 -07:00
Adam Ierymenko
b242216674
Version bump, preparing for a likely 1.0.6 soon.
2015-09-23 16:10:06 -07:00
Adam Ierymenko
423412df98
Pick a random secondary UDP port for uPnP mapped traffic because of broken routers.
2015-09-23 15:16:20 -07:00
Joseph Henry
c85dd262ed
moved lib files to ext
2015-09-23 18:03:21 -04:00
Joseph Henry
02d5a31822
added lwip unix port lib files
2015-09-23 17:55:15 -04:00
Adam Ierymenko
7821d1cbdd
.
2015-09-23 14:44:13 -07:00
Adam Ierymenko
80dc7fb675
Pick random port on -p0
2015-09-23 14:38:16 -07:00
Adam Ierymenko
a3ed5277ef
Make sure ZT_NO_TYPE_PUNNING also obeyed here.
2015-09-23 14:09:27 -07:00
Adam Ierymenko
2a527ea82e
Fix for timer jitter problem.
2015-09-23 14:01:41 -07:00
Adam Ierymenko
367ffde00c
Plumb through localInterfaceId to track local interfaces corresponding with remote addresses.
2015-09-23 13:49:56 -07:00
Joseph Henry
bbdb8eb0de
more commenting and cleaning
2015-09-23 15:23:26 -04:00
Joseph Henry
b6a6346405
commenting and cleanup
2015-09-23 14:23:36 -04:00
Adam Ierymenko
4464fa5d39
Eliminate another warning.
2015-09-23 10:29:05 -07:00
Adam Ierymenko
86996d4315
Eliminate compiler warning.
2015-09-23 10:27:53 -07:00
Joseph Henry
07cef1bdb8
misc cleanup
2015-09-22 19:53:36 -04:00
Adam Ierymenko
69f006f641
.
2015-09-22 16:02:02 -07:00
Adam Ierymenko
d656e87395
Send a random small payload for NAT keepalives, since zero byte packets seem to fail to keep associations alive behind some NATs.
2015-09-22 15:58:00 -07:00
Joseph Henry
3cb8070980
it's alive! -- hooked up new fd-handling code
2015-09-22 18:44:54 -04:00
Adam Ierymenko
ff7ac0487b
.
2015-09-22 15:16:38 -07:00
Adam Ierymenko
19c0923a86
Merge branch 'adamierymenko-dev' into netcon
2015-09-22 15:11:51 -07:00
Adam Ierymenko
6ce64c2557
Phy<> loses socketpair, gains raw FD monitoring.
2015-09-22 15:11:32 -07:00
Joseph Henry
3ed5edb295
fixed fd-transfer logic bug, needs new write-queue logic
2015-09-22 17:43:20 -04:00
Joseph Henry
c3dbae8d5e
more debugs
2015-09-22 13:35:37 -04:00
Joseph Henry
b2494b53e6
adjusted output size for packets
2015-09-22 13:27:27 -04:00
Joseph Henry
f091a074d4
output lengths
2015-09-22 13:25:24 -04:00
Joseph Henry
f80d65286c
more debug statements
2015-09-22 13:21:33 -04:00
Adam Ierymenko
0271e3d3ac
.
2015-09-22 10:00:00 -07:00
Joseph Henry
00cb8dbda8
timer change
2015-09-22 12:48:53 -04:00
Joseph Henry
025069de7e
timer change
2015-09-21 20:51:35 -04:00
Joseph Henry
86673bd6d6
fixed minor bugs and added debug outputs
2015-09-21 19:39:26 -04:00
Adam Ierymenko
ddf3d1f949
Controller side support for IPv6 assignment.
2015-09-18 13:35:00 -07:00
Adam Ierymenko
3664966340
Generate local IPv6 addresses from network IDs and addresses.
2015-09-17 21:30:32 -07:00
Joseph Henry
cb6864f04a
updated nc_accept and lwip.so
2015-09-15 20:32:00 -04:00
Joseph Henry
701e1654a1
moved IP/netif allocation code
2015-09-15 19:06:16 -04:00
Joseph Henry
732de5bf7f
some cleanup
2015-09-15 18:47:40 -04:00
Joseph Henry
11731af45a
it's alive!
2015-09-15 18:27:52 -04:00
Joseph Henry
735ae9b369
debug changes
2015-09-15 15:41:57 -04:00
Joseph Henry
cb277f52e8
Merge branch 'netcon' of http://10.6.6.2/zerotier/zerotierone into netcon
2015-09-15 14:16:28 -04:00
Joseph Henry
8ea83c9548
netif code hooked up
2015-09-15 14:15:59 -04:00
Adam Ierymenko
610ab0750c
Drop Sqlite-based Log table for now and switch to an in-memory log for recent activity. Log table gets too big on busy nodes. Should probably support push of events to some kind of event system later.
2015-09-15 10:59:23 -07:00
Adam Ierymenko
d06499a50c
Merge branch 'adamierymenko-dev' of http://git.int.zerotier.com/zerotier/zerotierone into netcon
2015-09-14 12:00:03 -07:00
Adam Ierymenko
ef316ced3b
Fix JSON.
2015-09-14 11:59:43 -07:00
Adam Ierymenko
0617b17534
Merge branch 'netcon' of http://git.int.zerotier.com/zerotier/zerotierone into netcon
2015-09-14 11:36:01 -07:00
Grant Limberg
f7d3e262a9
ifdef default assignments
2015-09-11 17:16:38 -07:00
Joseph Henry
8189b2ba91
retval fix
2015-09-11 19:29:35 -04:00
Joseph Henry
e73868bc5a
various segfault fixes
2015-09-11 19:02:44 -04:00
Joseph Henry
6f0bc1f676
added debugs, fixed linux makefile
2015-09-11 18:22:41 -04:00
Adam Ierymenko
88898c68d7
Merge branch 'adamierymenko-dev' of http://git.int.zerotier.com/zerotier/zerotierone into netcon
2015-09-11 15:02:38 -07:00
Adam Ierymenko
cd005341c5
Extra statement to clean up Members -- cascade did not seem to work, possibly due to dual key.
2015-09-11 15:02:26 -07:00
Joseph Henry
bc666d0ab7
added pbuf alloc block
2015-09-11 15:26:39 -04:00
Adam Ierymenko
933b47389d
Add Arp to netcon build.
2015-09-11 12:19:48 -07:00
Adam Ierymenko
a8d7a31327
Integrate arp into NetconEthernetTap.
2015-09-11 12:12:45 -07:00
Joseph Henry
c2226cf0df
added TRACEs
2015-09-11 14:47:16 -04:00
Adam Ierymenko
5f6eb2ce98
Merge branch 'adamierymenko-dev' into netcon
2015-09-11 11:46:44 -07:00
Adam Ierymenko
c1a53a2653
ARP cache and responder agent code for use in netcon and iOS.
2015-09-11 11:45:04 -07:00
Joseph Henry
776f93e7be
closeConnection / closeClient changes
2015-09-11 14:12:27 -04:00
Joseph Henry
5a5a513b18
small method changes
2015-09-11 14:00:42 -04:00
Joseph Henry
cc4a2bb0c3
filled out hendlers
2015-09-10 20:34:48 -04:00
Joseph Henry
e4dc46741f
compiles, technically
2015-09-10 20:22:35 -04:00
Joseph Henry
20beafedc5
refactor almost complete
2015-09-10 20:02:13 -04:00
Adam Ierymenko
8d82ac5cc8
Merge branch 'adamierymenko-dev' into netcon
2015-09-10 15:56:15 -07:00
Adam Ierymenko
9dc2ef5549
Rename some stuff in Phy since it can be used with any stream socket.
2015-09-10 15:55:48 -07:00
Adam Ierymenko
cd3d77987c
.
2015-09-10 15:52:24 -07:00
Joseph Henry
b11d429bc0
refactor in progress
2015-09-10 18:48:45 -04:00
Joseph Henry
e391bc004b
refactor in progress
2015-09-10 18:19:43 -04:00
Adam Ierymenko
a35fa7ac93
Add expansion of netconf in _test field.
2015-09-10 15:14:10 -07:00
Adam Ierymenko
bebe3d7cfa
Fix deadlock in test mode.
2015-09-10 14:47:04 -07:00
Joseph Henry
c1f1530d54
refactor in progress
2015-09-10 17:44:01 -04:00
Adam Ierymenko
1f7a41cff8
Fix to allowing identity to be populated if not present.
2015-09-10 14:37:34 -07:00
Joseph Henry
f4d3c995bc
refactor in progress
2015-09-10 16:52:18 -04:00
Adam Ierymenko
637da383f5
Remove unnecessary accessors.
2015-09-10 13:22:44 -07:00
Adam Ierymenko
389ea272a0
Merge adamierymenko-dev
2015-09-10 13:20:00 -07:00
Adam Ierymenko
9a723be263
Add socketpair support to Phy.
2015-09-10 13:18:57 -07:00
Joseph Henry
3802d37d29
started refactor
2015-09-10 15:46:37 -04:00
Joseph Henry
750352836f
initial commit
2015-09-10 13:56:01 -04:00
Adam Ierymenko
a43c3fbf2e
Merge branch 'adamierymenko-dev' into netcon
2015-09-09 09:54:39 -07:00
Adam Ierymenko
4fbcad2468
Allow identity to be populated for newly inserted Member objects to permit transfer from old network controller and testing.
2015-09-08 13:02:42 -07:00
Adam Ierymenko
0d386f1c31
Add a bit of useful testing instrumentation to SqliteNetworkController.
2015-09-08 11:35:55 -07:00
Adam Ierymenko
85b90f122a
Final std::map<> from Switch, and add some smallish default values for hash size.
2015-09-04 15:35:43 -07:00
Adam Ierymenko
3dba016a93
Almost done... very few std::map<>s remaining in any spot that matters.
2015-09-04 15:21:22 -07:00
Adam Ierymenko
db0369e9b8
Remove way-overkill multimap from Switch.
2015-09-04 14:56:39 -07:00
Adam Ierymenko
0ab3e49be9
Starting in on Switch... kill map in defrag queue, which will probably improve performance pretty decently under high load with lots of peers.
2015-09-04 14:44:22 -07:00
Adam Ierymenko
f116c4b9c0
... and another ...
2015-09-04 14:24:31 -07:00
Adam Ierymenko
307e44f7c8
Two for one! (std::map removal)
2015-09-04 14:14:32 -07:00
Adam Ierymenko
d1341578d8
... and another one!
2015-09-04 13:53:48 -07:00
Adam Ierymenko
7b8ce16057
Another std::map<> dies.
2015-09-04 13:42:19 -07:00
Adam Ierymenko
3a959a7763
Swap out std::map<> for Hashtable<> for main peer database in Topology. (ongoing std::map-ectomy)
2015-09-04 12:14:21 -07:00
Adam Ierymenko
cfd101c9b8
Add entries() to go with keys() for future use.
2015-09-04 11:50:12 -07:00
Adam Ierymenko
ca6ec120a9
Merge branch 'netcon' of http://git.int.zerotier.com/zerotier/zerotierone into netcon
2015-09-03 18:45:07 -07:00
Adam Ierymenko
88ba39b162
Merge branch 'adamierymenko-dev' into netcon
2015-09-03 18:44:57 -07:00
Adam Ierymenko
da9a720c3f
Hash table bug fix, and add copy constructor and assignment operator for principle of least surprise.
2015-09-03 17:33:06 -07:00
Adam Ierymenko
10707c3673
build fix
2015-09-03 16:44:04 -07:00
Adam Ierymenko
b9d4b42f93
A few more fixes, ready to integrate main payload.
2015-09-03 16:05:18 -07:00
Adam Ierymenko
bf4cab5f2f
Netcon build fixes.
2015-09-02 16:31:13 -07:00
Adam Ierymenko
1f4c667646
Netcon mode for Linux (in this branch, will make conditional later)
2015-09-02 16:15:22 -07:00
Adam Ierymenko
dfb08ec753
More netcon stuff, and Phy build fix.
2015-09-02 15:51:28 -07:00
Adam Ierymenko
4626175d11
Stub of NetconEthernetTap
2015-09-02 15:17:38 -07:00
Adam Ierymenko
4838cbc350
Unix domain sockets in Phy<>
2015-09-02 14:32:01 -07:00
Grant Limberg
53d98343b7
Merge branch 'master' into android-jni
2015-08-31 19:53:39 -07:00
Grant Limberg
73bedfcc01
ifdef default assignments
2015-08-29 17:54:30 -07:00
Grant Limberg
d5b48c90ed
added a 512x512 app icon (for Play store)
2015-08-27 19:51:27 -07:00
Grant Limberg
ebfbb7f452
Merge branch 'master' of http://git.int.zerotier.com/ZeroTier/ZeroTierOne into android-jni
2015-08-27 19:31:46 -07:00
Adam Ierymenko
b11ffc9635
Integrate Hashtable into Multicaster, where @mwarning found heaviest std::map() overhead.
2015-08-27 16:17:21 -07:00
Adam Ierymenko
3947807b1f
A simple and fast Hashtable, tested but not yet integrated with anything.
2015-08-27 15:36:13 -07:00
Adam Ierymenko
5db538d85e
VERSION 1.0.5: Windows and Linux (upgrade) bug fixes
...
Version 1.0.5 is a very minor release. It includes a new build of the Windows
device driver that supports Windows Vista and 2008 Server, and a fix to prevent
an issue that could occur when updating Linux installations from old pre-1.0.3
versions to 1.0.3 or 1.0.4.
It also includes a few very minor fixes and improvements to the controller code,
which doesn't affect most users.
This second commit just bumps version.h. :)
2015-08-25 09:55:14 -07:00
Adam Ierymenko
a9176d7b62
VERSION 1.0.5: Windows and Linux (upgrade) bug fixes
...
Version 1.0.5 is a very minor release. It includes a new build of the Windows
device driver that supports Windows Vista and 2008 Server, and a fix to prevent
an issue that could occur when updating Linux installations from old pre-1.0.3
versions to 1.0.3 or 1.0.4.
It also includes a few very minor fixes and improvements to the controller code,
which doesn't affect most users.
2015-08-25 09:47:37 -07:00
Adam Ierymenko
b4487cefc9
Document rules requirement in controller.
2015-08-25 09:46:59 -07:00
Adam Ierymenko
867258de8b
Document clock convenience field.
2015-08-25 09:44:21 -07:00
Adam Ierymenko
5fcef91278
Ignore old root-topology if present -- fix for upgrading on Linux and possibly elsewhere.
2015-08-25 09:42:37 -07:00
Adam Ierymenko
2aa1b5d9b7
Add clock helper field to both member and network to permit time duration calculation easily.
2015-08-24 12:44:07 -07:00
Adam Ierymenko
9a5be0a092
typo
2015-08-24 11:24:33 -07:00
Adam Ierymenko
4da794b389
Add authorizedMemberCount to controller network config records.
2015-08-19 11:43:56 -07:00
Adam Ierymenko
0a5429cab0
Lookup of member must be a left outer join in case the member is being manually inserted before we see the node.
2015-08-17 21:08:02 +00:00
Grant Limberg
7d676ad16a
Merge branch 'adamierymenko-dev' into android-jni
2015-08-13 19:36:30 -07:00
Adam Ierymenko
b75bdedaee
Manually set DeviceInstanceID since this registry key is missing on Windows Vista and Server 2008.
2015-08-13 15:52:54 -07:00
Adam Ierymenko
085734aaba
Windows driver (NDIS6) rebuild using earlier DDK revision to allow driver to load in Windows 2008 Server and Windows Vista. Still issues with those platforms, but driver loads -- and shouldn't hurt newer versions (will test).
2015-08-13 15:18:48 -07:00
Grant Limberg
0fd6808e21
Merge branch 'master' into android-jni
2015-08-01 11:52:47 -07:00
Adam Ierymenko
bf193dd3cf
VERSION 1.0.4: Stability, LAN, and NAT traversal improvements
...
ZeroTier One version 1.0.4 brings several improvements to stability,
connectivity between hosts on the same LAN, and NAT traversal.
Direct connectivity improvements:
- ZeroTier One now opens port mappings using uPnP and/or NAT-PMP
if they are available on your network. These are then made
available to other (1.0.4 or newer) nodes. This should greatly
improve direct connectivity success rates for users on networks
that support port mapping. To build with this option, you must
include ZT_USE_MINIUPNPC=1 on the make path. Pre-build binaries
are included for many common architectures to make this easier.
- A new message has been introduced whereby nodes can "push" IP
address suggestions to other nodes. This is only done to nodes
with whom you have a trust relationship, which right now means
they are members of a network you've joined. The IP addresses
sent include local interface addresses and possibly uPnP mappings
if any are available. When nodes receive pushed IPs, they can
attempt connectivity at these addresses. This greatly improves
connectivity on local LANs, since the old broadcast mechanism
proved too unreliable under many real world scenarios.
- IPv6 addresses are also "pushed" via the aforementioned message,
allowing direct connectivity over IPv6 if both hosts have an
IPv6 address.
- Some of the aggressive port-scanning NAT-t behavior has been
removed, since this occasionally triggered intrusion alarms on
some networks and proved ineffective in the field. uPnP will be
a much bigger win, and is less "hacky."
- The rate of (tiny) UDP keepalive packet generation was slightly
increased. We were as surprised as you to learn that there are
many NAT routers in the wild with timeouts as short as 20 seconds
even though the RFC stipulates that they should be no shorter
than two minutes (120 seconds).
All of these connectivity improvements rely upon a new message
introduced with 1.0.4, so they'll only work between 1.0.4 nodes.
Older methods of connectivity establishment will continue to work
with earlier versions.
Platform-specific improvements:
- Many improvements have been made to Windows support and stability.
The NDIS6 driver is now used exclusively. If you have ports that
use NDIS5, these will automatically be re-created using the NDIS6
driver. You may see a "select this network's type" notification
after 1.0.4 upgrade for this reason.
- The dependency on the external "devcon.exe" binary on Windows has
been completely removed in favor of internal direct calls to the
Windows setup API to add and remove network ports. These are done
via dynamically loaded instances of the system setup DLLs to use
the most recent setup API code on your system for improved
compatibility.
- This version is tested with Windows 10 release, and was confirmed
to work on a clean install.
- The ARM32/Raspbian build is now back to using Debian Wheezy for
library backward compatibility (binary build only).
- The Mac icon is now a bit smaller to look better in the dock.
- The ui/ subfolder is now distributed with the Linux binary installer
and packages. This means Linux users can navigate to the UI at
http://127.0.0.1:9993/ and enter their authtoken.secret to use
the GUI locally. (This port could also be accessed via SSH port
forwarding or other mechanisms to administrate graphically from a
remote system.)
Other improvements:
- The new beta SQLite-backed controller microservice found in
controller/ and built with the ZT_ENABLE_NETWORK_CONTROLLER=1 make
option is now in a much more "working" state. Feel free to give
it a try! If you tried it before, delete controller.db before
starting the new version.
- A few tweaks were made to the path selection logic in the hope of
eliminating some flaky network behavior reported by users.
The next version of ZeroTier One will focus on performance and memory
footprint reduction, and may also include perfect forward security/secrecy
(a.k.a. PFS) once our design is finalized and reviewed.
2015-07-31 11:33:52 -07:00
Adam Ierymenko
facb009a1d
Add security notice to auto-update info in -h output, and fix a missing paren.
2015-07-31 09:50:55 -07:00
Adam Ierymenko
8d09c37140
Remove a bit of redundant logic, and also announce MULTICAST_LIKEs to controllers (for future use).
2015-07-31 09:37:13 -07:00
Adam Ierymenko
f6ced547be
Dead code removal.
2015-07-31 08:56:31 -07:00
Adam Ierymenko
c826cec1d4
Bring back _winPokeAHole() to dynamically allocate firewall exception. Shouldn't be needed but seems to help on Windows 8.
2015-07-30 17:52:35 -07:00
Adam Ierymenko
620562f7cf
Because Windows, because Windows. Now it upgrades correctly from 1.0.1, including automatic driver update from NDIS5 to NDIS6. Also a bit more robust on creating new ports, just in case.
2015-07-30 17:00:57 -07:00
Adam Ierymenko
922d9657b9
Save enumeration of statically assigned IPs so they will always be reassigned on device "power cycle."
2015-07-30 14:10:32 -07:00
Adam Ierymenko
499b2dccad
1.0.4 installer GUID
2015-07-30 13:30:10 -07:00
Adam Ierymenko
1e3d5c4d87
Suppress icacls output on lockDownFile().
2015-07-30 12:05:56 -07:00
Adam Ierymenko
6f46f0e0e1
Because Windows.
2015-07-30 11:57:48 -07:00
Adam Ierymenko
8169b35482
Kill the devcon.exe dependency by dynamically loading cfgmgr32, newdev, and setupapi and using these functions directly.
2015-07-30 11:31:38 -07:00
Grant Limberg
c9b4028cd3
Merge branch 'adamierymenko-dev' into android-jni
2015-07-29 20:13:32 -07:00
Adam Ierymenko
7cd3c419ee
1.0.4 release installer changes
2015-07-29 16:17:52 -07:00
Adam Ierymenko
fa03d50e90
Rebuild Mac UI wrapper with smaller icon and a small UI fix.
2015-07-29 15:58:16 -07:00
Adam Ierymenko
0dff741310
Add border around Mac icon so it looks better in Finder.
2015-07-29 15:53:05 -07:00
Adam Ierymenko
fcc5bf1e66
Go ahead and spec out controller DB support for AuthToken -- GitHub issue #211 -- even though full implementation won't make it into 1.0.4.
2015-07-29 15:09:23 -07:00
Grant Limberg
508d31513a
Merge branch 'adamierymenko-dev' into android-jni
2015-07-28 19:18:33 -07:00
Adam Ierymenko
7578b56298
docs
2015-07-28 17:22:59 -07:00
Adam Ierymenko
2599b1bacc
Add CLI support for /explicit/urls (automatically outputs JSON in this case), and some cleanup.
2015-07-28 17:10:56 -07:00
Adam Ierymenko
e3983f8a57
Get rid of -I on Mac and Linux since we include miniupnpc headers by direct path reference.
2015-07-28 16:51:46 -07:00
Adam Ierymenko
14264c2d6f
Add miniupnpc builds for Windows, fix some Windows build warnings.
2015-07-28 16:50:18 -07:00
Adam Ierymenko
3c54187c40
Linux x86 libminiupnpc.a
2015-07-28 15:56:37 -07:00
Adam Ierymenko
7df4eb69b5
Linux x64 libminiupnpc.a
2015-07-24 17:49:56 -07:00
Adam Ierymenko
559e384130
Linux make support for libminiupnpc.
2015-07-28 15:37:18 -07:00
Adam Ierymenko
ebe5c526bb
libminiupnpc.a for arm6l
2015-07-28 15:05:04 -07:00
Adam Ierymenko
5097aae716
Add miniupnpc to third party libs.
2015-07-28 14:50:24 -07:00
Adam Ierymenko
569c5e77fd
Add binary build of libminiupnpc for Mac x64.
2015-07-28 14:48:26 -07:00
Adam Ierymenko
9c87decba6
Merge branch 'adamierymenko-dev' of http://git.int.zerotier.com/zerotier/zerotierone into adamierymenko-dev
2015-07-28 14:32:46 -07:00
Adam Ierymenko
fe6d5b1402
UPNP/NAT-PMP support with libminiupnpc (if built with it) -- GitHub issue #64
2015-07-28 14:32:02 -07:00
Adam Ierymenko
eea8d58afa
docs,cleanup
2015-07-28 12:39:03 -07:00
Adam Ierymenko
21e6850722
Cancel NAT-t attempts if peer is no longer "alive"
2015-07-28 12:18:59 -07:00
Adam Ierymenko
5986d83738
Kill more kittens.
2015-07-28 12:04:14 -07:00
Adam Ierymenko
4564dd95ff
Revert... no luck with any of that.
2015-07-28 12:00:50 -07:00
Adam Ierymenko
d2bfdfa6e7
Play with NAT-t tweaks some more.
2015-07-28 11:57:18 -07:00
Adam Ierymenko
b69afa010e
Disable type punning on ARM by ifdef.
2015-07-28 11:50:01 -07:00
Adam Ierymenko
708aac1ea7
Remove some left over debug code, and fix attempt to send to self if we are an active bridge.
2015-07-28 11:43:09 -07:00
Adam Ierymenko
17bfd4d55e
Add TRACE for NAT-t debugging.
2015-07-28 11:32:34 -07:00
Adam Ierymenko
b31071463c
Try another NAT traversal improvement.
2015-07-28 11:28:47 -07:00
Adam Ierymenko
dda376c9eb
Nuke some abandoned code.
2015-07-28 11:16:43 -07:00
Adam Ierymenko
40d5c79b62
Enable SO_NO_CHECK if available to skip UDP checksum on packet send for slight performance improvement. We do our own cryptographically secure authentication so UDP checksum is worthless.
2015-07-28 10:29:25 -07:00
Adam Ierymenko
1537109514
Merge branch 'master' into adamierymenko-dev
2015-07-28 09:40:54 -07:00
Adam Ierymenko
66c74f0ad9
Merge pull request #215 from nelsonjchen/patch-2
...
Update Application Mac Menu. Small MacGap leftover.
2015-07-28 09:39:42 -07:00
Adam Ierymenko
821f1f366e
Fix to NAT escalation sequence.
2015-07-27 17:34:58 -07:00
Adam Ierymenko
e99eda4a4a
Fix IP scoping bug, and disable remotely reported surface push... not helping. :(
2015-07-27 17:28:13 -07:00
Adam Ierymenko
fadb291962
Fix infinite loop typo.
2015-07-27 17:14:49 -07:00
Adam Ierymenko
f0003ea922
Push remote surface as reported by peers along with known interface direct paths to assist with (some) NAT traversal. (trying this, may back out if not effective)
2015-07-27 17:02:43 -07:00
Adam Ierymenko
e30ba3e138
Eliminate some aggressive port scanning NAT-t behavior that has proven ineffective.
2015-07-27 16:43:27 -07:00
Adam Ierymenko
7a15d8a7e3
Fix leaving of networks to actually call Network::destroy().
2015-07-24 14:50:44 -07:00
Adam Ierymenko
dba91eaa09
Apply same Linux compiler-picker logic to Mac.
2015-07-24 13:17:41 -07:00
Adam Ierymenko
d57ea671d7
Add version to log.
2015-07-24 09:59:17 -07:00
Adam Ierymenko
d647a587a1
(1) Fix updating of network revision counter on member change.
...
(2) Go back to timestamp as certificate revision number. This is simpler
and more robust than using the network revision number for this and
forcing network revision fast-forward, which could cause some peers
to fall off the horizon when you don't want them to.
2015-07-23 17:18:20 -07:00
Adam Ierymenko
a493fc23f4
Fix for make-linux: detect whether CC/CXX were explicitly overridden, and if not then use the gcc/clang selection logic. Otherwise ?= breaks this.
2015-07-23 13:05:18 -07:00
Adam Ierymenko
b3516c599b
Add a rate limiting circuit breaker to the network controller to prevent flooding attacks and race conditions.
2015-07-23 10:10:17 -07:00
Adam Ierymenko
3ba54c7e35
Eliminate some poorly thought out optimizations from the netconf/controller interaction,
...
and go ahead and bump version to 1.0.4.
For a while in 1.0.3 -dev I was trying to optimize out repeated network controller
requests by using a ratcheting mechanism. If the client received a network config
that was indeed different from the one it had, it would respond by instantlly
requesting it again.
Not sure what I was thinking. It's fundamentally unsafe to respond to a message
with another message of the same type -- it risks a race condition. In this case
that's exactly what could happen.
It just isn't worth the added complexity to avoid a tiny, tiny amount of network
overhead, so I've taken this whole path out.
A few extra bytes every two minutes isn't worth fretting about, but as I recall
the reason for this optimization was to save CPU on the controller. This can be
achieved by just caching responses in memory *there* and serving those same
responses back out if they haven't changed.
I think I developed that 'ratcheting' stuff before I went full time on this. It's
hard to develop stuff like this without hours of sustained focus.
2015-07-23 09:50:10 -07:00
Nelson Chen
b41079ddf9
Update Application Mac Menu. Small MacGap leftover.
...
Hide ZeroTier One, not MacGap.
Just a papercut.
2015-07-22 22:40:43 -07:00
Adam Ierymenko
e2a2993b18
Add a Log table to log queries for debugging and security logging. No JSON API support for querying the log yet, but will probably come via /network/###/member/###/log/... or something.
2015-07-22 14:01:49 -07:00
Adam Ierymenko
8ca885d27c
Merge pull request #212 from keesbos/fix
...
Fix for output of empty (no members) network
2015-07-22 09:34:17 -07:00
Grant Limberg
bc0954381c
Merge branch 'adamierymenko-dev' into android-jni
2015-07-21 17:53:39 -07:00
Adam Ierymenko
7c761dea72
Fix to member listing: I wanted an object with member IDs as keys and member revisions as values, not an array.
2015-07-21 14:12:22 -07:00
Adam Ierymenko
3f8a5b8b76
List members in the form of a hash of member ID and member revision so code can quickly detect which members have changed.
2015-07-21 13:38:59 -07:00
Adam Ierymenko
a061aa3d87
Remove "members" from Network record and instead enumerate members via specific query to /network/nwid/member sub-path. More RESTful, scalable, and compatible with how OnePoint code works.
2015-07-21 12:57:01 -07:00
Adam Ierymenko
b343eac10d
Fix IP auto-assign bug due to missing subnet routes.
2015-07-21 12:42:43 -07:00
Adam Ierymenko
649a12472b
Report controllerInstanceId in all objects so that controller resets can be easily detected by whatever is using the service.
2015-07-21 10:39:29 -07:00
Grant Limberg
d05e8a9772
Merge branch 'adamierymenko-dev' into android-jni
2015-07-20 19:51:58 -07:00
Adam Ierymenko
cac6be87ba
Fix bug in rules JSON output.
2015-07-20 16:31:37 -07:00
Adam Ierymenko
38d34a7495
Proper handling of NULL entry for etherType in rules table.
2015-07-20 15:11:53 -07:00
Adam Ierymenko
fb4c3dd8d4
Fix string overwrite bug.
2015-07-20 14:31:33 -07:00
Adam Ierymenko
1ffd67e014
Get rid of false foreign key in Relay.
2015-07-20 14:28:30 -07:00
Adam Ierymenko
8c18c60c00
sp.
2015-07-17 15:30:13 -07:00
Adam Ierymenko
bca8886ff8
IP assignment pool range bug fix.
2015-07-17 15:09:28 -07:00
Adam Ierymenko
1f7bb67069
Fix some SQL and make instanceId more robustly random.
2015-07-17 13:09:53 -07:00
Adam Ierymenko
712e2785f2
Fix bad JSON in response.
2015-07-17 12:24:42 -07:00
Adam Ierymenko
5515909c1e
Add a concept of an "instanceId" to the controller, which the OnePoint can use to determine whether it is the same running database instance it already knows.
2015-07-17 10:47:21 -07:00
Grant Limberg
5ef806c43c
Fix addLocalInterfaceAddress call in OneService on Windows
2015-07-16 19:20:43 -07:00
Grant Limberg
1e8ead441c
Merge branch 'adamierymenko-dev' into android-jni
2015-07-16 18:09:57 -07:00
Adam Ierymenko
0db7c94c90
Add memberRevision stuff to JSON output, and update docs.
2015-07-16 17:42:47 -07:00
Adam Ierymenko
99969b186b
Add a concept of a member revision counter to networks. This can be used to select all members that have been added or changed since a given point.
2015-07-16 17:34:03 -07:00
Adam Ierymenko
f9f7de0ec7
Networks don't need their ID as a default name.
2015-07-14 15:54:56 -07:00
Adam Ierymenko
d27c14af48
Don't allow zero as a network number.
2015-07-14 12:32:57 -07:00
Adam Ierymenko
88949a750f
Workaround for uclibc missing map::operator==()
2015-07-13 11:39:55 -07:00
Adam Ierymenko
547b1c6157
Add additional TRACE output in pushDirectPaths.
2015-07-13 10:35:33 -07:00
Adam Ierymenko
0b354803f3
Clean up some YAGNI issues with implementation of GitHub issue #180 , and make best path choice aware of path rank.
2015-07-13 10:03:04 -07:00
Adam Ierymenko
0b9524f23d
Merge branch 'adamierymenko-dev' of http://git.int.zerotier.com/zerotier/zerotierone into adamierymenko-dev
2015-07-13 09:30:02 -07:00
Adam Ierymenko
4bf3bcbd55
Fixes to PUSH_DIRECT_PATHS.
2015-07-13 09:29:51 -07:00
Adam Ierymenko
3f0eca72f7
ZT_TRACE build fix.
2015-07-13 08:36:22 -07:00
Adam Ierymenko
fe20f0d7cd
Put back legacy code to listen for LAN announcements to support same network location with pre-1.0.4 clients.
2015-07-13 08:33:02 -07:00
Adam Ierymenko
d78e3bb307
Disable HTTP test in selftest since it works, and GitHub issue #207 .
2015-07-13 07:42:20 -07:00
Grant Limberg
e45475c5b5
fixed a misspelling
2015-07-09 20:26:23 -07:00
Grant Limberg
a408e5f685
set ZT_NO_TYPE_PUNNING and -O3 for Android builds
2015-07-08 18:00:13 -07:00
Grant Limberg
f67ddb579d
Merge branch 'adamierymenko-dev' into android-jni
2015-07-08 17:30:22 -07:00
Adam Ierymenko
a297e4a5bf
Add build def ZT_NO_TYPE_PUNNING, which when defined disables type punning code that might cause unaligned access errors on architectures that care (e.g. Android/ARM)
2015-07-08 09:12:51 -07:00
Grant Limberg
1ad2cfeedf
Merge branch 'adamierymenko-dev' into android-jni
2015-07-07 19:24:02 -07:00
Adam Ierymenko
412389ec75
Implement ERROR_UNWATNED_MULTICAST
2015-07-07 11:49:38 -07:00
Adam Ierymenko
cf6f30963c
Kill a potential source of type punning BUS errors on Android, and besides that hack probably did not improve performance at all given the short lenghts of things compared with secureEq()
2015-07-07 10:59:59 -07:00
Adam Ierymenko
3f567a07ca
Save a little bit of RAM by getting rid of overkill CMWC4096 non-crypto PRNG and replacing it with a simple non-crypto PRNG that just uses Salsa20.
2015-07-07 10:49:50 -07:00
Adam Ierymenko
41fc08b330
etherTypeName() is only used in Switch and only with ZT_TRACE
2015-07-07 10:06:05 -07:00
Adam Ierymenko
07ea4fd4f9
Fix potential bug in controller config request.
2015-07-07 10:02:48 -07:00
Adam Ierymenko
778c7e6e70
More cleanup to direct path push, comment fixes, etc.
2015-07-07 10:00:34 -07:00
Adam Ierymenko
c863ff3f02
A bunch of comments and cleanup, including some to yesterday's direct path pushing changes. Move path viability check to one place, and stop trying to use link-local addresses since they are not reliable.
2015-07-07 08:54:48 -07:00
Adam Ierymenko
f398952a6c
Revert some bad docs in Packet -- I think we will still use that. Also rename addMembershipCertificate to more security-descriptive validateAndAddMembershipCertificate, give it a return value, and drop unused force parameter.
2015-07-07 08:14:41 -07:00
Adam Ierymenko
56285ec0d4
Another attempt at a fix for all the Windows driver coma issues.
2015-07-06 17:58:04 -07:00
Adam Ierymenko
25a067c8c3
Eliminate debug printf().
2015-07-06 17:37:32 -07:00
Adam Ierymenko
91fa643131
Minor fix to Windows local adapter address enumeration.
2015-07-06 17:36:58 -07:00
Adam Ierymenko
6da9d2d36f
Remove debug printf().
2015-07-06 17:23:22 -07:00
Adam Ierymenko
f881cdd767
Add new .h file to VS build, and Windows side of local interface address enumeration.
2015-07-06 17:22:37 -07:00
Adam Ierymenko
84ba365c77
Fix bug in direct path push send.
2015-07-06 17:20:41 -07:00
Adam Ierymenko
f9f4dd5276
Fix FreeBSD regression -- gmake defaults g++ which does not exist.
2015-07-06 16:47:41 -07:00
Adam Ierymenko
cac55105c3
Fix a regression.
2015-07-06 16:40:23 -07:00
Adam Ierymenko
a87cd2d094
Unix side of local interface address awareness for GitHub issue #180 .
2015-07-06 16:32:34 -07:00
Adam Ierymenko
235f4762b7
Plumbing for local interface addresses -- GitHub issue #180
2015-07-06 15:51:04 -07:00
Adam Ierymenko
79e9a8bcc2
Almost everything for GitHub issue #180 except direct path map setup.
2015-07-06 15:28:48 -07:00
Adam Ierymenko
fad9dff2db
Almost all of GitHub issue #180
2015-07-06 15:05:04 -07:00
Adam Ierymenko
1632aec102
Check Network::isAllowed() always on multicast send.
2015-07-06 14:53:27 -07:00
Adam Ierymenko
255320e2a6
pushDirectPaths() implementation
2015-07-06 14:39:28 -07:00
Adam Ierymenko
93bb934d4e
Some cleanup, docs, and Path -> Path > RemotePath refactor.
2015-07-06 14:08:13 -07:00
Adam Ierymenko
feddd946f9
For curiosity add Salsa20/8 to benchmarks.
2015-07-06 13:51:25 -07:00
Adam Ierymenko
6bfbc43e3c
Include COM with EXT_FRAME in bridged case.
2015-07-06 12:46:27 -07:00
Adam Ierymenko
35b5dcf89d
Kill debug line.
2015-07-06 12:39:20 -07:00
Adam Ierymenko
9743db3538
docs
2015-07-06 12:37:37 -07:00
Adam Ierymenko
e5f7c55c54
Documentation in Packet, more work on path push, and clean up ancient legacy support code in Switch.
2015-07-06 12:34:35 -07:00
Adam Ierymenko
df08c2cfab
Merge pull request #203 from mwarning/loadlibs
...
rename LIBS to LDLIBS and make it accessible from outside
2015-07-06 09:01:38 -07:00
Moritz Warning
21cdfb96de
rename LIBS to LDLIBS and make it accessible from outside
2015-07-06 00:09:03 +02:00
Kees Bos
53c7f61f98
Fix for output of empty (no members) network
2015-07-05 13:27:27 +02:00
Grant Limberg
6d398beefd
Merge branch 'adamierymenko-dev' into android-jni
2015-07-03 18:15:56 -07:00
Grant Limberg
ab34884e3e
Set -O0
...
anything above that currently goes kaboom on ARM platforms
2015-07-03 18:14:50 -07:00
Adam Ierymenko
532f413472
Merge pull request #202 from mwarning/openwrt
...
allow environment variables to set/extend build variables
2015-07-03 14:28:53 -07:00
Moritz Warning
235d4aba9a
allow environment variables to set/extend CC, CXX, CFLAGS and LDFLAGS
2015-07-03 23:21:23 +02:00
Adam Ierymenko
cfdf4e3a49
GitHub issue #171 -- separate CFLAGS and CXXFLAGS in Linux makefile
2015-07-02 09:13:56 -07:00
Adam Ierymenko
f19c3c51d3
Revert slow non-SSE Salsa20 modification since it did not fix Android/ARM issue. Also update Salsa20 comments and clean up a bit.
2015-07-02 09:00:00 -07:00
Grant Limberg
0b7cd2f40a
change some build settings. add a lock
2015-07-01 20:26:14 -07:00
Grant Limberg
2a2e3b80b3
Merge branch 'adamierymenko-dev' into android-jni
2015-07-01 18:13:59 -07:00
Grant Limberg
f803dd5ff4
...
2015-07-01 18:13:39 -07:00
Adam Ierymenko
7c9949eea3
For @glimberg -- a *possible* fix to the alignment headaches on Android/ARM. If this works we should find a define that can be used to enable it there since it will slow things down on non-x86 other architectures.
2015-07-01 12:29:23 -07:00
Grant Limberg
d853dbf2d8
Merge branch 'adamierymenko-dev' into android-jni
2015-06-30 19:23:23 -07:00
Grant Limberg
aee8e95d49
logging
2015-06-30 19:21:46 -07:00
Adam Ierymenko
0cbbcf2884
Rename VERB_CMA to the more descriptive VERB_PHYSICAL_ADDRESS_PUSH
2015-06-29 16:01:01 -07:00
Adam Ierymenko
30e4a188d0
ipLocalRoutes now exposed via network objects in JSON controller API, and documentation changes.
2015-06-29 15:34:26 -07:00
Adam Ierymenko
5c9411a671
Untested -- modifications to support IP ranges instead of ip/mask for IP assignment pools, also add portId to Rule for future use.
2015-06-29 14:52:09 -07:00
Adam Ierymenko
48a2ad032a
(1) Both nodeId and portId in Rule can be NULL, (2) remove on delete cascade since rules should never mysteriously disappear from the rules table. If it let you delete a node with rules, that would be a UI or cleanup function bug.
2015-06-29 10:47:47 -07:00
Adam Ierymenko
f05e62deae
DB schema changes: separate portId in rules, ranges in IP assignment pools. (No code changes yet so code is broken.)
2015-06-29 10:40:31 -07:00
Adam Ierymenko
dbee1b38b3
Fix semantics of std::unique() to actually remove duplicates (hidden memory leak?)
2015-06-29 10:21:28 -07:00
Grant Limberg
c9919cc5ba
reflect changes to ZT1_PeerRole in JNI
2015-06-26 18:26:57 -07:00
Grant Limberg
9c26d10ea6
Merge branch 'adamierymenko-dev' into android-jni
2015-06-26 17:44:09 -07:00
Adam Ierymenko
3f71afd0fb
Put multicast txQueue back to list.
2015-06-26 14:26:35 -07:00
Adam Ierymenko
221df51875
Add Kees Bos to AUTHORS :)
2015-06-26 13:04:52 -07:00
Adam Ierymenko
f33f3fcb72
Merge pull request #196 from keesbos/fixes
...
Fixes for controller
2015-06-26 13:02:33 -07:00
Adam Ierymenko
57c7992c78
GitHub issue #191 - kill intra-network multicast rate limits (which were not well supported or easily configurable anyway) -- this is really left over from the old collaborative multicast propagation algorithm. New algorithm (in for a while) has been sender-side replication in which sender "pays" all bandwidth, which intrinsically limits multicast.
2015-06-26 12:36:45 -07:00
Adam Ierymenko
c287ae4d1d
Redo conversion of _networks to a vector. Just use a simple linear search and put the nwid in a pair with the pointer so linear search can be done without pointer chasing. This should be the fastest option for anything less than dozens of networks, and should save memory over the old map.
2015-06-26 11:38:31 -07:00
Kees Bos
3eca5d9c29
Fix reporting of ipAssignments for ipv4
2015-06-26 07:22:30 +02:00
Kees Bos
8a68624dae
Fix cert verification check for self signed signatures
2015-06-26 07:22:13 +02:00
Grant Limberg
bfb152f53f
configure the NDK to build all supported ABIs and package them up in the jar
2015-06-24 20:31:22 -07:00
Grant Limberg
759d71037e
added Comparable interface to VirtualNetworkConfig so we can sort arrays containing it.
2015-06-23 23:03:02 -07:00
Adam Ierymenko
daebce4994
Merge pull request #192 from mwarning/replace_erase
...
replace vector::erase, was missed in a previous commit (ref #186 )
2015-06-23 11:13:20 -07:00
Moritz Warning
def9cf2a6a
replace vector::erase, was missed in a previous commit (ref #186 )
2015-06-23 00:09:15 +02:00
Adam Ierymenko
4aa8449fe1
Merge branch '_networks_vector' of https://github.com/mwarning/ZeroTierOne into adamierymenko-dev
2015-06-22 10:34:55 -07:00
Adam Ierymenko
53aad7f6bd
Merge pull request #189 from keesbos/bugfix-auth-member
...
Fixed member authorization bug and minor cleanup
2015-06-22 10:17:14 -07:00
Moritz Warning
787608b568
use _network function to reduce source code complexity
2015-06-20 16:34:19 +02:00
Moritz Warning
2b04ac5e9b
replace _networks map by vector
...
_networks is usually quite small, using binary search on a vector might be faster comapred to std::map.
This is especially true when using uClibc++, which uses a list.
2015-06-20 16:25:21 +02:00
Grant Limberg
adf89901c4
dont consider multicast groups in VirtualNetworkConfig.equals()
2015-06-19 19:00:06 -07:00
Kees Bos
50d4f66d73
Fixed member authorization bug and minor cleanup
2015-06-19 21:19:42 +02:00
Adam Ierymenko
7bae95836c
Root server terminology cleanup, and tighten up a security check by checking full identity of peers instead of just address.
2015-06-19 10:23:25 -07:00
Adam Ierymenko
07f84a99b4
Rebuild properly signed root topology after supernode -> rootserver name change.
2015-06-19 09:52:45 -07:00
Adam Ierymenko
f89f02ce9e
Merge pull request #187 from keesbos/fix-ipv4-assignment
...
Fix for ipv4 assignment
2015-06-19 09:08:06 -07:00
Adam Ierymenko
be4f08a548
Merge pull request #186 from mwarning/txQueue_vector
...
replace txQueue list by vector for faster memory access and less allo…
2015-06-18 15:42:12 -07:00
Moritz Warning
0073d0f694
replace txQueue list by vector for faster memory access and less allocations
2015-06-19 00:28:51 +02:00
Kees Bos
16eae132fa
Fix for ipv4 assignment
2015-06-18 19:14:52 +02:00
Adam Ierymenko
6fc150bddb
Move js/ to ZeroTierIntegrations project.
2015-06-18 08:01:28 -07:00
Grant Limberg
dfdd46db80
Merge branch 'adamierymenko-dev' into android-jni
2015-06-17 18:42:23 -07:00
Adam Ierymenko
87bb0086de
Almost certain fix for GitHub issue #184 on -dev
2015-06-17 12:46:12 -07:00
Adam Ierymenko
1d0654bd14
Merge pull request #182 from keesbos/rootserver
...
Renamed supernode to rootserver
2015-06-16 13:50:29 -07:00
Adam Ierymenko
463442eb6f
Merge pull request #181 from keesbos/bugfix
...
Bugfixes
2015-06-16 13:50:13 -07:00
Kees Bos
4affa10ca0
Fix 404 on creation of new network
2015-06-15 10:29:12 +02:00
Kees Bos
2e1d363a86
Removed a superfluous cross join
2015-06-15 03:19:25 +02:00
Kees Bos
1cbdae65fe
Fix controller/network/*/member/*
...
Cross join works other than expected or something changed. The
_sGetMember2 returned too many rows. Replaced it with an explicit
join statement.
2015-06-15 03:19:25 +02:00
Kees Bos
dcbae5f313
Bugfix controller get member info
2015-06-15 03:19:25 +02:00
Grant Limberg
c59c74ddda
Merge branch 'adamierymenko-dev' into android-jni
2015-06-13 14:39:45 -07:00
Grant Limberg
abbcb0a12c
Modified ant build script so that it can be integrated with Android Studio's build system
2015-06-13 14:38:04 -07:00
Adam Ierymenko
845955dea5
Add definition for VERB_CMA -- GitHub issue #180
2015-06-13 18:08:00 +02:00
Adam Ierymenko
8aa68cd5f1
Add new fields in operator==
2015-06-13 13:13:19 +02:00
Adam Ierymenko
edbc5d3588
Gateways support in NetworkConfig object.
2015-06-13 13:06:49 +02:00
Adam Ierymenko
96a58becf8
Gateways support in network controller schema and database (not implemented yet in client) toward GitHub issue #178
2015-06-13 11:34:31 +02:00
Adam Ierymenko
8a9715f183
Rename ruleId to ruleNo and optimize some indexes in Sqlite3 schema.
2015-06-13 10:05:34 +02:00
Adam Ierymenko
1b122cddbd
Merge pull request #179 from keesbos/bugfix
...
Pickup return code from handleControlPlaneHttpGET and handleControlPlaneHttpPOST
2015-06-13 09:37:00 +02:00
Kees Bos
42390e662b
Pickup return code from handleControlPlaneHttpGET and handleControlPlaneHttpPOST
2015-06-13 03:14:06 +02:00
Adam Ierymenko
494681a482
This might be a final fix for GitHub issue #173 and possibly others: ACTIVELY detect borked port status on Windows and if any "cable unplugged" or other wacky states are detected whack the adapter (close and reopen). Tested adding a whole bunch of windows networks, removing, adding more, etc. and it seems to work very well!
2015-06-12 16:02:04 +02:00
Adam Ierymenko
dbf40f30f9
Merge pull request #177 from keesbos/linux-ui
...
Linux ui
2015-06-12 13:49:45 +02:00
Kees Bos
dc50e8ae5b
Add ui to /var/lib/zerotier (linux installer)
2015-06-11 17:56:54 +02:00
Kees Bos
7a55c6b388
Return 404 on delete if network member is missing (controller)
2015-06-11 12:20:52 +02:00
Kees Bos
c2ce018202
Return 404 on delete if network doesn't exist (controller)
2015-06-11 12:10:25 +02:00
Kees Bos
0d0af07ce9
Get deletion of networks in controller going
...
Multiple statements in a sqlite3_prepare_v2 is not usable. Only
the first statement will be executed.
Since the schema now uses 'ON DELETE CASCADE', there's only
one statement needed.
If multiple statements are needed, there should be either multiple
sqlite3_prepare_v2 calls be used or the sqlite3_exec function.
2015-06-11 11:49:13 +02:00
Kees Bos
de697a1c45
Change schema to enforce foreing keys
...
The foreign keys have 'ON DELETE CASCADE' to simplify the removal
of networks etc. (controller code)
Some unique constraints are replaced with a multi column primary
key.
To update an existing database:
* install updated binaries
* stop service
* sqlite3 controller.db .dump | \
egrep '((^PRAGMA)|(^BEGIN)|(^INSERT)|(^COMMIT))' | \
grep -v 'schemaVersion' > data.sql
* mv controller.db controller.db.backup
* start service
* stop service
* sqlite3 controller.db < data.sql
* start service
2015-06-11 11:35:25 +02:00
Grant Limberg
472206dfb2
Rename JniCache to JniLookup
...
Removed caching capabilities as the cached methods, fields, and objects appears to be broken on Android
2015-06-10 20:16:13 -07:00
Grant Limberg
7e84f5a7db
killing whitespace
2015-06-09 23:24:54 -07:00
Grant Limberg
6889fcfc28
Looks like it was the JNI cash causing the crash.
...
Forcing it to look up classes and methods instead of caching them stopped the crashes in the GC. Will investigate more later.
2015-06-09 23:24:47 -07:00
Grant Limberg
4dc0ff8f13
Replace calls to Get<Type>ArrayElements with GetPrimitiveArrayCritical.
...
This puts code accessing the data in a critical section so that the GC cannot run while JNI has access to the array. This helps with stability somewhat, but I'm still getting some crashes in the GC
2015-06-09 23:12:44 -07:00
Grant Limberg
3013d90f57
ignore windows binary output
2015-06-09 22:38:31 -07:00
Grant Limberg
60da0e6cae
Merge branch 'adamierymenko-dev' into android-jni
2015-06-09 19:38:47 -07:00
Grant Limberg
ced040c503
Logging and adding .equals() methods to MulticastGroup and VirtualNetworkCofnig
2015-06-09 19:38:05 -07:00
Adam Ierymenko
00aa115898
Allow double-close just in case in Phy<>
2015-06-09 16:30:44 +02:00
Adam Ierymenko
17ca5be4c1
Rework Phy<> to clean up _socks entries only in poll() to fix instability in proxy.
2015-06-09 16:27:11 +02:00
Adam Ierymenko
ab720a6f1e
Fix for poll() in Phy<> with no sockets open. Only affects tcp-proxy.
2015-06-05 13:48:33 -07:00
Adam Ierymenko
e5e11c1b24
Update AUTHORS, change to MarkDown.
2015-06-04 11:58:49 -07:00
Grant Limberg
7cc64c5cb6
Might help to set the enabled field on a VirtualNetworkConfig object :)
2015-06-03 21:29:19 -07:00
Grant Limberg
b84dba3ecb
more logging
2015-06-03 21:29:07 -07:00
Adam Ierymenko
bd7e4ab695
VERSION 1.0.3: public preview release
...
After many months of intense development, ZeroTier is proud to release version
1.0.3 of ZeroTier One.
This version focuses on under-the-hood and network level improvements to
prepare the way for more user-facing improvements in the months to come, as
well as new products built around the ZeroTier core.
1.0.3 contains a large number of changes, so we're not going to push it out
via our auto-update mechanism yet. We're going to update the download links
on the web site and let users try it out for a while first. If problems are
found, we'll do a 1.0.4 before we push it out to existing installations.
--
Important note for Linux users: we've decided to stop pushing auto-updates for
Linux, and this version's official Linux binaries are built without update
checking enabled. Linux is used mostly on servers, and based on user feedback
we've found that most users don't like anything auto-updating outside of the
normal package management channels. Instead, we'll be working over the next
few months to get ZeroTier One included in a number of upstream Linux
distributions. That way you'll be able to 'apt-get' or 'yum' install it and
stay up to date that way. Auto-updates will remain for Macintosh and Windows
users until/unless we can move to 'app store' deployment on those platforms.
--
Now for the change list. It's a big one!
NEW FEATURES and IMPROVEMENTS
* Client support is in place for preferred relays on a per-network basis.
This allows you to define statically assigned nodes that act as relays for
indirect communication and connection setup for communication between peers
on a given virtual network. If defined, they'll be used in preference to
supernodes for this purpose. If they're offline, ZeroTier will fall back to
global supernodes. This will require support on the web control panel for
most users to use.
* This version sends NAT "keepalive" packets every 20 seconds, which is
similar to the behavior of most SIP phones. This should improve reliability
behind NATs with short timeouts and certain cheap consumer NAT devices.
* Improvements have been made to NAT traversal to traverse more symmetric
NAT configurations, and to rate limit traversal attempts to avoid looking
like a port scan.
* New direct paths are now confirmed prior to use. This should improve
reliability in cases where a NAT traversal attempt "half succeeds" by
preventing the use of direct links that aren't actually usable.
* A new geo-located TCP tunneling fallback implementation should improve
performance for heavily firewalled users who can't use UDP.
* ZeroTier now uses remotely reported accounts of your external IP address
to detect changes in your network connectivity instead of relying on
"fingerprinting" of the OS-level local network environment. This should
improve reliability in cases where external routers have dynamic IPs or
when changing between networks with different external IPs but similar
internal addressing schemes. This should also improve reliability for
use within virtual machines, since the external link address might change
but the VM's link addresses will not.
* We've eliminated the old Unix domain socket (or named pipe on Windows)
control bus in favor of a local HTTP JSON API. It runs on 127.0.0.1
port 9993 and can be accessed via standard HTTP. This improves
interoperability with scripts and other tools and allows us to use
HTML5 for the desktop UI component. See README.md in the service/
subfolder of the source tree for JSON API documentation.
* The old Qt GUI has been dropped in favor of a React-based HTML5 UI. The
code for this is found in ui/, and if ui/ is present in the ZeroTier
home folder the JSON API HTTP server will serve it on 127.0.0.1/9993.
The Windows and Mac UIs are now web control wrappers which access this
UI locally and automate the process of token lookup and login.
PACKAGING / INSTALLATION IMPROVEMENTS
* The Macintosh version is now packaged as a .pkg file instead of the old
.app that would download its components and bootstrap itself. Several
Mac users had problems with this, so we made it a package instead.
* The Windows installer now includes a cleaner driver installation module
that installs the driver as part of the main MSI file instead of spawning
a subprocess.
BUG FIXES
* Windows now comes with an updated NDIS6 Ethernet tap device driver.
If you still have the old NDIS5 driver installed you'll keep using it,
so if you want to switch to the NDIS6 driver uninstall your old version
and do a fresh install of the new one. NDIS5 is deprecated, so we are
hoping an NDIS6 driver will fix a number of difficult to reproduce
issues that some Windows users have reported. It will also likely
improve performance.
* Fixed a "pseudo" memory leak related to the old auto-update code. The
amount of "committed" (but not used) memory would increase over time.
Since this was not actual used memory it didn't cause real problems,
but the issue is gone now.
* A very rare threading deadlock was fixed.
* Fix for Linux installer that would falsely recognize systemd on some
Ubuntu systems.
DEEP UNDER THE HOOD
* This version has been heavily refactored at the source code level! The
node/ subfolder now contains the core ZeroTier network virtualization
engine without any OS-specific or transport-specific code. This is in
preparation for future plans around embedded devices, etc. There is now
a public C-level API in include/ZeroTierOne.h that defines an interface
to the node core.
* A new network controller implementation is in 1.0.3 based on SQLite and
the local JSON API control bus. IT HAS NOT BEEN HEAVILY TESTED YET, so we
do not recommend using it in production until the next version. You are
welcome to experiment with it.
2015-06-03 19:34:00 -07:00
Adam Ierymenko
ee1a008f2d
Product code for 1.0.3 etc.
2015-06-03 18:53:54 -07:00
Grant Limberg
8fb9df9751
delete dead test code
2015-06-03 18:35:38 -07:00
Adam Ierymenko
4c687fca45
No auto-updates on BSD either.
2015-06-03 18:13:42 -07:00
Adam Ierymenko
753a80d419
Linux auto-update is going away.
2015-06-03 17:53:21 -07:00
Adam Ierymenko
7213a6cf0b
Make max HTTP message size (max update size) larger since Windows MSI is about 8MB already.
2015-06-03 17:20:30 -07:00
Adam Ierymenko
9b0c8965bb
Make status line in UI show "TUNNELED" if slow TCP tunneling mode is active.
2015-06-03 16:47:07 -07:00
Adam Ierymenko
7e647c5303
NOHUP-ify the child process on OSX auto-update.
2015-06-03 16:37:24 -07:00
Adam Ierymenko
fe87136870
Auto-update fix -- signature is in hex.
2015-06-03 16:25:16 -07:00
Adam Ierymenko
b897ec1efd
Put version back to 1.0.3.
2015-06-03 16:19:44 -07:00
Adam Ierymenko
6a11c76248
Temporarily bump version to fake 1.0.99 to test auto-update within network.
2015-06-03 16:09:56 -07:00
Adam Ierymenko
3512402558
OSX .pkg files must be signed with productsign and an installer cert.
2015-06-02 19:17:39 -07:00
Adam Ierymenko
4fe12756d4
Get rid of "autoupdating" in Linux package names.
2015-06-02 17:14:18 -07:00
Adam Ierymenko
bf415bdeb9
docs
2015-06-02 17:05:31 -07:00
Adam Ierymenko
c5a3e80113
Linux installer tweaks, and Mac updater tweak.
2015-06-02 16:54:27 -07:00
Adam Ierymenko
806ea79f37
docs
2015-06-02 16:44:43 -07:00
Adam Ierymenko
cd58614c23
docs
2015-06-02 16:42:31 -07:00
Adam Ierymenko
0b68344fc8
docs
2015-06-02 16:41:57 -07:00
Adam Ierymenko
191b8f8164
docs
2015-06-02 16:39:21 -07:00
Adam Ierymenko
29e3437350
gcc not g++ for CC
2015-06-02 16:30:42 -07:00
Adam Ierymenko
65999611d7
Eliminate "which" dependency in Linux makefile.
2015-06-02 16:29:23 -07:00
Adam Ierymenko
9d49e8f237
docs
2015-06-02 16:24:44 -07:00
Adam Ierymenko
855d893c67
docs
2015-06-02 16:23:43 -07:00
Adam Ierymenko
a2690047bb
docs
2015-06-02 16:16:14 -07:00
Adam Ierymenko
648efff1f6
Delete merge temp file.
2015-06-02 12:50:32 -07:00
Adam Ierymenko
3d6c1860ca
Merge branch 'adamierymenko-dev' into android-jni
2015-06-02 12:49:36 -07:00
Adam Ierymenko
f0be5e814e
Merge organized .gitignore
2015-06-02 12:49:32 -07:00
Adam Ierymenko
79efceb57b
Organize .gitignore and merge stuff from Android-JNI branch.
2015-06-02 12:48:59 -07:00
Adam Ierymenko
b8f40c0b91
Yet another /Users/api path in packages script.
2015-06-02 12:01:00 -07:00
Adam Ierymenko
97dd8d864f
Fix paths again in Mac pkg build.
2015-06-02 11:59:05 -07:00
Adam Ierymenko
1afd02df54
Path fix in Packages build file for Mac
2015-06-02 11:47:32 -07:00
Grant Limberg
fb0bf52b1b
Fixed sending a port number of 0 to ZT1.
...
Fixed VirtualNetworkConfigFunction (creating array to send to Java)
Fixed the creating InetAddress instead of InetSocketAddress in virtual network config callback
2015-06-01 20:03:28 -07:00
Grant Limberg
74f7d5377d
Enable ZT_TRACE and more verbose build output
2015-06-01 20:01:37 -07:00
Adam Ierymenko
a9a390a930
Apply @marning suggested SSE auto-detect to make builds easier on non-x86 platforms: https://github.com/mwarning/ZeroTierOne/commit/aa2fd044cb69b97eef1ea38d5fefd18543aae22a
2015-06-01 19:43:06 -07:00
Adam Ierymenko
d7344871e6
Linux build fix.
2015-06-01 19:27:53 -07:00
Adam Ierymenko
aab17d9f1f
Kill obsolete amSupernode method -- we now have no differing behaviors.
2015-06-01 19:18:26 -07:00
Adam Ierymenko
ecb6a1d84f
docs
2015-06-01 19:12:20 -07:00
Adam Ierymenko
5341e32729
Fix to GitHub issue #140 -- network preferred relays. Also go ahead and allow RENDEZVOUS from regular peers.
2015-06-01 19:05:27 -07:00
Adam Ierymenko
960ceb4791
Rest of GitHub issue #140 implementation.
2015-06-01 17:50:44 -07:00
Adam Ierymenko
318c2f025b
Call it _relays since there might be other kinds later.
2015-06-01 17:09:37 -07:00
Adam Ierymenko
5bc89034bc
Always ping / contact network preferred relays (if any).
2015-06-01 16:53:58 -07:00
Adam Ierymenko
229195166a
Add BackgroundResolver to Windows build.
2015-06-01 16:06:50 -07:00
Adam Ierymenko
b3b9af0dd8
Fix for GitHub issue #170
2015-06-01 11:56:15 -07:00
Grant Limberg
5015c0ae78
more logging
2015-05-28 21:03:37 -07:00
Grant Limberg
b6196a53de
Fix DataStoreGetFunction.
2015-05-28 20:37:16 -07:00
Grant Limberg
58ca657da6
Use object arrays rather than ArrayList. JNI side
2015-05-28 20:36:54 -07:00
Grant Limberg
7822616966
Replace ArrayList instances with []
2015-05-28 20:01:30 -07:00
Grant Limberg
e3feac17b1
Merge branch 'adamierymenko-dev' into android-jni
2015-05-27 20:43:30 -07:00
Grant Limberg
4c680e3126
LOTS more error checking and logging.
...
Running into a wall attempting to add items to an ArrayList from the JNI side
2015-05-27 20:42:54 -07:00
Adam Ierymenko
ea419c21d0
Fix installer path, add netconf option to make-linux.
2015-05-28 03:13:23 +00:00
Adam Ierymenko
502cd6921f
Fix for GitHub issue #133 , and move restart out of installer to address restart problem. Installer probably should NOT mess with the running service, since Linux servers are likely to be production.
2015-05-27 13:50:11 -07:00
Grant Limberg
09631ad382
fix datastore get call in JNI
...
Just delete the local reference rather than do an array delete. Array delete was causing a crash on loading network config files. Deleting the local ref works fine, though, as it still lets the JVM garbage collecter know that the native code is done with the array
2015-05-26 21:32:56 -07:00
Grant Limberg
2d67196667
added the android verbose log level and moved most jni debug messages to verbose
2015-05-26 21:31:34 -07:00
Grant Limberg
9755dad7ff
add a missing break from a switch
2015-05-26 21:30:33 -07:00
Grant Limberg
adaf9cf32b
still getting re-used to all the places you have to put access modifiers in Java
2015-05-26 20:03:47 -07:00
Grant Limberg
703c311e07
Merge branch 'adamierymenko-dev' into android-jni
2015-05-26 19:17:29 -07:00
Adam Ierymenko
e184aa4cb4
Clean old netconf-service from attic.
2015-05-26 18:16:12 -07:00
Adam Ierymenko
fbb990f8a3
Mac uninstall.sh update.
2015-05-26 14:36:04 -07:00
Adam Ierymenko
ff2272d59a
Delete some temporary code.
2015-05-26 13:34:08 -07:00
Adam Ierymenko
c075e68c6c
More work on ZT1 NodeJS API client library.
2015-05-26 13:32:47 -07:00
Adam Ierymenko
ecb1ee8e0d
Renaming...
2015-05-26 09:03:39 -07:00
Adam Ierymenko
ba7809367a
JS stuff reorg.
2015-05-26 09:01:58 -07:00
Adam Ierymenko
5e3c6d9e0d
Some nodeJS work, and apply fix from GitHub issue #166 plus a small optimization to avoid repeated calls to _allMulticastGroups().
2015-05-25 14:21:05 -07:00
Adam Ierymenko
d8ad555b9a
Go ahead and add flags and invFlags to the Rule table.
2015-05-25 13:20:10 -07:00
Adam Ierymenko
d29f2ce858
Clean up attic/
2015-05-25 11:55:27 -07:00
Adam Ierymenko
af1d29cc6f
Remove obsolete method.
2015-05-25 11:54:32 -07:00
Adam Ierymenko
91f02d699e
Right now only FreeBSD can use BSDEthernetTap, which will probably get renamed accordingly. NetBSD and OpenBSD do not support tap, only tun, so they will have to wait.
2015-05-25 11:11:37 -07:00
Grant Limberg
6e998efd15
fixing up data store stuff
2015-05-23 18:29:16 -07:00
Grant Limberg
5c2aaad365
Merge branch 'adamierymenko-dev' into android-jni
2015-05-23 13:34:21 -07:00
Adam Ierymenko
d8783b14eb
Build fix.
2015-05-22 15:46:06 -07:00
Adam Ierymenko
6867922d9e
typo
2015-05-22 15:33:33 -07:00
Adam Ierymenko
9774f789f2
TCP fallback tunneling is now working. That hurt more than expected.
2015-05-22 14:52:23 -07:00
Adam Ierymenko
cdec05af24
One second delay between NAT-t events.
2015-05-22 13:12:14 -07:00
Adam Ierymenko
196f27f1f0
Add delay to NAT-t escalation stuff to try to address GitHub issue #167
2015-05-22 13:11:55 -07:00
Adam Ierymenko
b388d9fdc9
TCP proxy should actually bind to its TCP port. Seems like a good idea.
2015-05-22 10:14:44 -07:00
Grant Limberg
1e043a3f66
Remove link desperation from java API
2015-05-21 19:34:19 -07:00
Grant Limberg
c430d88bd4
Merge branch 'adamierymenko-dev' into android-jni
...
Conflicts:
.gitignore
2015-05-21 19:14:49 -07:00
Adam Ierymenko
50aedda54d
Basic TCP fallback -- now to test.
2015-05-21 18:33:52 -07:00
Adam Ierymenko
d9006712f6
Completely factor out "desperation" from the core. I thought of a significantly simpler way to move all of this logic entirely into the containing service, liberating the core from any concern over the nature of its pipe to the outside world.
2015-05-21 15:58:26 -07:00
Adam Ierymenko
123ff28863
Build fix.
2015-05-21 15:24:58 -07:00
Adam Ierymenko
0f7dcb3ef2
Add some proxy debugging, and auto-resolve and periodically re-resolve TCP fallback tunnel hostname.
2015-05-21 15:22:41 -07:00
Adam Ierymenko
61021fc778
BackgroundResolver test.
2015-05-21 14:11:44 -07:00
Adam Ierymenko
2ad69237cf
Background resolver.
2015-05-21 13:44:33 -07:00
Adam Ierymenko
82f6b3f550
Clean old update code out of Windows service wrapper.
2015-05-20 20:21:20 -07:00
Adam Ierymenko
905d2e91e5
Windows auto-update integration into OneService.
2015-05-20 20:17:56 -07:00
Adam Ierymenko
1213073916
Apple auto-update stuff, now for Windows.
2015-05-20 19:38:49 -07:00
Adam Ierymenko
b6698d8415
Ground work for reincorporating software updater for select platforms.
2015-05-20 16:35:33 -07:00
Adam Ierymenko
e285a6e75f
.
2015-05-20 15:20:05 -07:00
Adam Ierymenko
6fc090eb00
Don't actually "power cycle" the interface except on startup. Doing that after we're running could lose IP configuration.
2015-05-20 14:21:14 -07:00
Adam Ierymenko
0caac25d28
.
2015-05-19 20:13:19 -07:00
Adam Ierymenko
dd70188643
Make tap driver even more defensive... seems to maybe fix the new network problem. Have to test a bit more.
2015-05-19 18:40:34 -07:00
Adam Ierymenko
c7eb5f0c81
Windows build warning removal, be more defensive in Windows tap driver code, and clean up service start/stop in installer.
2015-05-19 18:13:20 -07:00
Adam Ierymenko
68cb7ad4cd
Few more fixes to installer firewall rule settings.
2015-05-19 16:31:00 -07:00
Adam Ierymenko
9682f50b15
Get rid of old _winPokeAHole() hack in one.cpp and use Advanced Installer to configure firewall rules (because we can now).
2015-05-19 16:26:41 -07:00
Adam Ierymenko
63cea7d337
Try to automatically enable access to http://127.0.0.1 in web wrapper if IE is in enhanced security mode.
2015-05-19 16:02:26 -07:00
Adam Ierymenko
44d1bd14bd
Enable right-click menu for copy/paste/etc. in Windows UI wrapper.
2015-05-19 14:48:57 -07:00
Adam Ierymenko
b4a34cc105
Add 32-bit chained MSI for NDIS6 driver... now to go test on 32-bit Windows (clean). (And Windows 10, and Windows Server, and ...)
2015-05-19 13:01:55 -07:00
Adam Ierymenko
32588b3d84
A visit to the Windows house of pain:
...
(1) Yes, you *can* create a mixed 32/64 bit Windows MSI installer that installs drivers. All you have to do is... umm... create individual sub-MSI files for each driver (one for 32, one for 64) and then package those in the main MSI files as "chained" MSI installers. Each of these must only be considered a prerequisite on 32 or 64 bit machines, respectively.
(2) Upgrade Advanced Installer version, add rules to uninstall NDIS6 tap device on uninstall.
(3) Fix IE issue in UI code.
2015-05-18 20:30:54 -07:00
Adam Ierymenko
992438f054
Confirm leaving networks.
2015-05-18 16:02:37 -07:00
Adam Ierymenko
8c7a4efe1a
Small cosmetic fix to bottom bar.
2015-05-18 15:56:18 -07:00
Adam Ierymenko
e0313455e7
Hide unneeded menus in MacGap.
2015-05-18 15:53:49 -07:00
Adam Ierymenko
ac629150ac
Create symlinks in Mac postinst script.
2015-05-17 21:26:38 -07:00
Adam Ierymenko
89027d78ac
Mac .pkg building using Packages (third party app) instead of old bootstrapping .app and installer script.
2015-05-17 21:24:02 -07:00
Adam Ierymenko
f48509d50c
Mac script to get HTTP proxy settings -- will be used by Mac updater.
2015-05-17 20:28:09 -07:00
Adam Ierymenko
c76217c2d4
Delete old UI code -- officially dead.
2015-05-17 19:50:19 -07:00
Adam Ierymenko
2d700f644b
Add signed binary build of Mac GUI wrapper.
2015-05-17 19:48:21 -07:00
Adam Ierymenko
c76b9d1340
Respect user home directory copies of authtoken.secret or ~/.zeroTierOneAuthToken in CLI like we do in GUI wrappers.
2015-05-17 19:13:22 -07:00
Adam Ierymenko
0e87002d78
BSDEthernetTap build fixes.
2015-05-17 18:31:41 -07:00
Adam Ierymenko
ddaf3ef347
Bring BSDEthernetTap into the current century.
2015-05-17 18:28:04 -07:00
Adam Ierymenko
2810cd7c15
Build fixes for G++, building without SQLite3 present, and warning removal.
2015-05-17 23:56:47 +00:00
Adam Ierymenko
0af18b164c
/var/db is for all of xBSD
2015-05-17 16:06:29 -07:00
Adam Ierymenko
086f21ed70
Refactor and simplify controller integration with JSON API and OneService.
2015-05-17 15:51:07 -07:00
Adam Ierymenko
7649d6746b
docs
2015-05-17 15:38:01 -07:00
Adam Ierymenko
0e00981059
docs
2015-05-17 14:01:25 -07:00
Adam Ierymenko
d41b6eb0c8
docs
2015-05-17 10:14:12 -07:00
Adam Ierymenko
651e67f2e5
Add a feature to generate a new network ID on POST.
2015-05-17 09:36:35 -07:00
Adam Ierymenko
e0090e56f4
Build fix on OSX -- cannot call SqliteNetworkController if not compiled in.
2015-05-16 18:59:11 -07:00
Grant Limberg
9a00366b18
Merge branch 'adamierymenko-dev' into android-jni
2015-05-16 18:55:19 -07:00
Adam Ierymenko
69ceb7e730
Basic controller JSON API seems to be working.
2015-05-16 17:12:29 -07:00
Adam Ierymenko
cf51961d52
.
2015-05-16 16:32:13 -07:00
Adam Ierymenko
c9fd8de007
.
2015-05-16 16:22:38 -07:00
Adam Ierymenko
a187d290f1
Fixes to control plane, API, eliminate problematic inheritance pattern, and start on a NodeJS class for talking to the network controller.
2015-05-16 16:09:28 -07:00
Adam Ierymenko
27c5f04d68
Add -U option to skip root check and permit run as non-privileged user.
2015-05-16 14:52:09 -07:00
Grant Limberg
d0935f667f
Merge branch 'adamierymenko-dev' into android-jni
2015-05-16 14:35:35 -07:00
Adam Ierymenko
4be4908914
Fix some prepared statement problems.
2015-05-16 14:34:51 -07:00
Adam Ierymenko
38243e5eff
OSX build fix
2015-05-16 14:07:15 -07:00
Adam Ierymenko
0bb92715f4
DELETE function in network controller JSON API, and a newIdentity convenience request in ControlPlane for scripted testing.
2015-05-16 13:42:53 -07:00
Adam Ierymenko
78769900a9
More network controller cleanup, and some features to permit scripted testing.
2015-05-16 12:50:42 -07:00
Adam Ierymenko
65a9a9a6f2
typo
2015-05-15 15:30:44 -07:00
Adam Ierymenko
e269846f84
Netconf docs, add clock field to status, simplify netconf a bit by eliminating caching for now. We will re-add if it is needed.
2015-05-15 15:20:12 -07:00
Adam Ierymenko
6d2376eb9c
Controller API status message.
2015-05-15 09:41:45 -07:00
Adam Ierymenko
f693d4d0c8
Network controller cleanup and an extra sanity check.
2015-05-15 09:32:10 -07:00
Adam Ierymenko
0bdd56ebd6
A few revisions to PFS design.
2015-05-15 09:04:39 -07:00
Adam Ierymenko
d0e0f5dd12
Basic OpenBSD compile fixes -- still need to update BSDEthernetTap, will do that later. Should be able to re-use FreeBSD port for OpenBSD, but we will see.
2015-05-15 08:48:53 -07:00
Adam Ierymenko
e94518590d
First stab of PFS design work with PKC security -- may not implement in 1.0.3 but stubbing out.
2015-05-14 17:41:05 -07:00
Grant Limberg
4a0280686c
Merge branch 'adamierymenko-dev' into android-jni
2015-05-13 20:52:23 -07:00
Adam Ierymenko
a8835cd8b3
Some prep work to make room for perfect forward security (PFS). Will not affect existing clients.
2015-05-13 18:53:37 -07:00
Adam Ierymenko
bdce679d84
Should fix deadlock issue in GitHub issue #166
2015-05-13 16:55:18 -07:00
Adam Ierymenko
241f308334
Fix to tap reset code in Windows tap connector.
2015-05-08 16:49:08 -07:00
Adam Ierymenko
e744580b89
Fix a bunch of Windows tap issues. Turns out NDIS6 allowed us to ditch some NDIS5 cruft, but I did have to add one hack specific to that one instead. Seems reliable now.
2015-05-08 16:31:50 -07:00
Adam Ierymenko
1b895c45eb
Make peer list font a bit smaller.
2015-05-08 15:04:01 -07:00
Adam Ierymenko
2158d26bd7
Show last unicast and multicast frames.
2015-05-08 15:01:05 -07:00
Adam Ierymenko
4565e9948f
Now this works... Windows UI wrapper. Turns out there were workarounds, but IE does indeed suck.
2015-05-08 14:58:29 -07:00
Adam Ierymenko
c1e5c1c710
Fix some settings on WebControl implementation.
2015-05-08 14:51:24 -07:00
Adam Ierymenko
257187a284
Fixes for Windows WebControl.
2015-05-08 14:47:01 -07:00
Adam Ierymenko
8e888f8df9
Hmm... will this work? Very first child of <head>
2015-05-08 12:41:06 -07:00
Adam Ierymenko
8594e17f2b
Move mac-ui into src/
2015-05-08 12:35:41 -07:00
Adam Ierymenko
a40192a40b
Scratch that wrapper... it was easy to make, but it turns out WebControl is IE4 (!!!?!). Also prefer NDIS5 to NDIS6 *if* NDIS5 is installed. We will no longer ship it, but this will make older installs use the same driver they are already using. Should ease upgrade.
2015-05-08 12:35:03 -07:00
Adam Ierymenko
92ca53e141
Add pre-build signed UI wrapper .exe.
2015-05-08 12:16:02 -07:00
Adam Ierymenko
a913f00670
Windows WebControl based wrapper for web UI.
2015-05-08 11:55:09 -07:00
Adam Ierymenko
b1164ed181
icons
2015-05-08 11:08:06 -07:00
Adam Ierymenko
c0caba8944
docs
2015-05-08 10:31:01 -07:00
Adam Ierymenko
0be3190d49
UI spacing tweaks.
2015-05-08 10:20:38 -07:00
Adam Ierymenko
bd2ce82ea6
Minify JS in UI, add Makefile.
2015-05-08 10:03:35 -07:00
Adam Ierymenko
a4a62be698
UI tweaks, get JSXTransformer out.
2015-05-08 09:39:07 -07:00
Grant Limberg
da45840e5a
Merge branch 'adamierymenko-dev' into android-jni
...
Conflicts:
.gitignore
2015-05-07 19:16:35 -07:00
Adam Ierymenko
4426899e8c
Add support for local user account caching of authtoken.secret as in old UI -- this is now pretty much working.
2015-05-06 21:02:59 -07:00
Adam Ierymenko
d56e9fce41
Get user data out of repo.
2015-05-06 20:45:02 -07:00
Adam Ierymenko
5b54612d91
Pass authtoken in from user, and add a wrapper for web UI on Mac.
2015-05-06 20:41:51 -07:00
Grant Limberg
8130b2a0de
Merge branch 'adamierymenko-dev' into android-jni
2015-05-06 20:24:01 -07:00
Adam Ierymenko
e58047eaa0
UI work...
2015-05-06 19:39:45 -07:00
Adam Ierymenko
03dbec960a
UI tweaks
2015-05-06 17:42:29 -07:00
Grant Limberg
20b76d266d
Merge branch 'adamierymenko-dev' into android-jni
2015-05-06 17:37:11 -07:00
Adam Ierymenko
4a2c46e008
Well that works... pretty web UI (currently only works on test node with hard-coded auth code... need to figure out how to plumb that)
2015-05-06 17:28:11 -07:00
Kees Bos
a425bbc673
Renamed supernode to rootserver
2015-05-06 12:05:20 +02:00
Adam Ierymenko
b2b32e5969
Beginning of HTML+Bootstrap+React UI for new desktop client -- looking like it will be easier than retrofitting the old Qt client for the new API.
2015-05-05 20:53:30 -07:00
Grant Limberg
bdc5b3d3a5
Merge branch 'adamierymenko-dev' into android-jni
2015-05-04 20:12:26 -07:00
Grant Limberg
e28712555d
build & package libZeroTierOneSDK.jnilib on Mac oS
...
Signed-off-by: Grant Limberg <glimberg@gmail.com >
2015-05-04 20:04:44 -07:00
Adam Ierymenko
40f312a827
When we reset within scope, erase the other entries for that scope so we won't keep resetting the same scope repeatedly.
2015-05-04 19:02:36 -07:00
Adam Ierymenko
18ca6f34ff
Always update timestamp.
2015-05-04 18:45:39 -07:00
Adam Ierymenko
59fa687830
Make timeout also apply to null check in iam()
2015-05-04 18:43:24 -07:00
Adam Ierymenko
e922324bc6
Stop inlining all the Packet armor/dearmor stuff to reduce binary bloat. This stuff is called all over the place.
2015-05-04 18:39:53 -07:00
Adam Ierymenko
b4b067bf12
So we need to keep track of external surface per reporter, since some NATs assign different external IPs for each external destination. Keeping just one known surface could create a race condition.
2015-05-04 18:34:30 -07:00
Adam Ierymenko
625ddf41a7
docs
2015-05-04 17:41:48 -07:00
Adam Ierymenko
af66f14761
Merge branch 'adamierymenko-dev' into android-jni
2015-05-04 16:47:18 -07:00
Adam Ierymenko
da254d967f
Hack around GitHub issue #165 (?)
2015-05-04 14:11:54 -07:00
Grant Limberg
7054c365f2
put a read timeout on the socket
2015-05-02 18:34:47 -07:00
Grant Limberg
06ab338ecc
added naive OneService implementation.
...
Does nothing but send packets to master nodes and listen for packets back.
2015-05-02 18:24:52 -07:00
Grant Limberg
ad6ec22857
DataStore now works
2015-05-02 18:22:56 -07:00
Grant Limberg
a9307693a6
Adding Data Store implementations for Android and normal Java
2015-05-02 17:32:12 -07:00
Grant Limberg
742c59a7c7
Refactor package name from com.zerotierone.sdk to com.zerotier.sdk
2015-05-02 16:54:00 -07:00
Grant Limberg
e79a6915ff
ensure java is compiled for JVM 1.7. Android cant read .class files compiled for 1.8
2015-05-02 12:06:07 -07:00
Grant Limberg
818339f966
replace old direct calls to FindClass, GetMethodID, etc with calls that use the cache
2015-05-02 12:05:40 -07:00
Grant Limberg
079d248eab
added a JniCache objectet for caching jclass, jmethodID, and jfieldID objects
2015-05-02 12:05:02 -07:00
Grant Limberg
9f2732d661
add the basedir to the ant buildfile
2015-05-02 10:16:10 -07:00
Grant Limberg
fb6b56a85f
clean up unused imports
2015-05-01 18:27:34 -07:00
Grant Limberg
02b33e3763
Yeah it helps to byte swap the port back to little-endian before sending the port off to Java
2015-04-30 22:07:14 -07:00
Grant Limberg
b242886c33
Merge branch 'adamierymenko-dev' into android-jni
2015-04-30 21:51:05 -07:00
Grant Limberg
0a15eae00f
Setup native build for Windows Java.
...
Still need to do Mac & Linux
2015-04-30 21:50:28 -07:00
Grant Limberg
75d7137025
added a class I found to load JNI code from within JAR files on non-android platforms.
...
That doesn't come for free, unlike android.
2015-04-30 21:50:05 -07:00
Adam Ierymenko
9279bac385
Fix deadlock in SelfAwareness by deferring reconnects.
2015-04-30 21:09:41 -07:00
Adam Ierymenko
105e1a016f
Get rid of G++ compiler warning.
2015-04-30 20:41:25 -07:00
Adam Ierymenko
604576075e
Add some missing includes that older G++ cares about.
2015-04-30 20:40:33 -07:00
Grant Limberg
52df59c552
Merge branch 'adamierymenko-dev' into android-jni
...
Conflicts:
.gitignore
2015-04-30 19:19:45 -07:00
Adam Ierymenko
d3820049b8
Add reported external address to OK(HELLO) TRACE to verify SN behavior.
2015-04-30 18:25:31 -07:00
Adam Ierymenko
9eb7698f0e
Learn external IP addresses on OK(HELLO) too.
2015-04-30 16:40:04 -07:00
Adam Ierymenko
5185103692
Fix to create-test-root-topology.
2015-04-30 16:13:17 -07:00
Adam Ierymenko
3ac23165c7
Kill old testnet -- was useful in its time, but Docker make running real test networks locally stupid easy and a more realistic simulation.
2015-04-30 16:04:17 -07:00
Adam Ierymenko
9a34fde8a5
Make sure identity.public exists and stays in sync, cleanup extra new in Node, and test script for local testnets.
2015-04-30 16:03:44 -07:00
Adam Ierymenko
918fc8884b
Update mktopology so it works again and can easily be used to create test dictionaries.
2015-04-30 15:31:01 -07:00
Adam Ierymenko
f3d7c9d681
Helps to index the array when enumerating a C array.
2015-04-30 15:16:21 -07:00
Adam Ierymenko
226e0f8722
docs and Makefile for tcp-proxy
2015-04-30 10:56:45 -07:00
Adam Ierymenko
288d73a4ad
A few more refinements to TCP code, ready to integrate with "desperation" stuff and test.
2015-04-30 10:47:27 -07:00
Grant Limberg
9464504e4a
DataStoreGet and Put and EventListener appear to work
2015-04-29 21:20:50 -07:00
Grant Limberg
7e0cc28a89
Fixes for bugs pointed out by updating warnings
2015-04-29 19:29:35 -07:00
Grant Limberg
0a2d1e7a66
Ignore windows debug build files
2015-04-29 19:29:18 -07:00
Grant Limberg
9bf9670ff9
add more warnings to the JNI build
2015-04-29 19:14:52 -07:00
Adam Ierymenko
a9a3705877
TCP tunneling implementation -- not tested yet and no initiation yet.
2015-04-28 12:43:10 -07:00
Grant Limberg
5983b4367b
jclass pointers aren't as cacheable as originally thought.
...
There is a way to do it. We can try it later if we determine it's needed for performance reasons. Otherwise, don't use static to cache them
2015-04-27 18:38:13 -07:00
Grant Limberg
d1ed269537
Switch to InetSockAddress instead of InetAddress so we can send the port # to java as well
2015-04-27 17:48:37 -07:00
Grant Limberg
73d68c0c98
Merge branch 'adamierymenko-dev' into android-jni
2015-04-27 17:24:55 -07:00
Adam Ierymenko
7dcde7503a
For now just bind TCP to localhost, since we do not permit remote use of the control bus at all yet.
2015-04-26 18:15:40 -07:00
Adam Ierymenko
b9f7f75ddf
TCP proxy for tunneling (desperation > 0).
2015-04-26 16:38:39 -07:00
Adam Ierymenko
a1005ca858
Do not unite() peers across different IP scopes as this would pretty much never work.
2015-04-26 16:03:16 -07:00
Adam Ierymenko
8c5ec54711
.
2015-04-26 14:05:36 -07:00
Adam Ierymenko
ab3f4d7539
Was thinking about this HTTP tunneling stuff but decided against for now. Stash unfinished code in attic/
2015-04-26 14:05:13 -07:00
Adam Ierymenko
a1d6df4bf8
Starting on new external updater binary.
2015-04-26 10:01:07 -07:00
Grant Limberg
4c71e92a67
It's now possible to actually create a Node object in Java/Android!!!
2015-04-25 20:47:21 -07:00
Grant Limberg
3bdbc6390f
Added logging to Android logcat
2015-04-25 20:46:56 -07:00
Grant Limberg
8a09e0ec3c
added NodeException
2015-04-25 20:46:41 -07:00
Grant Limberg
db80070ccb
fix strings pointing to enum fields in ResultCode java class
2015-04-25 19:19:58 -07:00
Grant Limberg
042f914dc5
If we could not recursively add ZeroTierOneSDK.jar to ZeroTierOneSDK.jar, that would be greeeaaaaat
2015-04-25 19:09:30 -07:00
Grant Limberg
ec45aeb42a
Merge branch 'adamierymenko-dev' into android-jni
2015-04-25 18:59:52 -07:00
Grant Limberg
a86a0ab2b1
Package the Android native libraries right in the .jar file
2015-04-25 18:59:00 -07:00
Grant Limberg
29bb2a9004
fix for a previously renamed class
2015-04-25 18:58:43 -07:00
Grant Limberg
56f8160af8
generate javadocs for the Java SDK
2015-04-25 17:29:07 -07:00
Adam Ierymenko
7af1f3a79a
attic cleanup
2015-04-25 17:25:06 -07:00
Adam Ierymenko
e78899fddf
Rebuild and re-sign the x86 driver... previous attempt was somehow borked but this one loads on Win7/x86 fine.
2015-04-25 16:00:25 -07:00
Adam Ierymenko
9325535ced
x86 version of signed NDIS6 driver.
2015-04-25 15:31:27 -07:00
Adam Ierymenko
720ac93ba9
Use NDIS6 driver preferentially if available.
2015-04-25 15:22:43 -07:00
Adam Ierymenko
42b4148876
NDIS6 driver signed x64 build (not fully tested yet, but committing work)
2015-04-25 14:52:02 -07:00
Adam Ierymenko
4b658d83bc
Rename old driver to -ndis5.
2015-04-25 13:11:58 -07:00
Adam Ierymenko
d4c06e924d
Do the same modifications to the NDIS 6 code base as were done to the old 5 driver: disable all the 'tun' functionality, and add the IOCTL for querying the multicast list at Ethernet (L2) level.
2015-04-25 12:21:08 -07:00
Adam Ierymenko
1ebe2ad920
NDIS6 driver with VS project to build -- builds correctly, not customized for ZT yet.
2015-04-24 23:31:51 -07:00
Grant Limberg
0d4283a3fa
Cache jclass and jmethod instances for callbacks on the JniRef struct.
...
This is safe to cache as none of the instantiated callback interfaces can be changed once a Node object is created.
2015-04-24 20:34:36 -07:00
Grant Limberg
9c62ce9e6f
implemented EventCallback
...
All callback methods are now implemented
2015-04-24 20:13:21 -07:00
Grant Limberg
f2eed5a65f
implemented WirePacketSendFunction
2015-04-24 19:43:17 -07:00
Grant Limberg
5e1fb4e253
Realized that the jclass and jmethodID variables in the callbacks cannot be static
...
There's no guarantee that ALL calls to the callbacks will be on the same class as they're just interfaces and user defined
2015-04-24 19:35:18 -07:00
Grant Limberg
dc00ce4f44
added DataStorePutFunction implementation
...
updated DataStorePutListener to also have an onDelete() method
2015-04-24 19:28:44 -07:00
Grant Limberg
53ebd5a9a5
don't need to pass buffer size because java arrays have a .length member
2015-04-24 19:14:59 -07:00
Grant Limberg
d5fc2b39aa
implemented DataStoreGetFunction callback
2015-04-24 19:11:49 -07:00
Grant Limberg
4137246653
implemented VirtualNetworkFrameFunctionCallback
2015-04-24 18:49:52 -07:00
Grant Limberg
28168fa673
implement VirtualNetworkConfigFunctionCallback
2015-04-24 18:39:17 -07:00
Grant Limberg
99af0f3a88
moved creation of VirtualNetworkConfig objects to ZT1_jniutils
...
added implementation of networks() method
2015-04-24 18:20:10 -07:00
Grant Limberg
6f07a476a6
create and return the peer array
2015-04-24 18:06:26 -07:00
Grant Limberg
52a20b4b0f
create PeerRole and PeerPhysicalPath objects
2015-04-24 17:58:59 -07:00
Grant Limberg
f3c29d3f0d
rename PhysicalPeerPath -> PeerPhysicalPath to reflect C API
2015-04-24 17:58:31 -07:00
Grant Limberg
b3429481cd
update build instructions
...
Signed-off-by: Grant Limberg <glimberg@gmail.com >
2015-04-24 17:04:08 -07:00
Grant Limberg
0f808e11df
Merge branch 'adamierymenko-dev' into android-jni
2015-04-24 16:48:48 -07:00
Adam Ierymenko
ce09e363dc
Destroy tap devices on Windows 'leave'.
2015-04-24 16:31:19 -07:00
Adam Ierymenko
e2c65bf16a
Bring Windows service code up to date and into sync.
2015-04-24 15:44:39 -07:00
Adam Ierymenko
0e31551349
Take winhttp out of lib list, since we don't use it anymore.
2015-04-24 15:15:14 -07:00
Adam Ierymenko
f5848972f9
Windows now builds and runs selftest correctly, and fixed a Windows (and possibly other platforms) issue in Phy<>.
2015-04-24 15:05:28 -07:00
Adam Ierymenko
54954f5b88
First pass of Windows cleanup and build fixes...
2015-04-24 13:35:17 -07:00
Adam Ierymenko
883a216d2a
Build fixes.
2015-04-24 12:29:31 -07:00
Grant Limberg
1a65a79e57
set 'build' as the default ant target
...
Signed-off-by: Grant Limberg <glimberg@gmail.com >
2015-04-23 23:14:09 -07:00
Grant Limberg
6dd3c07b25
removing unneeded jni headers
...
Signed-off-by: Grant Limberg <glimberg@gmail.com >
2015-04-23 23:09:42 -07:00
Grant Limberg
1df6bc6bc3
just adjusting some alignment
...
Signed-off-by: Grant Limberg <glimberg@gmail.com >
2015-04-23 23:09:30 -07:00
Grant Limberg
9ab7280703
added infrastructure for Node.peers() and Node.networks() functions
...
Signed-off-by: Grant Limberg <glimberg@gmail.com >
2015-04-23 23:08:28 -07:00
Grant Limberg
7f6556eba0
node.networkConfig() now creates ArrayLists of multicast subscriptions and assigned addresses
...
Signed-off-by: Grant Limberg <glimberg@gmail.com >
2015-04-23 22:48:56 -07:00
Grant Limberg
1bea940323
fix field ID signatures
...
Signed-off-by: Grant Limberg <glimberg@gmail.com >
2015-04-23 22:47:56 -07:00
Grant Limberg
6ff2e6ecfe
move findNode method back
...
Signed-off-by: Grant Limberg <glimberg@gmail.com >
2015-04-23 22:46:54 -07:00
Grant Limberg
d66f2cd54d
Node.networkConfig now only needs to populate the lists of assigned addresses and multicast subscriptions and then it's finished
...
Signed-off-by: Grant Limberg <glimberg@gmail.com >
2015-04-23 21:43:16 -07:00
Grant Limberg
46adf870a1
move utility functions from anon namespace to ZT1_jniutils
...
Signed-off-by: Grant Limberg <glimberg@gmail.com >
2015-04-23 21:39:07 -07:00
Grant Limberg
4906f8e848
added stub utility functions for creating ArrayLists, appending items to ArrayLists, creating InetAddress objects, and MulticastGroup objects
...
Signed-off-by: Grant Limberg <glimberg@gmail.com >
2015-04-23 21:36:33 -07:00
Grant Limberg
fa9d42b7e5
finished the JNI implementation of the status() method on Node
...
Signed-off-by: Grant Limberg <glimberg@gmail.com >
2015-04-23 20:52:47 -07:00
Grant Limberg
1a528aec76
don't require clean before build
...
Signed-off-by: Grant Limberg <glimberg@gmail.com >
2015-04-23 20:34:59 -07:00
Grant Limberg
ffb9e2901e
fix a build error
...
Signed-off-by: Grant Limberg <glimberg@gmail.com >
2015-04-23 20:29:23 -07:00
Grant Limberg
407e2fc7de
Added ant build script. Requires NDK_BUILD_LOC environment variable pointing to the ndk-build script
...
fixed compile erros in Node and VirutalNetworkConfig
Signed-off-by: Grant Limberg <glimberg@gmail.com >
2015-04-23 20:17:29 -07:00
Grant Limberg
667a103a6a
added functions to create Event, and VirtualNetworkStatus objects
...
Signed-off-by: Grant Limberg <glimberg@gmail.com >
2015-04-23 19:16:45 -07:00
Grant Limberg
32a35e6808
scaffolding for implementation of status() and networkConfig()
...
They should be able to be called, but will not return valid objects yet
Signed-off-by: Grant Limberg <glimberg@gmail.com >
2015-04-22 21:31:17 -07:00
Grant Limberg
34028aa7c8
Added implemenation for node.address()
...
Signed-off-by: Grant Limberg <glimberg@gmail.com >
2015-04-22 21:30:37 -07:00
Grant Limberg
3ccaef88b7
Added implementation for Node.version()
...
Signed-off-by: Grant Limberg <glimberg@gmail.com >
2015-04-22 21:29:45 -07:00
Grant Limberg
f5bb57d5aa
fix call to networkConfig to pass the network id
...
Signed-off-by: Grant Limberg <glimberg@gmail.com >
2015-04-22 21:28:42 -07:00
Grant Limberg
a1a35e0279
Can't instantiate enum objects. Fix createResultObject() function so that it still works properly
...
Signed-off-by: Grant Limberg <glimberg@gmail.com >
2015-04-22 21:14:55 -07:00
Grant Limberg
1308f02b93
multicastSubscribe() and multicastUnsubscribe()
...
Signed-off-by: Grant Limberg <glimberg@gmail.com >
2015-04-22 20:33:38 -07:00
Grant Limberg
b078d69372
join() and leave() functions
...
Signed-off-by: Grant Limberg <glimberg@gmail.com >
2015-04-22 20:29:34 -07:00
Grant Limberg
e31e54483c
added processBackgroundTasks function
...
Signed-off-by: Grant Limberg <glimberg@gmail.com >
2015-04-22 20:25:35 -07:00
Grant Limberg
3c499777c8
added implementation for processWirePacket
...
Signed-off-by: Grant Limberg <glimberg@gmail.com >
2015-04-22 20:21:12 -07:00
Grant Limberg
9c038d3ecd
added a few missing function calls in the ZT1 Node API
...
Signed-off-by: Grant Limberg <glimberg@gmail.com >
2015-04-22 19:36:46 -07:00
Grant Limberg
6187a91f4c
delete the ZT1_Node object when calling Java_com_zerotierone_sdk_Node_node_1delete
...
Signed-off-by: Grant Limberg <glimberg@gmail.com >
2015-04-22 19:29:45 -07:00
Grant Limberg
321b67c73c
add a findNode() function to reduce copypasta
...
Signed-off-by: Grant Limberg <glimberg@gmail.com >
2015-04-22 19:29:13 -07:00
Grant Limberg
5df253fa69
added implementation for processVirtualNetworkFrame
...
Signed-off-by: Grant Limberg <glimberg@gmail.com >
2015-04-22 19:19:45 -07:00
Grant Limberg
3a6807d584
add assignedAddresses member to VirtualNetworConfig class
...
Signed-off-by: Grant Limberg <glimberg@gmail.com >
2015-04-22 19:19:08 -07:00
Grant Limberg
787b4a8e50
* Change a few method signatures from java.lang.Long to long[] so that values can be passed back.
...
Signed-off-by: Grant Limberg <glimberg@gmail.com >
2015-04-22 19:18:49 -07:00
Grant Limberg
b33e4af49f
Merge branch 'adamierymenko-dev' into android-jni
2015-04-22 18:14:14 -07:00
Adam Ierymenko
5202fbdaf3
CRUD
2015-04-22 18:06:26 -07:00
Adam Ierymenko
103dcb072d
CRUD
2015-04-21 19:49:04 -07:00
Adam Ierymenko
79f63ba30a
Fix: make sure we do not assign broadcast address as an IP to new members.
2015-04-21 18:37:17 -07:00
Adam Ierymenko
71f006cbeb
More CRUD, almost done...
2015-04-21 18:08:33 -07:00
Adam Ierymenko
e4046964f0
Forgot to run schema2c.
2015-04-21 16:50:02 -07:00
Adam Ierymenko
ddebe2d4c7
Network controller CRUD... :P
2015-04-21 16:41:35 -07:00
Grant Limberg
0c8051da15
Move JNI methods to the bottom of the class
...
Signed-off-by: Grant Limberg <glimberg@gmail.com >
2015-04-20 20:44:31 -07:00
Grant Limberg
e0c8ddb65b
call close() from the Node class's finalize method
...
Signed-off-by: Grant Limberg <glimberg@gmail.com >
2015-04-20 20:36:59 -07:00
Grant Limberg
bd4049fdc0
Added JNI code for construction/destruction of ZT1_Node objects
...
Signed-off-by: Grant Limberg <glimberg@gmail.com >
2015-04-20 20:33:42 -07:00
Grant Limberg
5f314f209e
Updated Java Node class native methods to pass the node ID
...
This is so that we know which C-based ZT1_Node struct is being operated on
Signed-off-by: Grant Limberg <glimberg@gmail.com >
2015-04-20 20:32:29 -07:00
Grant Limberg
99a1a4e65b
Generated header files for JNI
...
Signed-off-by: Grant Limberg <glimberg@gmail.com >
2015-04-20 18:31:42 -07:00
Grant Limberg
ec3a1c87d1
first revision of the java API for ZeroTier One
...
Signed-off-by: Grant Limberg <glimberg@gmail.com >
2015-04-20 18:27:15 -07:00
Grant Limberg
f40eb665c5
Add build files for compiling ZeroTier One SDK for Android targets
...
Signed-off-by: Grant Limberg <glimberg@gmail.com >
2015-04-20 18:26:23 -07:00
Adam Ierymenko
ed107c4daf
Network preferred relay stuff in netconf controller.
2015-04-20 17:47:12 -07:00
Adam Ierymenko
8a13cfdace
Add per-network relays to NetworkConfig.
2015-04-20 17:14:16 -07:00
Adam Ierymenko
86c87875a7
OSUtils::resolve()
2015-04-20 16:07:38 -07:00
Adam Ierymenko
69076f8a45
Add per-network relay stuff to sqlite table schema.
2015-04-20 15:46:20 -07:00
Adam Ierymenko
60f05518aa
(1) now builds and works on Linux, (2) fix a threading problem causing carsh on shutdown, (3) cleanup in selftest, re-enable Phy and Http tests.
2015-04-20 15:12:31 -07:00
Adam Ierymenko
740121504f
Add a timestamp to netconf cache, fix some SQL queries in NC.
2015-04-17 15:21:53 -07:00
Adam Ierymenko
417f56de2f
Add some TRACE instrumentation to external surface address awareness.
2015-04-17 12:19:01 -07:00
Adam Ierymenko
b51d00146b
docs
2015-04-17 10:45:16 -07:00
Adam Ierymenko
8715242e7f
build fix
2015-04-16 16:43:35 -07:00
Adam Ierymenko
895c32a0d2
Stash old software updater code, will refactor into separate utility.
2015-04-16 16:17:28 -07:00
Adam Ierymenko
489cc66b78
Don't need these files anymore.
2015-04-16 16:16:25 -07:00
Adam Ierymenko
ce77e67e00
docs
2015-04-16 16:15:25 -07:00
Adam Ierymenko
1f5700191f
zerotier-cli suspiciously working... that didn't hurt *too* badly.
2015-04-16 16:12:10 -07:00
Adam Ierymenko
c4c5fa63d1
Almost done with JSON parsing for tabular output.
2015-04-16 15:51:56 -07:00
Adam Ierymenko
13d5073e5b
CLI work and Makefile cleanup.
2015-04-16 15:07:58 -07:00
Adam Ierymenko
8333bf065e
Basic CLI working with JSON output. Now to parse and support old tabular form.
2015-04-16 14:55:36 -07:00
Adam Ierymenko
53cbe485f0
Some cleanup, and bite the bullet and go ahead and write a simple Http client. Need a cross-platform built-in one to do cli right.
2015-04-16 14:13:44 -07:00
Adam Ierymenko
6c29e966dd
Include a BSD licensed JSON parser for the CLI.
2015-04-16 12:27:51 -07:00
Adam Ierymenko
377367175c
Update LZ4 in ext/
2015-04-16 12:18:47 -07:00
Adam Ierymenko
12b4646ce8
Prettify JSON output.
2015-04-16 12:06:40 -07:00
Adam Ierymenko
4e5d2d2c72
Write a zerotier-one.port file to the home path to make CLI easy to write, and do a backward compatiable CLI in bash instead of as part of the executable.
2015-04-15 19:38:01 -07:00
Adam Ierymenko
21a7e774bb
Wire API auth token stuff.
2015-04-15 19:14:12 -07:00
Adam Ierymenko
c301d8e438
Remove network/controller -- we will do this in Ruby instead since it will be part of the whole OnePoint project anyway.
2015-04-15 19:01:38 -07:00
Adam Ierymenko
d2503172d8
Add some additional detail to the peer record in CAPI and JSON control plane.
2015-04-15 19:00:26 -07:00
Adam Ierymenko
91ca238163
Compile fixes.
2015-04-15 18:47:38 -07:00
Adam Ierymenko
33c8d3c50b
Compile fixes.
2015-04-15 18:36:32 -07:00
Adam Ierymenko
ea1859541c
More cleanup, and fix for the extremely unlikely case of identity collision.
2015-04-15 18:32:25 -07:00
Adam Ierymenko
f7b1437154
Putting the main binary back together...
2015-04-15 17:00:26 -07:00
Adam Ierymenko
6369c264e2
Rename netconf to controller and NetworkConfigMaster to NetworkController for consistency.
2015-04-15 15:12:09 -07:00
Adam Ierymenko
871473255b
Cleanup, drop 32-bit from Mac build flags since i386 is pretty thoroughly deprecated and dead on OSX. We will have to make our updater stop updating on any 32-bit Macs that might actually still be running ZT1.
2015-04-15 14:54:37 -07:00
Adam Ierymenko
a0f8685453
cleanup
2015-04-15 14:44:30 -07:00
Adam Ierymenko
8639538299
Rename One to OneService, create separate sources for other tools.
2015-04-15 14:42:26 -07:00
Adam Ierymenko
98bcc3d4b5
Disable a few noisy TRACEs, and limit how often we confirm new paths to avoid flooding.
2015-04-15 13:15:09 -07:00
Adam Ierymenko
1c9ca73065
Fix some deadlock issues, move awareness of broadcast subscription into core, other bug fixes.
2015-04-15 13:09:20 -07:00
Adam Ierymenko
508519b62a
Tap driver load fix.
2015-04-14 19:21:56 -07:00
Adam Ierymenko
c9af603b9f
Add beacon broadcasting back into Node.
2015-04-14 18:20:03 -07:00
Adam Ierymenko
aeb4b42ab3
Make tap itself handle remembering sticky device to nwid mappings.
2015-04-14 18:13:46 -07:00
Adam Ierymenko
67f1f1892f
Bunch of tap stuff, IP address assignment hookups, etc.
2015-04-14 17:57:51 -07:00
Adam Ierymenko
e205e5fdfe
Include tap device name in JSON output for network info.
2015-04-14 15:55:03 -07:00
Adam Ierymenko
347e98dcd2
Just return files from listDirectory() since that is all we need, fix network request on network restore logic, and remember saved networks in service/One
2015-04-14 15:32:05 -07:00
Adam Ierymenko
29a2175b7a
Fix missed closedir()
2015-04-14 15:17:59 -07:00
Adam Ierymenko
49d31613b9
Fix some minor issues, now to reintegrate taps.
2015-04-14 15:16:04 -07:00
Adam Ierymenko
758b5caf94
Fix < logic.
2015-04-14 14:52:23 -07:00
Adam Ierymenko
6f4b30add8
Turns out you do have to unpack and compare sockaddr structures due to sin_len / sin6_len not present on all platforms and other junk.
2015-04-14 14:49:34 -07:00
Adam Ierymenko
1cfa67bbdd
Bunch more control plane work, and shelve old UI -- React FTW.
2015-04-14 13:56:28 -07:00
Adam Ierymenko
a2605561af
Basic control plane queries working.
2015-04-13 18:43:33 -07:00
Adam Ierymenko
b888e033c0
JSON control plane, almost done...
2015-04-13 18:12:45 -07:00
Adam Ierymenko
ff0eff4b7c
Decided to back out of doing HTTP/TCP server *and* client within ZT itself. Instead we'll do the TCP tunneling endpoint as a separate little daemon. It will appear here shortly.
2015-04-13 12:27:29 -07:00
Adam Ierymenko
5c1262f324
Basic framework of HTTP server is there.
2015-04-10 19:36:29 -07:00
Adam Ierymenko
daef54ba32
HTTP server is in, and works.
2015-04-10 19:08:49 -07:00
Adam Ierymenko
5572b7ffb6
Simplify Phy<> to get rid of more indirections.
2015-04-10 17:07:06 -07:00
Adam Ierymenko
7576911951
Temporarily shelve testnet/ -- will resurrect self-contained testnet later perhaps, but probably will not by the time next version ships. Was mostly for debugging multicast anyway and that is now quite stable.
2015-04-10 11:42:02 -07:00
Adam Ierymenko
9e651b39e4
Add some TRACE around pinging (for now), and refactor service/One to just run in the foreground as some platforms may not require threads at all.
2015-04-10 11:40:45 -07:00
Adam Ierymenko
08a11a6f32
Since which tap to use is chosen statically at compile time and the factories are gone, there is now no need for inheritance or virtual methods (indirect calls) here. Should improve performance slightly to get rid of them.
2015-04-10 10:19:45 -07:00
Adam Ierymenko
5e331d6733
Restrict unite() to desperation==0 since NAT-t only works right now with direct links.
2015-04-10 10:13:50 -07:00
Adam Ierymenko
068d311ecc
TRACE compile fixes, other fixes, and it basically works! It says HELLO.
2015-04-09 20:54:00 -07:00
Adam Ierymenko
38200cc6a5
Add data store functions to service/One, and shelve old main.cpp since it will get rebuilt.
2015-04-09 19:58:04 -07:00
Adam Ierymenko
6615a70027
Service code builds now.
2015-04-09 18:22:04 -07:00
Adam Ierymenko
46ecad451c
Starting on new service/ code to encapsulate node/ with osdep/ stuff, and add a user pointer to the CAPI.
2015-04-09 18:14:27 -07:00
Adam Ierymenko
9342380146
docs
2015-04-09 11:27:23 -07:00
Adam Ierymenko
7192fe6d15
osdep/ compile fixes, and remove some lingering OS-specific stuff from node/Defaults
2015-04-08 19:03:30 -07:00
Adam Ierymenko
d761330465
No more tap factories.
2015-04-08 18:47:06 -07:00
Adam Ierymenko
ccc73b920e
Node peer list function for CAPI, and some Peer cleanup.
2015-04-08 18:45:21 -07:00
Adam Ierymenko
d9e9b60a98
Node status and network list.
2015-04-08 18:25:40 -07:00
Adam Ierymenko
e34bc961db
Add awareness of online status, and put old OS-dep utils in OSUtils.
2015-04-08 17:10:21 -07:00
Adam Ierymenko
0751eaabd8
Clean OS-dep stuff out of node/Utils.
2015-04-08 16:55:00 -07:00
Adam Ierymenko
12431ce95d
Clean out attic.
2015-04-08 16:50:14 -07:00
Adam Ierymenko
4d5a6a25d3
Add events for packet decode errors, etc., and re-implement TRACE as an event.
2015-04-08 16:49:21 -07:00
Adam Ierymenko
9d9d0ef12c
Rename StatusCallback to more descriptive EventCallback.
2015-04-08 16:07:47 -07:00
Adam Ierymenko
c894710ac1
Remove Logger.hpp references.
2015-04-08 16:00:48 -07:00
Adam Ierymenko
608b5ca13a
.
2015-04-08 15:56:19 -07:00
Adam Ierymenko
37bd6fdb9c
Move Logger to attic -- last bit of OS-specific stuff to get out of core.
2015-04-08 15:56:11 -07:00
Adam Ierymenko
7529d050c7
All of node/ now compiles again!
2015-04-08 15:42:23 -07:00
Adam Ierymenko
bf2ff964e1
Utils::now() removal and a bunch of compile fixes.
2015-04-08 15:26:45 -07:00
Adam Ierymenko
ee2f51f48e
Make Toplogy use dataStoreXX() methods from Node, and get rid of old TCP stuff.
2015-04-08 15:12:04 -07:00
Adam Ierymenko
40bfe37a19
Use max of core or most recent path desperation for pings.
2015-04-08 14:58:23 -07:00
Adam Ierymenko
59af674e74
Announce multicast groups on multicast subscribe.
2015-04-07 19:35:16 -07:00
Adam Ierymenko
6de7996218
Math fix.
2015-04-07 19:32:26 -07:00
Adam Ierymenko
49f031ccb4
Tons of refactoring, change to desperation algorithm to use max of core or link, porting over core loop code from old Node.cpp to new CAPI version, etc.
2015-04-07 19:31:11 -07:00
Adam Ierymenko
9e55f882d3
Starting to port from old Node() -- identity generation.
2015-04-07 16:41:56 -07:00
Adam Ierymenko
8210ed4805
Implement read from object store.
2015-04-07 14:11:47 -07:00
Adam Ierymenko
0a90681849
Add ping(), and a logic fix in SelfAwareness.
2015-04-07 12:32:05 -07:00
Adam Ierymenko
24608d5ca3
Always use HELLO to contact, and we now confirm newly learned paths via a two-way handshake to prevent half-connects.
2015-04-07 12:22:33 -07:00
Adam Ierymenko
eae2c89b09
Mutex locking fix.
2015-04-07 11:58:41 -07:00
Adam Ierymenko
52c3b7c34e
Implemented empirical determination of external addressing, paritioned per scope.
2015-04-07 11:56:10 -07:00
Adam Ierymenko
817824b88b
Some external surface awareness work, and IP scope classification.
2015-04-07 10:57:59 -07:00
Adam Ierymenko
a2821e9000
Add code to check external surface against reported surface from other trusted peers, and also rename ExternalSurface to SelfAwareness because lulz.
2015-04-06 20:17:21 -07:00
Adam Ierymenko
76ad19f411
Use binary_search for multicast groups, which are kept in sorted order.
2015-04-06 19:41:55 -07:00
Adam Ierymenko
758bf949db
Check for subscribed multicast groups should be able to check groups bridged behind me.
2015-04-06 19:34:36 -07:00
Adam Ierymenko
4e691c8e22
build fixes
2015-04-06 18:56:08 -07:00
Adam Ierymenko
6807ccd710
Don't need to announce on multicast leave.
2015-04-06 18:28:18 -07:00
Adam Ierymenko
51f46a009a
Multicast group join/leave and group membership announcement.
2015-04-06 18:27:24 -07:00
Adam Ierymenko
8001b2c0cb
Network now calls port config function as per new API.
2015-04-06 16:52:52 -07:00
Adam Ierymenko
a86300c58f
Network build fixes and cleanup of remaining internal references to _tap
2015-04-06 15:47:57 -07:00
Adam Ierymenko
488f5bf977
More build fixes, and attic/ some stuff.
2015-04-06 15:14:54 -07:00
Adam Ierymenko
197d272287
More NAT strategy cleanup.
2015-04-06 15:08:45 -07:00
Adam Ierymenko
be4683a96d
Get rid of random port strategy -- research does not support.
2015-04-06 15:03:08 -07:00
Adam Ierymenko
5f351f2f6b
build fixes.
2015-04-06 14:55:40 -07:00
Adam Ierymenko
f4fd2d4971
Bring IncomingPacket into line with new changes.
2015-04-06 14:50:53 -07:00
Adam Ierymenko
a95f1e1418
Eliminate redundant SharedPtr assignment.
2015-04-03 17:01:07 -07:00
Adam Ierymenko
6eb9289367
Bunch more cleanup, improvements to NAT traversal logic, finished updating Switch.
2015-04-03 16:52:53 -07:00
Adam Ierymenko
ee0f56355b
Send path simplification.
2015-04-03 13:14:37 -07:00
Adam Ierymenko
a69e1876f1
The concept of link desperation (escalating to less desirable transports) simplifies a ton of stuff. Loads of spaghetti logic can die since we no longer have to make these decisions down in the core.
2015-04-02 17:54:56 -07:00
Adam Ierymenko
5f51653f9c
More cleanup.
2015-04-01 19:16:07 -07:00
Adam Ierymenko
0214dbc277
More cleanup.
2015-04-01 19:15:21 -07:00
Adam Ierymenko
1f28ce3980
Tons more refactoring: simplify Network, move explicit management of Tap out, redo COM serialization, etc.
2015-04-01 19:09:18 -07:00
Adam Ierymenko
49349470a0
...
2015-04-01 16:27:14 -07:00
Adam Ierymenko
8130848020
More refactoring... and update the API a bit... turns out my strategy for reducing indirect function calls also increased memcpy()s which are more expensive. This is simpler and faster.
2015-04-01 14:59:44 -07:00
Adam Ierymenko
7ff0cab1b7
docs
2015-03-31 18:33:39 -07:00
Adam Ierymenko
b723855751
Refactoring... lalalala...
2015-03-31 18:17:11 -07:00
Adam Ierymenko
36eab4f1a9
Whole heap more cleanup and refactoring...
2015-03-31 17:53:34 -07:00
Adam Ierymenko
647ce82b86
Move more stuff into osdep/ -- node/ will not use threads directly.
2015-03-31 15:23:14 -07:00
Adam Ierymenko
e61a40a956
docs
2015-03-31 14:12:33 -07:00
Adam Ierymenko
a61acf36d2
osnet -> osdep
2015-03-31 14:11:21 -07:00
Adam Ierymenko
8990fb8267
osnet -> osdep
2015-03-31 14:10:02 -07:00
Adam Ierymenko
2c5dbecb3c
More CAPI work, and move old control/ and old node/Node to attic.
2015-03-31 13:54:50 -07:00
Adam Ierymenko
fe94c9460b
Phy is a better name than Wire, and other cleanup.
2015-03-31 11:52:10 -07:00
Adam Ierymenko
fe87c1db67
Work on new simplified C API -- required for embedded, language bindings, mobile (language bindings again), etc.
2015-03-30 19:46:07 -07:00
Adam Ierymenko
60158aa5dd
Turns out that node/ likely has no business with or need for the system IP routing table. So shelve that code for now.
2015-03-30 17:48:48 -07:00
Adam Ierymenko
3c1a59fa24
Wire selftest, and passes all tests.
2015-03-30 15:37:44 -07:00
Adam Ierymenko
b6241f6cb1
Build fixes.
2015-03-30 13:21:35 -07:00
Adam Ierymenko
4445bfc869
Wire should be good to test.
2015-03-26 14:44:31 -07:00
Adam Ierymenko
8d409def74
More Wire cleanup/docs and minor fixes.
2015-03-24 13:45:31 -07:00
Adam Ierymenko
91810c5f44
A bit more cleanup and doc work on new select abstraction
2015-03-24 10:09:05 -07:00
Adam Ierymenko
64ea58d523
Most of new cleaner IO abstraction.
2015-03-23 17:07:47 -07:00
Adam Ierymenko
96737368aa
Add MIT-licensed Joyent http-parser lib to ext/ for use with new control plane.
2015-03-20 13:32:31 -07:00
Adam Ierymenko
7ee1a1151f
Add SqliteNetworkConfigMaster::DBC for external access to raw sqlite3 db.
2015-03-20 12:21:18 -07:00
Adam Ierymenko
a8a92c5b89
A whole lot of Sqlite netconf master work, and some fixes elsewhere in the code.
2015-03-18 16:10:48 -07:00
Adam Ierymenko
cea3f28155
DB init works now.
2015-03-17 16:27:52 -07:00
Adam Ierymenko
ba69240bcb
Sqlite auto-init and version check.
2015-03-17 15:20:45 -07:00
Adam Ierymenko
49a2450e76
Include the Sqlite schema to auto-init the database.
2015-03-17 14:54:13 -07:00
Adam Ierymenko
278c8fd9f1
Wire up externally specified NetworkConfigMaster
2015-03-13 13:53:15 -07:00
Adam Ierymenko
61d89bd118
docs
2015-03-12 14:27:14 -07:00
Adam Ierymenko
1b0908fab2
Delete duplicate redis-schema.md
2015-03-12 14:04:21 -07:00
Adam Ierymenko
31bf0a4ea6
Netconf build fixes, schema, etc.
2015-03-12 14:03:53 -07:00
Adam Ierymenko
fab951e98a
Sqlite schema for netconf.
2015-03-12 09:56:03 -07:00
Adam Ierymenko
ab211cf599
Changed my mind design-wise on netconf/ -- will embed using SQLite. This fits much better into the OnePoint plans. I am also officially sick of NoSQL, which in this cases forces you to invent things that SQL gives you for free.
2015-03-11 08:44:38 -07:00
Adam Ierymenko
badf260e1f
Add historic protocol docs exhibit.
2015-03-02 06:50:42 -08:00
Adam Ierymenko
66f29f09da
Make clean fixes.
2015-02-26 14:54:56 -08:00
Adam Ierymenko
ecffa9f5e7
Redis network config master work, and the beginnings of some actual unit test code.
2015-02-24 16:15:01 -08:00
Adam Ierymenko
b6fba5934a
RedisNetworkConfigMaster in its own folder. Also fix some hex/decimal Redis database confusion.
2015-02-24 14:17:57 -08:00
Adam Ierymenko
78fc62d967
netconf/ is where Redis code lives
2015-02-24 12:41:24 -08:00
Adam Ierymenko
ff255a34de
Make NetworkConfigMaster a plugin to get Redis and other non-endpoint code out of node/
2015-02-24 12:28:58 -08:00
Adam Ierymenko
93012b0ee5
Re-incorporation: ZeroTier Networks -> ZeroTier, Inc. [Delaware]
2015-02-17 13:11:34 -08:00
Adam Ierymenko
89f0c948f8
Physical address change message verb.
2015-02-04 11:59:02 -08:00
Adam Ierymenko
eeed31b396
Ping supernodes on surface change, and also reset TCP flag.
2015-02-02 17:02:23 -08:00
Adam Ierymenko
b7148c107d
Rip out network environment fingerprint. This will be replaced by constant monitoring of actual external address surface.
2015-02-02 16:40:57 -08:00
Adam Ierymenko
b1bf3f68c3
Drop support for legacy P5 multicast, as there are fewer than 1% of these remaining on the network.
2015-02-02 16:34:01 -08:00
Adam Ierymenko
37d23336ed
Surface logic in Topology.
2015-02-02 16:23:26 -08:00
Adam Ierymenko
61cff47f5b
Code to track externally visible address surface.
2015-02-02 15:24:05 -08:00
Adam Ierymenko
c30bf7957e
Hash code method for InetAddress
2015-02-02 14:44:24 -08:00
Adam Ierymenko
d73a11b60b
Add netconf build option to Mac build file too.
2015-01-13 16:45:23 -08:00
Adam Ierymenko
83227dc386
Now demote Amsterdam supernode. Appears to be having issues due to some sort of poor hosting provider performance.
2015-01-13 08:43:38 -08:00
Adam Ierymenko
fbc6ca28b7
Merge branch 'adamierymenko-dev' of ssh://earth.zerotier.net:55522/git/ZeroTierOne into adamierymenko-dev
2015-01-12 09:49:11 -08:00
Adam Ierymenko
72f926dc41
Add new faster supernode in Paris, France.
2015-01-12 09:22:37 -08:00
Adam Ierymenko
eab3ca1401
docs
2015-01-09 18:44:17 -05:00
Adam Ierymenko
c8c5d3b06e
Create netconf master if redis options are in local.conf.
2015-01-09 18:25:41 -05:00
Adam Ierymenko
0b84c10ccc
Add confirmation step to new netconf, with the caveat that it will be disabled for older netconf servers to avoid race. Also add some comments.
2015-01-09 16:35:20 -05:00
Adam Ierymenko
afea153a0b
Build fixes.
2015-01-08 18:17:02 -05:00
Adam Ierymenko
64ba596e0b
C++ network config master ready to test.
2015-01-08 14:27:55 -08:00
Adam Ierymenko
60fb28a90a
Cleanup, new C++ netconf code is almost ready to test!
2015-01-06 17:16:54 -08:00
Adam Ierymenko
a369c69091
C++ netconf master Redis plumbing.
2015-01-06 13:45:10 -08:00
Adam Ierymenko
f043321281
Revised Redis schema.
2015-01-06 11:04:53 -08:00
Adam Ierymenko
b644d2a893
Add timestamp field to network config requests.
2015-01-05 17:51:50 -08:00
Adam Ierymenko
4e95384ad6
Cleanup, add tristate to config code in Network, and happy new year!
2015-01-05 17:47:59 -08:00
Adam Ierymenko
08ba2ff752
Upgrade LZ4.
2015-01-05 16:23:32 -08:00
Adam Ierymenko
efa0bab296
Stash old Node.JS netconf-service in attic/
2015-01-05 16:20:20 -08:00
Adam Ierymenko
96e9a90e8e
docs
2015-01-05 16:19:56 -08:00
Adam Ierymenko
87c599df5c
Back out service message type -- YAGNI violation.
2015-01-05 15:52:02 -08:00
Adam Ierymenko
56cfe1d603
Strip out old Service code, add new service message type.
2015-01-05 11:47:22 -08:00
Adam Ierymenko
95e303d6f3
VERSION 1.0.2: Experimental FreeBSD support!
...
Version 1.0.2 brings experimental FreeBSD support. It has ONLY been tested
on FreeBSD 10 on an x64 system, and should be considered alpha for this
platform for now.
This version is not going to be pushed out to the entire world via software
update, and the binary version distributed for other platforms via the
zerotier.com web site will remain 1.0.1 as there are no other meaningful
user-facing changes. This is just an interim release to let FreeBSD users
try it out. If you find bugs, please enter them on GitHub or do a pull
request and fix them yourself.
2014-12-19 15:25:28 -08:00
Adam Ierymenko
ebb63cce70
Merge branch 'adamierymenko-dev' of ssh://earth.zerotier.net:55522/git/ZeroTierOne into adamierymenko-dev
2014-12-19 15:24:23 -08:00
Adam Ierymenko
f24283a674
VERSION 1.0.2: Experimental FreeBSD support!
...
Version 1.0.2 brings experimental FreeBSD support. It has ONLY been tested
on FreeBSD 10 on an x64 system, and should be considered alpha for this
platform for now.
This version is not going to be pushed out to the entire world via software
update, and the binary version distributed for other platforms via the
zerotier.com web site will remain 1.0.1 as there are no other meaningful
user-facing changes. This is just an interim release to let FreeBSD users
try it out. If you find bugs, please enter them on GitHub or do a pull
request and fix them yourself.
2014-12-19 15:20:47 -08:00
Adam Ierymenko
f60dfe4963
FreeBSD works, and some documentation fixes.
2014-12-19 15:18:20 -08:00
Adam Ierymenko
536bcf6505
FreeBSD builds!
2014-12-19 14:33:58 -08:00
Adam Ierymenko
1a02bcc9f5
Fork OSXEthernetTapFactory -> BSDEthernetTapFactory
2014-12-19 13:34:06 -08:00
Adam Ierymenko
d10abab786
Remove &s from restarts in installer -- probably part of the restart problem.
2014-12-16 12:32:53 -05:00
Adam Ierymenko
ff539c22f9
locallyValidate() is expensive -- stop doing it on every HELLO since in most cases we already know the identity and know it is valid
2014-12-16 09:29:40 -08:00
Adam Ierymenko
0324ef2a47
VERSION 1.0.1
...
This version is mostly a bug fix release. It fixes a bug that could cause
the service to crash on Windows while running the GUI application. It also
contains a number of fixes to the Linux installer and Linux support for
systemd-based init systems.
It also includes a minor tweak to the multicast algorithm. Version 1.0.0
sent multicasts in a deterministic order, while this version randomizes
the order. The vast majority of users will notice nothing, but this may result
in superior coverage for service announcements on very large networks. It's
a hard variation to test, so we're releasing like this to gather information
from users about the effect. Nothing will change on small networks, and
ordinary multicast functions like ARP and NDP should be unaffected.
The next version will likely focus on additional improvements to Microsoft
Windows support, since there are several known Windows issues in need of
attention. We're working on an NDIS6-based Tap driver that should address
the driver issues experienced by a small number of Windows 7 users.
2014-12-05 12:10:18 -08:00
Adam Ierymenko
cd2bf6f4b3
Stash make-freebsd.mk in attic/ to indicate that the FreeBSD port is not done net. Coming soon!
2014-12-05 09:36:16 -08:00
Adam Ierymenko
ad4923846a
Add .autoupdating to Debian package version too.
2014-12-05 17:34:05 +00:00
Adam Ierymenko
83a6edd08e
Make RPM version contain .autoupdating to indicate that it auto updates outside normal RPM channels.
2014-12-05 12:26:53 -05:00
Adam Ierymenko
58f2dc5cf3
RPM build support in buildinstaller.sh
2014-12-04 20:13:41 -05:00
Adam Ierymenko
3a786ccc17
Set Debian arch correctly on armv6l (armhf)
2014-12-04 22:38:49 +00:00
Adam Ierymenko
b3a9bfca4d
Fix Debian package upgrade process.
2014-12-04 21:28:03 +00:00
Adam Ierymenko
03c7dc2b4c
Add .service to unit name in uninstall too.
2014-12-04 00:16:10 +00:00
Adam Ierymenko
000eac5a2b
Another systemd change... should fix problems on some systems.
2014-12-03 16:05:18 -08:00
Adam Ierymenko
62c31e70d4
Systemd permission fix in Linux installer.
2014-12-03 23:57:08 +00:00
Adam Ierymenko
1b6af7836e
Don't restart ZeroTier One service if version has not changed.
2014-12-03 23:25:06 +00:00
Adam Ierymenko
638ae153cc
fix service command, eliminate all uses of killall since it might be missing
2014-12-03 22:46:44 +00:00
Adam Ierymenko
059aaae7a9
Preinst and postinst Debian scripts.
2014-12-03 22:09:17 +00:00
Adam Ierymenko
4bf2fa3edb
Basic Debian package support in buildinstaller.sh
2014-12-03 21:40:33 +00:00
Adam Ierymenko
149dbff3ea
Windows Visual Studio meaningless-warning-ectomy.
2014-12-02 16:50:53 -08:00
Adam Ierymenko
c030294bf5
Clean up some unused Windows files.
2014-12-02 16:43:01 -08:00
Adam Ierymenko
30e82a4d9c
Fix network enumeration buffer size bug -- reported by user Neal Symms via LiveAgent
2014-12-02 12:53:30 -08:00
Adam Ierymenko
8c64046a53
docs
2014-11-26 14:59:43 -08:00
Adam Ierymenko
04e4c5263e
Remove more legacy code -- just doing the supernode redist for old multicast is now good enough given the small number of legacy nodes left.
2014-11-26 13:39:57 -08:00
Adam Ierymenko
4303376ba6
cleanup and docs
2014-11-26 13:30:00 -08:00
Adam Ierymenko
cda61fe2d9
docs and cleanup
2014-11-26 13:14:18 -08:00
Adam Ierymenko
0f505411cf
Enable legacy multicast in Constants.
2014-11-25 14:12:33 -08:00
Adam Ierymenko
15d3e383e6
Add ZT_SUPPORT_LEGACY_MULTICAST ifdef to enable the legacy code to all be toggled.
2014-11-25 12:46:51 -08:00
Adam Ierymenko
6888c6482c
Re-enable legacy multicast distribution -- still too many pre1.0.0 nodes online.
2014-11-24 10:37:34 -08:00
Adam Ierymenko
d772639cc6
Multicast code cleanup.
2014-11-24 10:05:16 -08:00
Adam Ierymenko
acac88cf77
A few more tweaks to MC algo...
2014-11-23 14:00:27 -08:00
Adam Ierymenko
0bcac1fd79
Add a bunch of high-resolution try/catch safety in Node main loop to attempt to snare gremlin.
2014-11-21 11:54:06 -08:00
Adam Ierymenko
959f611a65
Fix thinko in multicast changes... works now!
2014-11-21 11:27:53 -08:00
Adam Ierymenko
7619b0ecbd
Send multicasts in random order.
...
This should not affect most users, but on large networks it should cause service
announcements to work a lot better. This is the result of a prolonged discussion
with a user about the visibility of game servers on a large network. The old
multicast algorithm was de-facto randomized due to its distributed nature, while
the new algorithm is more deterministic. This will restore some randomization
beyond limit-overflow conditions.
It won't affect small networks at all.
2014-11-21 10:50:27 -08:00
Adam Ierymenko
0c85b4ef5f
Tweak to symmetric NAT buster to add one to the number of ports above the current one it attempts.
2014-11-20 13:42:18 -08:00
Adam Ierymenko
ee9e6a3c6b
Change path selection logic to exclude non-fixed and non-active paths -- possible fix for "NAT traversal coma" issue. Also fix a typo.
2014-11-20 13:20:16 -08:00
Adam Ierymenko
7b6f10e859
Optimization: we don't need to verify signatures on certs if they're certs we already have and have verified.
2014-11-13 12:40:51 -08:00
Adam Ierymenko
c61e9c0ef9
Prevent "software laser" in legacy multicast support. Already hotpatched in supernodes.
2014-11-13 14:21:06 -05:00
Adam Ierymenko
b1b37d9d72
Increase paltry listen() backlog size to prevent Linux kernel syn flood fallback (only really affects supernodes).
2014-11-12 14:05:03 -08:00
Adam Ierymenko
1bd5a1ebcd
Make selftest build and run on FreeBSD 10 with gmake
2014-11-04 11:20:38 -08:00
Adam Ierymenko
14e4ffd15f
VERSION 1.0.0
...
ZeroTier 1.0.0 brings a number of under the hood improvements and bug
fixes. These include but are not limited to:
* A simpler, faster multicast algorithm that places full burden
for multicast propagation on the sender. This results in better
fairness without CPU-intensive signature/verify on every packet,
lower latency for intra-data-center SDN operations, and avoids
distributed burdens that are intrinsically unfriendly to mobile
clients subject to wake frequency limits and battery life
constraints. In the future this may be augmented to allow
optimized delivery to multiple recipients at the same site via
federation.
* Significant code reorg to move toward mobile support (iOS, Android)
and future SDK packaging.
* A number of efficiency and stability improvements.
* Bug fixes for Linux and ARM users.
* Improved NAT traversal, including limited support for port
numbering scheme guessing to traverse some symmetric NATs.
Upgrade from 0.9.x is not required but is strongly recommended. Older
clients using the old multicast algorithm are presently supported via
legacy hooks, and these may go away at some point in the future. We'll
monitor the status of the network and try to keep legacy support around
as long as people need it, but it'll probably be pulled once 95%+ of
clients are 1.0.0 or newer.
The next versions will bring further bug fixes, improved user experience,
more enterprise-grade features for intra-data-center use, and more!
2014-10-30 12:49:16 -07:00
Adam Ierymenko
16461eca1f
docs
2014-10-30 12:47:26 -07:00
Adam Ierymenko
8f29f19e98
Fix for UI client.
2014-10-30 00:12:45 -07:00
Adam Ierymenko
5ca20da7af
Windows service fix -- it helps if we actually launch the control socket thing.
2014-10-29 23:57:54 -07:00
Adam Ierymenko
8bd9f7d51d
Build fix for UI and mac.
2014-10-29 19:54:24 -07:00
Adam Ierymenko
0e84eb3852
Back off default multicast limit just a little.
2014-10-29 18:25:24 -07:00
Adam Ierymenko
4923ab2945
Windows build fix, set up Windows solution with new layout.
2014-10-29 17:40:23 -07:00
Adam Ierymenko
4c59497b95
Linux build fixes for testnet.
2014-10-29 16:32:24 -07:00
Adam Ierymenko
5484cf4309
More cleanup, and fix a bug in Multicaster::gather()
2014-10-29 16:24:19 -07:00
Adam Ierymenko
22d8aa4dc9
Moderate efficiency improvement on multicast gather result parsing, and go ahead and keep track of total known peers.
2014-10-29 15:26:32 -07:00
Adam Ierymenko
95f421024a
Code cleanup, and fix some unsafe pointer handling in Network.
2014-10-29 13:57:37 -07:00
Adam Ierymenko
f65b48d447
Thread sync bug...
2014-10-28 17:29:45 -07:00
Adam Ierymenko
5bb854e504
Fix a nasty bug introduced in packet fragmentation a while back during refactoring, and a few other things related to multicast.
2014-10-28 17:25:34 -07:00
Adam Ierymenko
faff84e63a
docs
2014-10-28 16:14:05 -07:00
Adam Ierymenko
9a5f6f020f
docs
2014-10-28 15:53:11 -07:00
Adam Ierymenko
4dec598fb8
Make multicast gather slightly more aggressive, and add total to list command in testnet.
2014-10-28 15:33:10 -07:00
Adam Ierymenko
3e948fcd93
.... aaaaaaand multicast testnet functionsa are in!
2014-10-28 15:06:43 -07:00
Adam Ierymenko
8aa75321e2
docs
2014-10-28 14:46:15 -07:00
Adam Ierymenko
ffbf0781fe
docs
2014-10-28 14:27:21 -07:00
Adam Ierymenko
e4966c7a07
docs
2014-10-28 14:25:44 -07:00
Adam Ierymenko
ac23f74547
docs
2014-10-28 14:24:07 -07:00
Adam Ierymenko
fa60463da5
docs
2014-10-28 14:23:39 -07:00
Adam Ierymenko
3d85a615fb
NULL dereference on still-initializing node bug fix in status query commands, and doc updates.
2014-10-28 14:17:39 -07:00
Adam Ierymenko
f873881a0d
Helps to use a proper multithreaded queue instead of ugly plebian hackery.
2014-10-28 12:28:45 -07:00
Adam Ierymenko
934a575a74
Testnet seems to work a bit better now...
2014-10-27 18:23:10 -07:00
Adam Ierymenko
fe7b429866
...
2014-10-27 17:32:37 -07:00
Adam Ierymenko
295f6a20e0
Testnet works! sort of...
2014-10-27 14:25:00 -07:00
Adam Ierymenko
6a94a4a51b
Testnet WIP
2014-10-27 09:03:38 -07:00
Adam Ierymenko
8672ca9cf8
Prep for real tests like alltoall.
2014-10-24 17:29:09 -07:00
Adam Ierymenko
a75a7547b4
Deadlock fix...
2014-10-24 17:11:23 -07:00
Adam Ierymenko
3857116724
More testnet work.
2014-10-24 16:35:06 -07:00
Adam Ierymenko
5c7cd53f13
Testnet sort of works! spins up supernodes.
2014-10-24 08:48:44 -07:00
Adam Ierymenko
4fbb098daa
Testnet work... getting there!
2014-10-23 16:46:09 -07:00
Adam Ierymenko
0a195e7bc0
Some work on simulated net...
2014-10-22 09:52:29 -07:00
Adam Ierymenko
ae228ade8c
Starting on simulated socket manager.
2014-10-21 17:00:25 -07:00
Adam Ierymenko
4a5756e7fb
cleanup
2014-10-21 16:21:45 -07:00
Adam Ierymenko
29ba34ab7c
Kill old testnet stuff, update main.cpp for new SocketManager abstraction.
2014-10-21 15:33:35 -07:00
Adam Ierymenko
2436e22f46
More work on abstracting socket manager.
2014-10-21 15:18:50 -07:00
Adam Ierymenko
128a131070
About halfway there in refactoring to support pluggable SocketManager.
2014-10-21 14:26:10 -07:00
Adam Ierymenko
6bc9a938cf
Move socket manager implementation into osnet/
2014-10-21 11:25:31 -07:00
Adam Ierymenko
0e47f13f14
Simplify locking semantics some more to address a deadlock.
2014-10-21 10:42:04 -07:00
Adam Ierymenko
7c0f5e97e1
Don't need to check peer version for every item in txQueue since there is only one peer.
2014-10-19 15:20:19 -07:00
Adam Ierymenko
0fd562bebc
One more Windows build fix.
2014-10-19 13:10:23 -07:00
Adam Ierymenko
8730d30575
Now for some clang compile fixes...
2014-10-19 13:07:50 -07:00
Adam Ierymenko
babf3787c6
Switch VS2012 build back to real, not self-test.
2014-10-19 12:58:13 -07:00
Adam Ierymenko
74f36f5dc0
Windows build fixes.
2014-10-19 12:56:39 -07:00
Adam Ierymenko
2eeb3dee9e
Merge branch 'adamierymenko-dev' of ssh://shub-niggurath.zerotier.com:222/git/ZeroTierOne into adamierymenko-dev
2014-10-18 15:02:03 +02:00
Adam Ierymenko
4951e5e1b5
This is a --strategy=ours merge to allow adamierymenko-dev to replace
...
the current content of detached-network-test. This is ready for another
test in 'headless' mode.
Merge branch 'detached-network-test' into adamierymenko-dev
2014-10-18 15:00:47 +02:00
Adam Ierymenko
6429c51ec7
Merge branch 'detached-network-test' into adamierymenko-dev
2014-10-18 14:57:04 +02:00
Adam Ierymenko
a8bd8fff93
Make several changes to eliminate potential deadlock or recursive lock conditions, and add back rescan of multicast groups on network startup.
2014-10-14 16:38:27 -07:00
Adam Ierymenko
a94b0e6a43
Get rid of rescanMulticastGroups() in Network thread since this can deadlock... the fact that this can happen is probably bad design.
2014-10-14 15:58:03 -07:00
Adam Ierymenko
7a37326cc0
Fix sleeper bug that probably did nothing in setSupernodes().
2014-10-14 14:59:17 -07:00
Adam Ierymenko
42d644a57e
More fixes to legacy support, and to a potential issue on quit.
2014-10-14 12:37:35 -07:00
Adam Ierymenko
023cac4ebb
Add -g to optimized crypto code in ZT_DEBUG=1 build mode.
2014-10-14 10:22:27 -07:00
Adam Ierymenko
2416491cbc
Permanently retire peers.persist, but make iddb.d always enabled instead since identities are what we really want to cache.
2014-10-13 14:12:51 -07:00
Adam Ierymenko
6e23986bb3
Another build fix.
2014-10-13 13:09:02 -07:00
Adam Ierymenko
1921e28c5f
Build fix.
2014-10-13 12:35:43 -07:00
Adam Ierymenko
52314dcdf6
GitHub issue #111
2014-10-13 11:47:14 -07:00
Adam Ierymenko
d8d4aace42
Fix for init.d/zerotier-one (again)
2014-10-13 12:55:16 -04:00
Adam Ierymenko
05309037a8
Yank potentially costly support for TTL out of UdpSocket since we dont use this anymore.
2014-10-13 09:37:17 -07:00
Adam Ierymenko
7943414c89
Part two of fix to GitHub issue #118 -- need to test thoroughly though.
2014-10-13 08:15:00 -07:00
Adam Ierymenko
c7c545bf6c
Fix for part one of GitHub issue #118
2014-10-13 08:11:19 -07:00
Adam Ierymenko
6316011024
Make crypto and compression build optimized in debug, and also try disabling peers.persist -- might ship this way as it seems more trouble than its worth.
2014-10-12 11:42:49 -07:00
Adam Ierymenko
8b0846d077
Delete bunch of commented out code.
2014-10-11 16:53:21 -07:00
Adam Ierymenko
0d017c043f
Stop persisting last announcement time since Multicaster is volatile. Also some more legacy multicast fixes.
2014-10-11 16:26:02 -07:00
Adam Ierymenko
c2aac69a9f
Fixes to legacy peer support.
2014-10-11 15:49:31 -07:00
Adam Ierymenko
a9c6913f12
.
2014-10-11 10:38:52 -07:00
Adam Ierymenko
e071c05f1b
Add a sanity limit to legacy multicast repeater function in supernode-mode nodes, and change netconf-master to issue multicast limit (ml) instead of old p5 stuff.
2014-10-10 14:59:07 -07:00
Adam Ierymenko
03dc823ad7
(1) Back off a little on default max multicast limit since 128 is pretty bandwidth heavy, (2) add a little to default multicast rate limit since new MC algo is fairerererer, (3) decided not to involve netconf masters in multicast so take that out of list of who gets LIKEs.
2014-10-10 12:55:06 -07:00
Adam Ierymenko
1774e615a1
<= MTU
2014-10-10 09:09:56 -07:00
Adam Ierymenko
56f8f8aa24
Return self in GATHER requests if self is a member of multicast group, and reinstate legacy support.
2014-10-09 18:32:05 -07:00
Adam Ierymenko
4941c8a1f3
New multicast bug fixes, TRACE improvements, and temporarily disable legacy multicast for debugging purposes.
2014-10-09 17:58:31 -07:00
Adam Ierymenko
d5e0f7e3e4
Reorg multicast packet, and a whole bunch of refactoring around the pushing of certificates of membership.
2014-10-09 12:42:25 -07:00
Adam Ierymenko
620e64c58f
Supernode propagation of legacy multicast frames was brokezored.
2014-10-09 09:03:12 -07:00
Adam Ierymenko
b809dad94a
Bug fix in zerotier-cli (Unix)
2014-10-07 16:16:22 -07:00
Adam Ierymenko
b13845e528
.
2014-10-07 15:26:12 -07:00
Adam Ierymenko
3f15752f73
Add IPv4 address assignment to ffffffffffffffff test network.
2014-10-07 14:34:00 -07:00
Adam Ierymenko
cb6fd3afb3
g++ compiler warning fix
2014-10-07 13:18:08 -07:00
Adam Ierymenko
7788a3d45d
.
2014-10-06 14:56:49 -07:00
Adam Ierymenko
923c325a40
Add another private-testnet root topology debug option using 10.0.0.1 as the supernode.
2014-10-06 13:19:04 -07:00
Adam Ierymenko
87f1b1b1e3
Bug fix in new multicast frame handler, handling of old "P5" multicast frames in new way.
2014-10-06 13:16:16 -07:00
Adam Ierymenko
ab22feba9a
Bump version to 1.0.0, add legacy support code to Multicaster to not send new frame to known-to-be-old peers.
2014-10-05 10:34:25 -07:00
Adam Ierymenko
10c196df50
Send a VERB_P5_MULTICAST_FRAME to the supernode for each multicast -- for now. This will allow supernodes to echo these down to pre-1.0.0 peers.
2014-10-04 13:46:29 -07:00
Adam Ierymenko
2c8321be1f
Pull logic to always send new multicasts to supernode since we need to do that differently, re-add support for active bridges, and remove some gratuitous use of std::set where not needed.
2014-10-04 13:15:02 -07:00
Adam Ierymenko
62da7e67b6
Add some rate limiting to implicit gathers, and always send multicasts to at least one supernode so they can broadcast to old peers (temporary).
2014-10-03 22:30:10 -07:00
Adam Ierymenko
e7c81ef34e
Turns out that needed to be a list after all. Also clean up Multicaster::gather().
2014-10-03 22:03:19 -07:00
Adam Ierymenko
3f7e7e8a88
Do not multicast to self.
2014-10-03 18:42:41 -07:00
Adam Ierymenko
496109fdcc
Announce multicast group changes on network rescanMulticastGroups()
2014-10-03 18:27:42 -07:00
Adam Ierymenko
aad344bb84
Add test network support to Network.
2014-10-03 16:14:34 -07:00
Adam Ierymenko
13fc20b0ee
Add inject (undocumented in help) to NodeControlService.
2014-10-03 15:59:49 -07:00
Adam Ierymenko
351db7f1a0
Plumb injectPacketFromHost through to API.
2014-10-03 14:49:11 -07:00
Adam Ierymenko
6ab7b1b915
Add local-testnet clean script, and make a really ugly hacky fix in main.c for the -q option. (All that personality stuff needs to be rewritten. Yuck.)
2014-10-03 13:41:52 -07:00
Adam Ierymenko
f853bc6a86
Fix root topology override
2014-10-03 13:19:13 -07:00
Adam Ierymenko
d7189dd6c7
.
2014-10-03 13:06:13 -07:00
Adam Ierymenko
5fc3c0812a
run-local-testnet script
2014-10-03 13:02:36 -07:00
Adam Ierymenko
67aa23530b
More work on adding testnet and user-mode capabilities for local network simulation.
2014-10-03 11:59:50 -07:00
Adam Ierymenko
2a58c3fb98
Root topology testnet stuff... will ship this so people can easily run the local testnet app.
2014-10-03 09:36:39 -07:00
Adam Ierymenko
96fa3f7550
Work on in-place testnet support.
2014-10-02 16:33:08 -07:00
Adam Ierymenko
1109046782
Last steps before test: parse OK(MULTICAST_GATHER) and OK(MULTICAST_FRAME)
2014-10-02 13:50:37 -07:00
Adam Ierymenko
49dc47ff38
Make multicast gathering a bit smarter.
2014-10-02 11:35:37 -07:00
Adam Ierymenko
dee86e2448
But since we are now using middle 3 bits we can assign sane values for the cipher suite enum.
2014-10-02 11:13:53 -07:00
Adam Ierymenko
17da733f97
Gotta support old encrypted flag, move cipher spec to middle 3 bits... due to some shortsighted design early-on. In the future this can die once there are no old peers.
2014-10-02 11:08:59 -07:00
Adam Ierymenko
23836d4c11
Change "encrypted" flag to full cipher suite selector. Go ahead and reserve AES256-GCM which might be added in the future.
2014-10-02 10:54:34 -07:00
Adam Ierymenko
e53d208ea4
Improve security posture by eliminating non-const data() accessor from Buffer.
2014-10-02 10:06:29 -07:00
Adam Ierymenko
e8c5495b61
Yes, zero my secret key data. Yes I really, really mean it.
2014-10-02 09:08:31 -07:00
Adam Ierymenko
28646eee0a
A bit more IncomingPacket cleanup... almost ready to test, just need OK() handling.
2014-10-01 16:29:52 -07:00
Adam Ierymenko
e1882b614b
Some cleanup, Multicaster now sends multicasts as it gets additional members.
2014-10-01 14:05:25 -07:00
Adam Ierymenko
ae082c3cb8
Yay... now everything compiles! Getting close to testing on this. Still have not added backward compatibility support for relaying of multicasts to 0.9.X clients yet but that will be easy. Will test with heterogenous 1.0.0 clients only first.
2014-10-01 12:41:48 -07:00
Adam Ierymenko
ea6124dd2f
IncomingPacket builds!
2014-09-30 17:33:20 -07:00
Adam Ierymenko
b41437780b
Add origin to new MULTICAST_FRAME, move security check for certs into Network to remove redundant code and bug-proneness, more work on IncomingPacket...
2014-09-30 17:26:34 -07:00
Adam Ierymenko
2659427864
Multicaster needs to be global, not per-network, and a bunch of other stuff.
2014-09-30 16:28:25 -07:00
Adam Ierymenko
8607aa7c3c
Everything in for new multicast except IncomingPacket parsing...
2014-09-30 08:38:03 -07:00
Adam Ierymenko
ed0ba49502
A few more revisions to new multicast verbs.
2014-09-26 14:18:25 -07:00
Adam Ierymenko
2d41055bdc
Some Network code cleanup.
2014-09-26 12:23:43 -07:00
Adam Ierymenko
027060dad1
Most of new multicast code builds... now on to packet parsing.
2014-09-25 22:13:31 -07:00
Adam Ierymenko
0778332747
.
2014-09-25 22:08:52 -07:00
Adam Ierymenko
9e186bbd89
.
2014-09-25 15:57:43 -07:00
Adam Ierymenko
050a0ce85d
.
2014-09-25 15:08:29 -07:00
Adam Ierymenko
6c87f9f765
Rename MulticastTopology to Multicaster -- same name as old multicast controller but different code. More descriptive though.
2014-09-24 14:02:16 -07:00
Adam Ierymenko
81b12b6826
Rename the ubiquitous _r pointer to RuntimeEnvironment to RR just to be a little more consistent about using _ to denote private member variables.
2014-09-24 13:53:03 -07:00
Adam Ierymenko
431476e2e4
Some more multicast algo work...
2014-09-24 13:45:58 -07:00
Adam Ierymenko
557801a09e
Rename PacketDecoder to much more descriptive IncomingPacket
2014-09-24 09:04:09 -07:00
Adam Ierymenko
9180a30986
.
2014-09-24 09:01:58 -07:00
Adam Ierymenko
61d0f27d2a
Make MulticastTopology have its own mutex.
2014-09-23 10:26:30 -07:00
Adam Ierymenko
c49e253e21
.
2014-09-22 15:03:16 -07:00
Adam Ierymenko
954f9cbc13
Yet more WIP on mulitcast algo...
2014-09-22 13:18:24 -07:00
Adam Ierymenko
d9abd4d9be
Work on defining new direct broadcast multicast algorithm.
2014-09-18 18:28:14 -07:00
Adam Ierymenko
d37c3ad30f
VERSION 0.9.3: unreleased update with some fixes for Pi users
...
This version is being tagged and bagged, despite the fact that it's not
going to be released and won't be merged into master until 1.0.0 is ready.
It contains several Linux build fixes, a fix for a unix domain socket resource
leak, and build fixes for the Raspberry Pi.
2014-09-18 13:40:58 -07:00
Adam Ierymenko
4708231046
Fix for GitHub issue #122 and other fixes
2014-09-18 10:01:30 -07:00
Adam Ierymenko
924f030994
docs
2014-09-18 09:41:12 -07:00
Adam Ierymenko
6b76cac6cf
Back off from thrashing shutdownIfUnreadableCheck, fix bug in control service.
2014-09-17 14:19:58 -07:00
Adam Ierymenko
2762db8408
More work on control bus refactor...
2014-09-17 12:54:39 -07:00
Adam Ierymenko
edff13dcae
More control/ refactoring
2014-09-17 09:50:49 -07:00
Adam Ierymenko
e22fae2397
it compiles again!
2014-09-16 15:47:00 -07:00
Adam Ierymenko
73dd9d3b74
Make sure open() has third argument
2014-09-16 08:58:49 -07:00
Adam Ierymenko
8d2e20ede6
Get rid of __align stuff in Salsa20 -- not portable, does not seem to help much on newer chips.
2014-09-16 08:53:18 -07:00
Adam Ierymenko
5c1c70a604
cleanup
2014-09-16 08:19:39 -07:00
Adam Ierymenko
fb22ef053b
Move rest of NodeControl stuff out of node/ and into control/
2014-09-15 16:32:55 -07:00
Adam Ierymenko
4ba4269344
cleanup
2014-09-15 09:45:57 -07:00
Adam Ierymenko
2dcf584834
rename ipc/ to control/
2014-09-15 09:44:29 -07:00
Adam Ierymenko
13aba7640b
refactoring for SDK
2014-09-15 09:43:57 -07:00
Adam Ierymenko
2e46bb4264
build fixes
2014-09-13 14:15:26 -07:00
Adam Ierymenko
1d37204a37
Refactoring in progress... pardon our dust...
2014-09-12 16:57:37 -07:00
Adam Ierymenko
6b4346d1ac
work in progress on API refactor
2014-09-10 17:16:40 -07:00
Adam Ierymenko
ea0f836ef1
Turns out we do want to propagate packets unauthenticated in the supernode case. This is fine.
2014-09-08 14:33:12 -04:00
Adam Ierymenko
b8729de9da
Temporarily DISABLE multicast authentication (doing in branch, will reenable in dev)
2014-09-08 08:25:06 -07:00
Adam Ierymenko
4e9280fc7a
Rip out dead "firewall opener" code, replace in pipeline with anti-symmetric-NAT tactics.
2014-09-05 16:23:24 -07:00
Adam Ierymenko
d02ecfb288
IP assignment and change cleanup -- leave IPs that were never configured via ZT static assignment alone.
2014-09-05 15:35:09 -07:00
Adam Ierymenko
3afc629ac5
Bit of network config parser cleanup.
2014-09-05 14:56:11 -07:00
Adam Ierymenko
6e1339fedf
Remove zerotier-idtool symlink on mac uninstall.sh
2014-09-05 11:39:54 -07:00
Adam Ierymenko
7d4b6767eb
Old-school GCC build fix -- make sure __GCC__ is defined
2014-09-05 17:48:59 +00:00
Adam Ierymenko
93f9b4392d
Enable configuration of multicast algorithm parameters in netconf
2014-09-04 14:25:07 -07:00
Adam Ierymenko
6df9546742
Fix for missing broadcast address on Linux Ethernet taps.
2014-09-04 13:36:25 -04:00
Adam Ierymenko
4dbeb97eb9
docs
2014-09-03 16:50:06 -07:00
Adam Ierymenko
34349d1a61
docs
2014-09-03 16:48:02 -07:00
Adam Ierymenko
6497a4a0f6
initdb changes
2014-09-03 19:15:53 -04:00
Adam Ierymenko
b8d29cb6ba
Some netconf-service renames and add initdb script for user use.
2014-09-03 20:04:58 +00:00
Adam Ierymenko
e77e224171
bin2c warning removed
2014-09-03 12:25:28 -07:00
Adam Ierymenko
dcea212e40
Add noupdate flag in root topologies, add ability for mktopology to read from a template.
2014-09-03 11:56:36 -07:00
Adam Ierymenko
644db7a04a
Let people build installers for any machine type on Linux, just canonicalize the x86 and x86_64 types.
2014-08-27 20:15:41 -04:00
Adam Ierymenko
00b16f6aa6
Fix for GitHub issue #110 -- failure to bind IPv6 now non-fatal
2014-08-27 20:09:56 -04:00
Adam Ierymenko
1952db5069
Only enable SSE Salsa20 on x86 and x86_64 Linux
2014-08-27 20:01:24 -04:00
Adam Ierymenko
6f8364ba59
VERSION 0.9.2:
...
The primary focus of this version is better integration with the
Microsoft Windows operating system.
Virtual networks should now be detected as "real" networks. For
each network, a message box should pop up the first time the network
is detected and classified allowing the user to choose its services
and security designation. On Windows 7 this is "work," "home," or
"public." On Windows 8 it's a simple choice of whether or not to
enable file and printer sharing and other services.
Several bugs have been fixed. Among these are a Windows threading
issue, several minor threading deadlock issues that could manifest
if rapidly adding and removing networks, and a command line interface
issue. The network list now shows the network MAC address as well,
a UI oversight in previous versions. A vectorized SSE implementation
of Salsa20 is now included for improved encrypt/decrypt performance.
The sending of low-TTL "firewall opener" packets has been disabled
in this version, since they may not be necessary and may harm NAT
traversal in some configurations. We will measure the effectiveness
of NAT traversal and see if this change improves performance in the
field.
Finally, this version obsoletes both the Tokyo and Sydney supernodes
in favor of a single larger supernode in Singapore. This decision was
made on the basis of bandwidth costs-- both Tokyo and Sydney are
significantly more expensive. We'd like to keep the basic service free,
so keeping bandwidth costs for relaying low is important. Since NAT
traversal works well and is constantly being improved, most users will
not see a speed decrease from this. Some Chinese users may see
improved performance since Singapore may be closer than Tokyo to many
Chinese cities.
The next major releases will focus on better Macintosh platform integration,
further improvements to NAT traversal, and UI improvements.
2014-08-22 12:05:56 -07:00
Adam Ierymenko
eadff71d37
Another fix to Network life cycle.
2014-08-21 18:07:27 -07:00
Adam Ierymenko
af62a6cade
Forgot to uncomment secret debug #define of death.
2014-08-21 17:49:46 -07:00
Adam Ierymenko
de4e29288d
Fix for crazy Windows threading bug... repeatedly adding and removing a network now doesn't leave networks in limbo.
2014-08-21 17:49:05 -07:00
Adam Ierymenko
44d58ee871
Change 1.1.1.1 pseudo-IP used for default route hack to 25.255.255.254, since 1.1.1.1 is from a now-in-use IPv4 block while 25.0.0.0/8 is still unrouted. It can be changed in the future without impacting anything, since Windows keys off the MAC not the IP to classify networks.
2014-08-21 08:26:39 -07:00
Adam Ierymenko
9d5819ff44
Version bump to 0.9.2 -- preparing for release...
2014-08-20 18:29:27 -07:00
Adam Ierymenko
08d7fe0432
Fix for GitHub issue #102
2014-08-20 12:36:11 -07:00
Adam Ierymenko
9f2571cc01
Some UI fixes for Windows.
2014-08-20 10:22:30 -07:00
Adam Ierymenko
b4b2e2ed9f
...
2014-08-19 18:21:21 -07:00
Adam Ierymenko
17ebd0afc7
Disable service management in UI -- installer should automatically start service and this is annoying for testing purposes.
2014-08-19 18:14:50 -07:00
Adam Ierymenko
351b7f3a09
UI stuff and sign .dmg on build.
2014-08-19 17:42:17 -07:00
Adam Ierymenko
721625d512
Add MAC to listnetworks, and some other make stuff.
2014-08-19 14:11:02 -07:00
Adam Ierymenko
282114e96c
Makefile changes, and make Topology::getBestSupernode() return the "next" supernode if I am a supernode. Also some comment cleanup.
2014-08-19 10:09:21 -07:00
Adam Ierymenko
95d123cfc2
Do HttpClient refactoring for Windows.
2014-08-18 14:34:04 -07:00
Adam Ierymenko
f5cbb45ab9
Increase sleep/wake detection threshold... might want to switch to using native interfaces to really detect this in the future since this is not 100% reliable.
2014-08-18 10:13:25 -04:00
Adam Ierymenko
b7b9b9c0b7
Add "make debug" to make building debug one-offs easier (Linux).
2014-08-18 10:07:03 -04:00
Adam Ierymenko
715afc0314
Default to built-in root topology if signature check fails (instead of exiting)
2014-08-16 14:01:25 -07:00
Adam Ierymenko
f281886bfd
Small thread safety fix in HttpClient.
2014-08-16 13:32:33 -07:00
Adam Ierymenko
4f0fcc582e
Refactor HttpClient a bit.
2014-08-16 09:08:52 -07:00
Adam Ierymenko
aa59cfd545
Web request part of supernode resync (not quite done, needs test)
2014-08-15 23:37:35 -04:00
Adam Ierymenko
f696299cfc
docs
2014-08-15 12:59:49 -04:00
Adam Ierymenko
b0719eacf9
Add encrypt/decrypt to attic.
2014-08-15 12:59:07 -04:00
Adam Ierymenko
c2187c8759
(1) distribute default root-topology in new dictionary format, (2) bump peer serialization version to force obsolescence of old supernodes, (3) stop outputting a log message every time we poll for software updates
2014-08-14 19:52:22 -04:00
Adam Ierymenko
56296f96db
Regenerate root topology dictionary with field fix.
2014-08-14 18:54:53 -04:00
Adam Ierymenko
be6b61b1bc
Accept supernode dictionaries in Topology, also fix (unused) field name in one of these.
2014-08-14 18:06:18 -04:00
Adam Ierymenko
f8d4611d15
(1) Tweak LAN locator beacon frequencies, (2) Windows virtual networks
...
now show up as *real* networks and prompt the user to set their
location and firewall status (public, private, home/work, etc.).
The hack used to achieve #2 should not be examined by children or those
suffering from epilepsy or heart conditions.
2014-08-12 17:20:34 -07:00
Adam Ierymenko
f25bd41a03
Some fixes to firewall config code.
2014-08-08 15:53:27 -07:00
Adam Ierymenko
fe3ad5e2cc
Fix a Windows bug in refactored tap code, and always make sure we have a firewall exception rule on startup.
2014-08-08 14:57:13 -07:00
Adam Ierymenko
502ea66f15
Kill ugly old getSecureRandom() and replace with simple wrapper for Windows CAPI and *nix /dev/urandom, and some build fixes.
2014-08-08 11:53:55 -07:00
Adam Ierymenko
673aab5ba2
Fix an oversight in signed dictionaries: the timestamp and signing identity should themselves be part of the signature. Also include the raw dictionary in addition to the bin2c version in root-topology/
2014-08-08 12:46:00 -04:00
Adam Ierymenko
77457cbff1
Windows compile fixes, compiler warning fix, unfreed memory fix in main.c (though it would not have mattered since program exits immediately after).
2014-08-07 19:08:41 -07:00
Adam Ierymenko
db0d17cebb
Change topology URL to something prettier.
2014-08-07 20:27:05 -04:00
Adam Ierymenko
dd58006d65
Rename topology/ to be more descriptive, and some more updates.
2014-08-07 20:21:07 -04:00
Adam Ierymenko
f0ebb0b0f1
More root topology stuff.
2014-08-07 20:14:24 -04:00
Adam Ierymenko
8c9d3146df
make clean fix
2014-08-07 18:46:04 -04:00
Adam Ierymenko
117f977ce3
mktopology for making new signed topology root server dictionaries
2014-08-07 18:45:11 -04:00
Adam Ierymenko
d8e5d9d6e8
Singapore supernode -- its baaaack
2014-08-07 21:19:34 +00:00
Adam Ierymenko
1f5feb75fb
LinuxEthernetTap refactor.
2014-08-07 20:40:23 +00:00
Adam Ierymenko
05031ff938
Linux build stuff.
2014-08-07 13:05:17 -04:00
Adam Ierymenko
adfb71fa6b
Compile for for TRACE, remove old TESTNET cruft.
2014-08-07 08:49:43 -07:00
Adam Ierymenko
37341048a9
Silence kextload/kextunload output, error handling improvements.
2014-08-07 08:41:57 -07:00
Adam Ierymenko
b3491f9de1
ifdef out Unix-only output redirect function on Windows
2014-08-07 06:36:46 -07:00
Adam Ierymenko
80fc584923
Fix for GitHub issue #97
2014-08-07 06:35:54 -07:00
Adam Ierymenko
b7389995f4
Make install scripts also symlink zerotier-idtool script, and doc updates.
2014-08-07 06:25:01 -07:00
Adam Ierymenko
92d9ad4a7f
Some tap interface changes and integration into main.cpp for *nix systems.
2014-08-06 16:24:30 -07:00
Adam Ierymenko
8a804b5257
(1) Disable firewall openers (its easy to re-enable), (2) Do some prep work for making supernode topology hot-updatable.
2014-08-05 14:05:50 -07:00
Adam Ierymenko
e3c5ada3a7
Add signatures to Dictionary, and fix unhex() API in Utils to be a little safer.
2014-08-05 09:56:49 -07:00
Adam Ierymenko
7adf0eac7e
Windows Ethernet tap refactoring complete.
2014-08-04 21:48:59 -07:00
Adam Ierymenko
df0a8e8450
Linux routing table now works.
2014-07-31 20:13:29 -04:00
Adam Ierymenko
526435859f
Newly broken out OSX tap driver builds now.
2014-07-31 15:13:48 -07:00
Adam Ierymenko
98d426e1d5
Path fixes in osnet/ stuff
2014-07-31 14:31:32 -07:00
Adam Ierymenko
b80c229d87
Tons of code cleanup, refactor Network to use EthernetTapFactory, probably also fix GitHub issue #90
2014-07-31 14:09:32 -07:00
Adam Ierymenko
9b93141dd0
Upgrade LZ4 to latest version.
2014-07-30 15:34:15 -07:00
Adam Ierymenko
59ebc9d41e
docs
2014-07-28 09:10:56 -07:00
Adam Ierymenko
f0199d6770
Windows routing table interface (untested).
2014-07-28 09:08:56 -07:00
Adam Ierymenko
f2d372545a
Salsa20 SSE Windows build fix -- turns out you can't be as loose with SSE intrinsics in Visual Studio
2014-07-26 20:07:38 -07:00
Adam Ierymenko
9809511c4c
Another rename...
2014-07-26 13:11:45 -07:00
Adam Ierymenko
538e8a86c8
Move node/osdep/ to sys/
2014-07-26 13:10:41 -07:00
Adam Ierymenko
27aa6ea44e
Linux routing table support work.
2014-07-25 16:16:05 -04:00
Adam Ierymenko
7475c4047e
A bunch more osdep/ work...
2014-07-23 09:14:53 -07:00
Adam Ierymenko
5e58a7d54a
Split UnixEthernetTap by platform to get rid of ifdef spaghetti.
2014-07-21 09:18:33 -07:00
Adam Ierymenko
6a174483d8
Ethernet tap factory interface.
2014-07-18 17:26:08 -07:00
Adam Ierymenko
a76d9d4408
Move OS-dependent implementations of generic interfaces to osdep/ in preparation for TapFactory refactor.
2014-07-17 17:19:18 -07:00
Adam Ierymenko
1189f4a568
Set/delete functionality in BSD routing table.
2014-07-17 17:17:59 -07:00
Adam Ierymenko
51766e6549
BSD routing table works... that hurt much worse than it should have.
2014-07-17 13:08:37 -07:00
Adam Ierymenko
d315156733
BSD routing table implementation work.
2014-07-16 15:13:53 -07:00
Adam Ierymenko
4c4675e3ac
Cleanup, add __BSD__
2014-07-15 20:49:13 -07:00
Adam Ierymenko
49ef980ecf
Scale back Salsa20 benchmark a bit to not take too long on slow boxes.
2014-07-15 21:02:56 -04:00
Adam Ierymenko
12692c551e
SSE optimized Salsa20 -- anywhere from 20% to 50% faster than plain C version
2014-07-15 17:56:09 -07:00
Adam Ierymenko
00f9305ad8
Routing table base class.
2014-07-15 13:48:42 -07:00
Adam Ierymenko
0097949ba9
.
2014-07-15 12:32:06 -07:00
Adam Ierymenko
1b33a9e807
.
2014-07-15 12:21:24 -07:00
Adam Ierymenko
4a0b33561c
Starting to define system network stack interface.
2014-07-13 12:57:30 -07:00
Adam Ierymenko
96faaa85cf
VERSION 0.9.1: bug fixes and experimental bridging support
...
This version fixes several bugs including an issue with networks that have
EtherType filtering disabled, a file permission issue that affected non-English
versions of Windows, a multicast propagation bug that caused multicasts to
be dropped more often than they should be, and an issue with IP auto-configuration.
It also introduces experimental support for bridging between physical and virtual
networks, a much-requested and powerful ability that's been planned from the start.
ZeroTier One can now replace the functionality of ordinary VPNs, link multiple
offices into a single LAN, and connect virtual machine backplanes in the cloud to
physical networks at home, among other things.
Bridging support isn't "officially" out yet, since the web UI part is still
in development. But when that is done, an official announcement will be
made on the blog and users can try it out. So far bridging has only
been tested under Linux with the Linux kernel's native bridging driver.
YMMV on other platforms. Try it out and let us know by filing bugs at GitHub
or e-mailing them to "contact@zerotier.com ".
2014-07-03 13:32:53 -07:00
Adam Ierymenko
f82c7006ea
Leave IP addresses alone instead of deleting them from tap if they are not members of any of the networks under management.
2014-07-02 15:59:08 -07:00
Adam Ierymenko
681af253ef
Fix for GitHub issue #88 - actually do in the code what the web UI expects it to do.
2014-07-01 09:27:33 -07:00
Adam Ierymenko
88bdb81791
Keep track of basic aliveness for peers regardless if direct or indirect connectivity and use this for multicast propagation. Also consolidate adding of active bridges via the same functor as regular multicast next hops.
2014-06-30 11:31:04 -07:00
Adam Ierymenko
458f6ae7c3
Only add active bridges to top of MC propagation list if they are alive. Otherwise a dead active bridge might kill multicast for us.
2014-06-26 18:13:48 -07:00
Adam Ierymenko
999e963533
Fix for network not found in netconf.
2014-06-27 00:47:07 +00:00
Adam Ierymenko
5336f2600a
Send ACCESS_DENIED if network not found.
2014-06-26 17:38:33 -07:00
Adam Ierymenko
38433e85bf
More little stuff in crypto code.
2014-06-26 17:23:10 -07:00
Adam Ierymenko
c3cbc92757
Some crypto comment fixes.
2014-06-26 17:15:20 -07:00
Adam Ierymenko
45a1e048bb
Add enabled/disabled status to network.
2014-06-26 17:05:07 -07:00
Adam Ierymenko
40bd460b1c
Some comment revisions and additional sanity checks.
2014-06-23 08:19:41 -07:00
Adam Ierymenko
ae7143d693
Comments and cleanup.
2014-06-21 12:19:10 -07:00
Adam Ierymenko
aead1050fb
Bridging (GitHub issue #68 ) does indeed work! Just needed to fix a packet size thinko.
2014-06-21 12:29:33 -04:00
Adam Ierymenko
6e485833ef
.
2014-06-21 12:25:10 -04:00
Adam Ierymenko
be0a8ec1f1
.
2014-06-21 12:16:25 -04:00
Adam Ierymenko
11e1f7a3fb
.
2014-06-21 12:01:26 -04:00
Adam Ierymenko
0b0d5fabac
Bridging #68 should work now!
2014-06-21 11:59:08 -04:00
Adam Ierymenko
35aa0921ee
.
2014-06-21 11:47:26 -04:00
Adam Ierymenko
2f8936181c
Debug code -- temporary.
2014-06-21 08:36:23 -07:00
Adam Ierymenko
4c3fb8cf10
Don't list node as an active bridge if it's not authorized. (Wouldn't work anyway.)
2014-06-20 16:04:53 -07:00
Adam Ierymenko
c3cea55493
Some cleanup in PacketDecoder.
2014-06-18 09:00:53 -07:00
Adam Ierymenko
5d467f0f45
Some TRACE improvements and comment revs.
2014-06-18 08:25:30 -07:00
Adam Ierymenko
2162a419e3
Some logging fixes.
2014-06-17 13:52:55 -07:00
Adam Ierymenko
f15271f31f
Get rid of pointer type punning warning/issue on g++.
2014-06-17 15:54:35 -04:00
Adam Ierymenko
9d6488c31a
Typo fix.
2014-06-16 20:41:23 +00:00
Adam Ierymenko
adc922d7fb
Support for bridging fields in netconf.
2014-06-16 13:26:46 -07:00
Adam Ierymenko
cf4700bc26
Simplify network briding modes -- we only need passive toggle and active bridge list, not three mode types. Also change isOpen to isPublic for terminology consistency.
2014-06-14 20:24:19 +00:00
Adam Ierymenko
367b5439e1
Run icacls.exe twice, once for each change - GitHub issue #71
2014-06-14 12:52:06 -07:00
Adam Ierymenko
6802da457e
Bridging pretty much ready to test! Got Switch all wired up. Also fix a latent probably-never-triggered bug in MULTICAST_FRAME handling. GitHub issue #68
2014-06-13 21:06:34 -07:00
Adam Ierymenko
5682f0b772
Some more bridging work... wiring up in Switch - GitHub issue #68
2014-06-13 17:49:33 -07:00
Adam Ierymenko
08b7bb3c7a
Network memory for bridge-side multicast groups that we learn - GitHub issue #68
2014-06-13 14:06:34 -07:00
Adam Ierymenko
d6a4f8d77b
Add flags to EXT_FRAME for better future proofness.
2014-06-12 11:40:30 -07:00
Adam Ierymenko
c30f9832b0
Packet decoder work for EXT_FRAME for bridging - GitHub issue #68
2014-06-10 21:41:34 -07:00
Adam Ierymenko
d44e1349d8
Bridge routing table - GitHub issue #68
2014-06-10 17:18:59 -07:00
Adam Ierymenko
6f831d5370
Bridging fields in Redis schema for netconf master.
2014-06-10 15:51:54 -07:00
Adam Ierymenko
4e1f49258b
Bridging in NetworkConfig - GitHub Issue #68
2014-06-10 15:47:20 -07:00
Adam Ierymenko
fb31f93c52
Protocol messages for bridging. GitHub issue #68
2014-06-10 15:25:15 -07:00
Adam Ierymenko
f720f04fa0
Installer updates from 0.9.0 release -- only useful to me.
2014-05-29 20:23:25 -07:00
Adam Ierymenko
7a56c3c396
VERSION 0.9.0: upgrade required!
...
Version 0.9.0 adds a network-wide toggle for blanket broadcast (ff:ff:ff:ff:ff:ff), contains changes for compatibility with the new web site and netconf server code, and most importantly introduces unique non-conflicting MAC address schemes on a per-virtual-network basis.
The MAC address change is necessary to support bridging, which is the next major feature to be added. It's not absolutely required, but it makes sure that things work properly in the (probably very rare) case that two virtual networks happen to be directly or indirectly bridged together.
The MAC change means that 0.9.0 is a required update. Clients not updating will find themselves unable to communicate with older versions. The underlying protocol is the same, but MAC address resolution and routing will not work properly. Those running binary releases will be updated automatically, while those running from source must download and rebuild.
This version also fixes two minor security issues, including one involving file permissions on non-English Windows versions.
2014-05-29 17:53:30 -07:00
Adam Ierymenko
994565bdeb
Fix for GitHub issue #71
2014-05-29 15:06:05 -07:00
Adam Ierymenko
67498e576c
Delete some obsolete stuff.
2014-05-29 18:36:17 +00:00
Adam Ierymenko
eae130467b
Build fix for Windows setsockopt().
2014-05-29 11:22:35 -07:00
Adam Ierymenko
f764cf8d31
Make UDP send and receive buffers as big as possible to reduce packet loss.
2014-05-28 12:17:43 -07:00
Adam Ierymenko
49247180dc
Add lastSeen and identity to member record if not present.
2014-05-28 01:32:27 +00:00
Adam Ierymenko
914bebba31
Re-enable exit on stream close in netconf service.
2014-05-27 15:59:09 +00:00
Adam Ierymenko
4b773b61f5
Netconf fixes.
2014-05-24 00:10:23 +00:00
Adam Ierymenko
657f6ae342
Don't transmit broadcasts if enableBroadcast is false on a network.
2014-05-23 19:52:39 -04:00
Adam Ierymenko
2861229558
Windows build fixes for MAC changes (in tap driver), some comments and cleanup in MAC.hpp.
2014-05-23 16:21:57 -07:00
Adam Ierymenko
f939d0ee62
Upgrade AIP for new version of Advanced Installer, bump to 0.9.0.
2014-05-23 16:08:05 -07:00
Adam Ierymenko
77c58e741d
GitHub issue #58 - options after path on command line were ignored, fixed.
2014-05-23 15:21:28 -07:00
Adam Ierymenko
66a38a9e7c
Default for private should be true.
2014-05-23 15:15:44 -07:00
Adam Ierymenko
31ddc49da2
GitHub issue #67
2014-05-23 15:13:34 -07:00
Adam Ierymenko
317995b921
Fixed for Linux tap for GitHub Issue #69
2014-05-23 17:35:35 -04:00
Adam Ierymenko
beb7b5bbe5
GitHub Issue #69 - make MAC assignment schema differ between virtual networks.
2014-05-23 14:32:31 -07:00
Adam Ierymenko
05f5755bb1
Allow Redis DB# select.
2014-05-23 00:35:11 +00:00
Adam Ierymenko
cfd92cb18d
Remove old netconf code.
2014-05-22 21:05:49 +00:00
Adam Ierymenko
2456d3a197
Node redis module update.
2014-05-22 21:05:08 +00:00
Adam Ierymenko
f0b821f880
.
2014-05-21 02:48:58 +00:00
Adam Ierymenko
319f9a9346
Netconf testing and fixes.
2014-05-20 20:05:11 +00:00
Adam Ierymenko
596e5dd583
Another sanity check on filename for GitHub issue #72
2014-05-19 16:16:34 +00:00
Adam Ierymenko
b958a2d30c
Redis schema updates and fix for GitHub issue #72
2014-05-19 16:13:42 +00:00
Adam Ierymenko
e270887391
Some Redis schema changes.
2014-05-14 17:48:50 +00:00
Adam Ierymenko
986773cc9c
ZT_USE_TESTNET define in makefiles.
2014-05-09 11:52:53 -07:00
Adam Ierymenko
ecbcc9eb2c
TESTNET supernodes need different addresses.
2014-05-09 11:45:38 -07:00
Adam Ierymenko
1ad29fe31f
Merge branch 'adamierymenko-dev' of ssh://shub-niggurath.zerotier.com:222/git/ZeroTierOne into adamierymenko-dev
2014-05-09 15:40:08 +00:00
Adam Ierymenko
42f6aae259
More netconf work... set ZT_HOME and chdir there on service launch.
2014-05-09 15:39:51 +00:00
Adam Ierymenko
de485ad900
Add testnet ports and ZT_USE_TESTNET define for contacting the test.zerotier.com net instead of the live net.
2014-05-08 17:53:22 -07:00
Adam Ierymenko
99c5fae9da
Make Service communicate via empty-line-delimited Dictionary objects instead of the old size prefix way.
2014-05-08 21:27:59 +00:00
Adam Ierymenko
98f0418fb9
A little more cleanup in node code.
2014-05-08 00:47:46 +00:00
Adam Ierymenko
d7977fa3e1
Make certificate of membership works in node code!
2014-05-08 00:22:20 +00:00
Adam Ierymenko
1e6475fad6
Clean out unused netconf fields, rename a few, work on new netconf server.
2014-05-08 00:11:50 +00:00
Adam Ierymenko
d5f95b721d
Yet more work on netconf master, add redis docs.
2014-05-07 02:45:15 +00:00
Adam Ierymenko
ae2eeff5c6
.
2014-05-06 00:24:21 +00:00
Adam Ierymenko
08da4b8c7b
Add mkcom functionality to zerotier-idtool for use by new NodeJS netconf-master code.
2014-05-06 00:15:21 +00:00
Adam Ierymenko
0ba0c6d04d
New netconf...
2014-05-06 00:05:11 +00:00
Adam Ierymenko
93f24ea86a
Some work on new netconf service...
2014-05-05 22:11:21 +00:00
Adam Ierymenko
f8eae84e15
Retire old netconf mess.
2014-05-05 15:05:11 +00:00
Adam Ierymenko
7831c4bfef
Cleanup, dead code removal, some pretty insignificant security stuff that's based on recommendations.
2014-04-18 00:14:12 -07:00
Adam Ierymenko
5f45977e3e
Update GitHub README
2014-04-16 11:40:48 -07:00
Adam Ierymenko
d187ec82d4
Adding supernode yig.zerotier.com (Sydney, Australia) and removing mi-go.zerotier.com (Singapore) due to real-world usage data.
2014-04-15 14:37:19 -07:00
Adam Ierymenko
42c3474223
VERSION 0.8.2
...
This version fixes a few more issues with TCP tunneling including GitHub issue #63 .
It also adds automatic announcement and location of peers on physical LANs (GitHub
issue #56 ) which should greatly improve performance if you happen to be on the same
LAN or WiFi network as another peer. It can take 60 seconds or so for this to occur,
but it should.
2014-04-10 22:46:17 -07:00
Adam Ierymenko
aee742e767
More toward GitHub issue #56
2014-04-10 16:30:15 -07:00
Adam Ierymenko
c9294c1a78
Prevent recursive transit of ZeroTier packets, toward GitHub issue #56
2014-04-10 14:22:25 -07:00
Adam Ierymenko
b117ff5435
Probable fix for GitHub issue #63 - do not unite() if either path is TCP, since doing so can result in asymmetric failed NAT-t over UDP if one side has a firewall that permits outgoing UDP but not incoming.
2014-04-10 11:17:54 -07:00
Adam Ierymenko
119ef5ecbf
More logic cleanup and some documentation / comment improvements.
2014-04-10 10:00:20 -07:00
Adam Ierymenko
8fb442d81a
Yet more cleanup to TCP logic, this time adding a master switch and adding UDP preference in send().
2014-04-09 17:08:35 -07:00
Adam Ierymenko
73153b89b4
Some cleanup, and use best (not first) UDP addresses for NAT-t VERB_RENDEZVOUS computation.
2014-04-09 16:00:25 -07:00
Adam Ierymenko
d9836adbf6
.... aaaaaand... GitHub issue #61 was caused by the fact that we were no longer deleting taps on Windows!
2014-04-09 15:34:03 -07:00
Adam Ierymenko
420edf23ad
Was not closing _shutdownSignalPipe in UnixEthernetTap either...
2014-04-09 15:32:37 -07:00
Adam Ierymenko
6c5f6feb5e
Set close-on-exec in attempt to head off GitHub issue #61
2014-04-09 15:22:08 -07:00
Adam Ierymenko
a1c1c82b0d
VERSION 0.8.1
...
This, quick on the heels of 0.8.0, fixes the fact that TCP tunneling was
broken. :)
There was a bug that only manifested in some cases, and not on my testnet.
I took the opportunity to clean up some of that logic generally. I need a
better testnet, but that will have to wait until we exit beta and hopefully
I can earn a little bit of money off this. A better testnet will require
a big beefy virtualization box or two to run hundreds to thousands of KVMs.
Also fixed a tiny cosmetic issue on Windows. Other than that no changes.
2014-04-09 13:03:33 -07:00
Adam Ierymenko
83a0d988ec
Text point size readjustment not needed on child windows in Windows?
2014-04-09 12:19:46 -07:00
Adam Ierymenko
a8c12369fd
More tweaks to TCP logic for GitHub issue #60
2014-04-09 12:10:05 -07:00
Adam Ierymenko
28a6d328a5
Some adjustments to TCP logic for GitHub issue #60
2014-04-09 11:55:24 -07:00
Adam Ierymenko
dd404b8ba3
VERSION 0.8.0
...
This version introduces a major new feature requested by several users,
both via the user survey and otherwise: TCP tunneling.
If you are not able to communicate over UDP/9993, ZeroTier One will switch to
TCP connections to ZeroTier's supernodes. This is always slower than UDP, but
will allow you to communicate behind all but the most extremely restrictive
firewalls. This TCP traffic travels over port 443 and looks like HTTPS (SSL)
traffic (though it isn't), since that port is almost always open.
This also fixes several minor bugs and attempts to improve the robustness of
Windows tap driver management. Several users have reported spurious issues
with the Windows tap device, though I was unable to reproduce any of these with
clean VMs. (Tried Windows 7 and 8.1, both x86 and x64. No luck.) But I tried
to beef up the tap code anyway in the hopes of catching it. It now tries a lot
harder to make sure the tap is up and running.
There was some significant under the hood refactoring in support of TCP, so
this was a non-trivial change.
I bumped the version to 0.8 to indicate that more and more features are being
crossed off the list as we approach 1.0 and exit from beta. After this, the next
major feature will be LAN announcement to find direct paths to peers on the
same physical LAN. But assuming that 0.8.0 goes smoothly, I am going to divert
attention to the web site. A new design is coming that is much cleaner, sharper,
and easier to use.
Thank you all for all your excellent feedback! We're well on the way to a killer
product that makes conventional VPNs and other kludges obsolete.
2014-04-08 22:38:51 -07:00
Adam Ierymenko
1c636afe3f
Fix typo.
2014-04-08 16:43:36 -07:00
Adam Ierymenko
48a1799f49
More Windows tap cleanup... seems solid. We'll see.
2014-04-08 16:10:48 -07:00
Adam Ierymenko
bf24de43fe
Windows tap: be REAL REAL REAL PARANOID. Wake up sheeple.
2014-04-08 15:47:33 -07:00
Adam Ierymenko
76d9ea911d
Another Qt build fix... need the right tap driver in build just to make symbols work even though UI doesn't use that code.
2014-04-08 14:16:45 -07:00
Adam Ierymenko
ff773def26
Remove EthernetTap.cpp from UI build project.
2014-04-08 13:59:31 -07:00
Adam Ierymenko
5abfb11813
Some installer stuff, complete refactoring of Windows side of newly split tap driver. Seems to work. Now to see if the cleanup we did here gets rid of the zombie tap device issue on Windows.
2014-04-08 12:00:21 -07:00
Adam Ierymenko
0b8d6c7f4a
Builds and runs on Unix with EthernetTap changes, now for Windows... and for what we did this for: a refactor of the Windows tap connector.
2014-04-07 15:39:33 -07:00
Adam Ierymenko
6c60305a96
Split EthernetTap into subclasses, work in progress...
2014-04-07 14:47:39 -07:00
Adam Ierymenko
19c4d82512
Intaller upgrade and stuff, fix to Windows service for new Node API changes.
2014-04-04 16:59:02 -07:00
Adam Ierymenko
e11149bcae
Fix network widget spacer issue on Windows.
2014-04-04 12:25:48 -07:00
Adam Ierymenko
fe85426df6
A few more tweaks to TCP failover... seems to be switching back and forth pretty well now!
2014-04-03 17:12:34 -07:00
Adam Ierymenko
158002d2d1
Tweak some timings and stuff.
2014-04-03 16:19:41 -07:00
Adam Ierymenko
c96d3ebf8c
Such ping logic. So edge case.
2014-04-03 14:36:52 -07:00
Adam Ierymenko
b1088a6bd7
Make Unix domain sockets mode 0777 so that properly authorized non-privileged users can access them (if they have auth token).
2014-04-02 17:21:26 -07:00
Adam Ierymenko
f0223490be
Make GUI work with new control client API, make control client look for user authtoken.secret if system unreadable.
2014-04-02 17:12:04 -07:00
Adam Ierymenko
81e5690410
More tweaks to TCP failover logic. Such edge case.
2014-04-02 17:32:47 -04:00
Adam Ierymenko
700a450806
More tweaks to algorithm for determining when to fail over to TCP, and stop supernodes from resynchronizing unless explicitly ordered.
2014-04-01 18:39:10 -07:00
Adam Ierymenko
0e1fc06a6f
The remove paths on send fail thing in Peer.cpp was not well thought out, and there is no point in mallocing the TCP write buffer.
2014-04-01 15:55:05 -07:00
Adam Ierymenko
c3b41c289d
Resynchronize on startup.
2014-04-01 14:12:54 -07:00
Adam Ierymenko
6ab95e0391
Get : out of Path.toString() since this will conflict with : in IPv6 IPs.
2014-04-01 08:52:52 -07:00
Adam Ierymenko
67b3fa9311
Clean up main.o in Linux make clean.
2014-03-31 22:38:46 -07:00
Adam Ierymenko
316e8d1939
Build fix.
2014-03-31 22:30:08 -07:00
Adam Ierymenko
f13493edb2
Oops... turns out we need to differentiate incoming from outgoing TCP and indeed learn incoming TCP paths. Otherwise the recipient of a TCP connection does not know to reply via TCP! Heh.
2014-03-31 22:23:55 -07:00
Adam Ierymenko
595b386afc
Increase maximum packet fragments to make room for huge multicasts with certificates of membership tagged onto them. This likely will not actually increase the number of fragments in practice much, since these are then subsequently compressed. But the buffer needs to be allocated with room for them, otherwise these packets get dropped with a range_error exception internally.
2014-03-31 14:53:33 -07:00
Adam Ierymenko
8e587ae481
Clean dead paths from peers.
2014-03-31 11:41:14 -07:00
Adam Ierymenko
acb056e3b1
Small readability fix.
2014-03-28 21:04:15 -07:00
Adam Ierymenko
5ef2c6fd6f
Add TCP/443 to all supernodes in Defaults.
2014-03-28 15:51:19 -07:00
Adam Ierymenko
1a0572d7e7
Remove UDP-breaking debug code.
2014-03-28 13:58:18 -07:00
Adam Ierymenko
7957ab6b1d
Windows uses exceptfds to report failed async connect() in select(). TCP now done on Windows (I think).
2014-03-28 13:37:21 -07:00
Adam Ierymenko
e8b613e625
TCP connections work on Windows now.
2014-03-28 12:26:33 -07:00
Adam Ierymenko
9c68a343f6
Reduce some TRACE noise.
2014-03-27 18:57:20 -07:00
Adam Ierymenko
881ff08269
Make multiple attempts to open the tap device on Windows.
2014-03-27 18:50:10 -07:00
Adam Ierymenko
e3239d23f4
Windows build fix.
2014-03-27 18:39:58 -07:00
Adam Ierymenko
f9c92b0351
Build fix from merge.
2014-03-27 18:24:57 -07:00
Adam Ierymenko
b73c36acbf
Merge branch 'adamierymenko-dev' of ssh://shub-niggurath.zerotier.com:222/git/ZeroTierOne into adamierymenko-dev
2014-03-27 18:23:02 -07:00
Adam Ierymenko
181369964f
Make TCP optional, rename port constant.
2014-03-27 18:22:53 -07:00
Adam Ierymenko
d2c5d71502
Finally fixed TCP sockets.
2014-03-27 17:42:02 -07:00
Adam Ierymenko
c231510f8b
More TCP-related fixes and tweaks to ping timing, resynchronize, and startup.
2014-03-27 17:02:52 -07:00
Adam Ierymenko
2ac56fd120
Fix TCP connection accumulation problem, still having issues with TCP tunneling.
2014-03-26 17:59:45 -07:00
Adam Ierymenko
e6b23059ac
Change the way TCP failover is invoked.
2014-03-26 16:44:58 -07:00
Adam Ierymenko
04169b5150
If I want it to pick the first, actually picking the first is helpful.
2014-03-26 15:44:24 -07:00
Adam Ierymenko
daaec84c6b
Add TCP channel support for supernode list, make Peer pick the first path if all paths are equally dead.
2014-03-26 15:35:15 -07:00
Adam Ierymenko
73c1d43f2f
Crank down default multicast preload and max balance just a little bit... should not impact non-lame protocols.
2014-03-25 21:48:16 -07:00
Adam Ierymenko
ab5a460177
Apply multicast rate limits on a network to ourselves and do not send multicasts that would exceed limits, for GitHub issue #55
2014-03-25 21:38:54 -07:00
Adam Ierymenko
67a85221d5
WINDOWS IS SUFFERING
2014-03-25 17:31:03 -07:00
Adam Ierymenko
328be8f846
Make Windows build, add (untested) Windows named pipe based IPC code.
2014-03-25 08:37:08 -07:00
Adam Ierymenko
d9b91758e0
Fix command line interface.
2014-03-21 14:58:35 -07:00
Adam Ierymenko
4e26ade2df
Fix deadlock in refactored code.
2014-03-21 14:31:10 -07:00
Adam Ierymenko
8d3eb1a258
A few renamings to be consistent.
2014-03-21 14:18:35 -07:00
Adam Ierymenko
33ad3deaee
Builds with new Path code.
2014-03-21 13:46:55 -07:00
Adam Ierymenko
ba3f04deed
Work in progress: refactoring paths, adding TCP fallback.
2014-03-20 20:07:35 -07:00
Adam Ierymenko
45e823d27c
Reworking of paths in Peer work-in-progress, and TCP connect support in SocketManager. Also add FD_SETSIZE checking for the default select implementation of sockets.
2014-03-20 18:49:33 -07:00
Adam Ierymenko
70b736f440
Put mac back to release default build flags.
2014-03-20 14:44:13 -07:00
Adam Ierymenko
97e6b38144
MULTICAST_FRAME TRACE improvements.
2014-03-20 14:24:15 -07:00
Adam Ierymenko
7a45ff460d
More deadlock fixes in new I/O.
2014-03-20 14:00:05 -07:00
Adam Ierymenko
6f5a4d7e29
Fix blocking socket issues in new socket I/O code.
2014-03-20 13:21:58 -07:00
Adam Ierymenko
4d0ad9abb6
Fix TRACE bug and new UDP socket code issue.
2014-03-19 23:10:34 -07:00
Adam Ierymenko
15e8c18106
Bug fixes.
2014-03-19 22:01:32 -07:00
Adam Ierymenko
1c555e4b96
command bus fix
2014-03-19 16:59:23 -07:00
Adam Ierymenko
6fdb360e2a
More IPC work.
2014-03-19 16:05:03 -07:00
Adam Ierymenko
0d847d9410
More build fixes.
2014-03-19 15:29:00 -07:00
Adam Ierymenko
abc82d6a52
IPC changes and SocketManager changes all build!
2014-03-19 13:56:48 -07:00
Adam Ierymenko
acf7d70d24
Integrate IPC stuff into NodeConfig.
2014-03-19 08:20:09 -07:00
Adam Ierymenko
3be4c38946
IPC stuff for Unix.
2014-03-18 18:44:44 -07:00
Adam Ierymenko
6a1bd52854
New IPC work...
2014-03-18 17:19:32 -07:00
Adam Ierymenko
0b75992737
Everything but the local config bus... blech.
2014-03-18 14:33:57 -07:00
Adam Ierymenko
91fef21973
More ripping out of old condition stuff.
2014-03-18 12:21:22 -07:00
Adam Ierymenko
dc0f3559be
Rip out old condition and Demarc stuff...
2014-03-18 12:00:15 -07:00
Adam Ierymenko
bb25128406
TCP socket.
2014-03-18 11:53:53 -07:00
Adam Ierymenko
bf5d8de999
More new socket I/O work...
2014-03-17 16:29:53 -07:00
Adam Ierymenko
1a0a6755b1
UDP socket implementation.
2014-03-17 16:18:44 -07:00
Adam Ierymenko
8adbbe092d
Drop old Demarc.cpp code.
2014-03-17 15:15:02 -07:00
Adam Ierymenko
bd749e040d
Compile fixes.
2014-03-17 15:14:22 -07:00
Adam Ierymenko
7e80d7e551
Bunch of work in progress on new socket multiplexer and plumbing for TCP jailbreaking... Don't try to build, won't yet.
2014-03-17 09:05:43 -07:00
Adam Ierymenko
ce09d00679
Security improvements to Linux build flags mirroring OSX improvements.
2014-03-11 11:50:04 -07:00
Adam Ierymenko
dbd7a06ea9
Enable PIE to allow ASLR (security)
2014-03-11 10:56:38 -07:00
Adam Ierymenko
74c2e644a9
Change -O4 to -O3 -flto on OSX for new clang (should work with older one too)
2014-03-11 10:18:39 -07:00