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
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
60f25ccdf9
Some text changes, remove unused modules from installer project.
2014-03-07 14:25:24 -08:00
Adam Ierymenko
d0b506c12b
Fix crash on uninitialized taps.
2014-03-06 15:11:08 -08:00
Adam Ierymenko
742261c7fc
(1) Fix menu bar item font size on Windows, (2) fix for possible Windows EthernetTap infinite loop while enumerating registry.
2014-03-06 14:06:31 -08:00
Adam Ierymenko
939cdc82a2
VERSION 0.7.1: small Linux compile fix on g++, does not merit new release
2014-03-05 15:40:31 -08:00
Adam Ierymenko
54313212a4
New supernode: shoggoth.zerotier.com in Tokyo, Japan! This just about covers the entire world for global low-latency peer location and relaying.
2014-03-05 23:21:23 +01:00
Adam Ierymenko
13fbf9a200
*nix build fix
2014-02-28 15:05:56 -08:00
Adam Ierymenko
f2a03f68bd
Add code to clean unused permanent tap interfaces on Windows (but not used yet).
2014-02-28 15:04:50 -08:00
Adam Ierymenko
d27251ec4e
Make AtomicCounter use <atomic> on Windows (eventually this will replace it on other platforms), and some installer work.
2014-02-28 09:15:29 -08:00
Adam Ierymenko
268ec8d1e0
Fix for GitHub issue #40 : updates.d not being cleared.
2014-02-24 13:23:03 -08:00
Adam Ierymenko
655b6d1996
Windows auto-update URL and dummy Windows update for testing.
2014-02-23 08:01:52 -08:00
Adam Ierymenko
b5c3a92be2
Boring stuff: update dates in copyrights across all files.
2014-02-16 12:40:22 -08:00
Adam Ierymenko
4ec7cd2760
Fix for GitHub issue #38 : compute whether we are ONLINE a little differently
2014-02-14 16:23:03 -08:00
Adam Ierymenko
01d13c153d
Fix compiler warnings in Linux build.
2014-02-14 13:08:54 -08:00
Adam Ierymenko
9acfd3eb73
Build fix on Linux with G++.
2014-02-11 23:09:53 +00:00
Adam Ierymenko
0ad84b8723
Possible bug fix in Topology, have to test...
2014-02-11 15:02:21 -08:00
Adam Ierymenko
3f912eb4ad
Fix for GitHub issue #37 : remember *nix device names.
2014-02-11 14:21:59 -08:00
Adam Ierymenko
f1b45f7df0
A few little fixes in NodeConfig.
2014-02-11 13:20:51 -08:00
Adam Ierymenko
29c18d4bde
Add new Singapore supernode!
2014-02-11 08:57:25 -08:00
Adam Ierymenko
33728840ec
More local.conf stuff.
2014-02-10 16:46:53 -08:00
Adam Ierymenko
cd339486b7
local.conf in NodeConfig
2014-02-10 14:22:57 -08:00
Adam Ierymenko
d24b192f8c
Remove old updates from updates.d on Node startup.
2014-02-07 09:13:08 -08:00
Adam Ierymenko
5b97bb247e
More Windows service work... it builds! Now to do a new installer and test. Also fix a Windows compile warning in Switch.cpp.
2014-02-06 23:12:12 -08:00
Adam Ierymenko
d452ed7db8
Fix inverted sense bug in new skip-stale-relay logic.
2014-02-03 21:15:29 -08:00
Adam Ierymenko
d7bc3c6f4a
Fix infinite loop bug introduced in last commit.
2014-02-03 12:28:23 -08:00
Adam Ierymenko
d04e5a1fe0
Add a simple but very nice mechanism for avoiding potentially dead supernodes.
2014-02-03 11:09:09 -08:00
Adam Ierymenko
bf5f09a0c7
Yank a code path it turns out we probably don't want.
2014-02-03 10:46:37 -08:00
Adam Ierymenko
ce0bd93289
Make software update run a little more often for now.
2014-02-02 16:46:27 -08:00
Adam Ierymenko
0fdefdf7a4
So Linux has getifaddrs() too! Yay!
2014-02-02 02:21:09 -05:00
Adam Ierymenko
8236f20759
Private struct ifmaddrs for OSX cause struct ifmaddrs is missing too on OSX 10.6.
2014-02-01 23:18:31 -08:00
Adam Ierymenko
e16b2a8831
Real implementation of ips() on OSX, now for Linux.
2014-02-01 23:10:04 -08:00
Adam Ierymenko
2a3e646b94
Manually generate IPv6 link-local address only on Mac.
2014-02-01 14:02:14 -08:00
Adam Ierymenko
64231aa3f0
Fix for GitHub issue #36 on OSX... results in a duplicate entry for IPv6 link-local but seems okay... need to test on OSX 10.6 though.
2014-01-31 15:55:45 -08:00
Adam Ierymenko
525ab3faa9
Take TRACE back out of Mac makefile, fix a few decode little things.
2014-01-30 15:26:12 -08:00
Adam Ierymenko
490e86dde3
Bunch of fixes to startup, pinging, and choice of route. Also some TRACE updates.
2014-01-30 14:23:52 -08:00
Adam Ierymenko
6e076e77d8
More work on connection reset stuff...
2014-01-29 22:04:23 -08:00
Adam Ierymenko
d75f2f7051
SIGHUP now causes resync with peers.
2014-01-29 17:24:55 -08:00
Adam Ierymenko
aa1be9fcad
Some TRACE cleanup.
2014-01-29 20:09:55 -05:00
Adam Ierymenko
17796aaed4
TRACE NOP receipt.
2014-01-29 17:08:03 -08:00
Adam Ierymenko
2355fa973e
Tiny compiler warning fix.
2014-01-29 18:27:02 -05:00
Adam Ierymenko
694e9f2bdc
Some cleanup and rationalization of main loop.
2014-01-29 14:09:12 -08:00
Adam Ierymenko
372566295e
Alternate order of packet emission in unite().
2014-01-29 12:11:01 -08:00
Adam Ierymenko
4e85213473
Yank RuntimeEnvironment from SysEnv.
2014-01-29 09:58:17 -08:00
Adam Ierymenko
d6a346ca6e
Fix for GitHub issue #35 and also possibly partial fix for #29 issues.
2014-01-28 16:12:24 -08:00
Adam Ierymenko
8b65b3e6d7
Yank PROBE stuff since it's not used and was a premature addition to the protocol.
2014-01-28 10:41:43 -08:00
Adam Ierymenko
ffffc0179f
Fix a couple compile items.
2014-01-27 23:16:15 -08:00
Adam Ierymenko
f80ec871f6
Make EthernetTap creation occur in a background thread in Network since it's a time consuming operation on Windows. This fixes one of the last remaining Windows problems.
2014-01-27 23:13:36 -08:00
Adam Ierymenko
afbbf61588
Delete persistent tap device on Windows when we leave a network.
2014-01-26 22:47:08 -08:00
Adam Ierymenko
28665079a0
Windows UI appearance fixes (font issue, etc.) and fix to WinSock init on GUI client.
2014-01-26 22:24:29 -08:00
Adam Ierymenko
80997f652b
Few small cleanup things...
2014-01-26 10:59:33 -08:00
Adam Ierymenko
9d67a02b5f
Lock down individual files in networks.d instead of directory since directory ACLs are more complex on Windows.
2014-01-26 10:32:12 -08:00
Adam Ierymenko
22efa1ab53
Windows Installer work, fix 100% CPU bug in EthernetTap on Windows, Windows lockDownFile() implementation that uses 'cacls' utility.
2014-01-26 10:21:43 -08:00
Adam Ierymenko
eb554a504d
Fix for allIps -> ips in EthernetTap on Unix.
2014-01-23 16:25:51 -08:00
Adam Ierymenko
8771418170
Fix bug in tap driver introduced during unused code purge (deleted the part that acknowledges writes!), and fix bug in EthernetTap causing 0000 for etherType. Windows works now! Yay!
2014-01-23 16:10:24 -08:00
Adam Ierymenko
2f37ea842f
Couple of Windows fixes, get rid of ips()/allIps() distinction in EthernetTap. (Will need to be fixed on Unix now... later.)
2014-01-23 14:15:00 -08:00
Adam Ierymenko
9232ba1da0
Tap works on Windows now, sort of. Now I discovered that Windows has two mechanisms for assigning IP addresses: the registry and lower-level calls. Joy.
2014-01-22 23:46:33 -08:00
Adam Ierymenko
2da6a7570b
More tap driver work, increment version number, remove old binaries since signatures may not have been valid.
2014-01-22 18:38:45 -08:00
Adam Ierymenko
370dd6c4da
Several things:
...
(1) Add a bunch of tedious type casts to eliminate unnecessary compiler warnings on Windows X64 builds.
(2) Some EthernetTap work to integrate Windows custom IOCTL for multicast group lookup (not done quite yet).
(3) Dump some more info in selftest to make sure our Windows path lookup functions are returning sane results.
2014-01-21 13:07:22 -08:00
Adam Ierymenko
6bc5a84a2d
Windows build fixes and installer work...
2014-01-20 16:16:01 -08:00
Adam Ierymenko
45c5b66e9e
Self test now passes on Windows.
2014-01-18 14:53:59 -08:00
Adam Ierymenko
f303c24d3c
Build fix.
2014-01-18 10:23:44 -08:00
Adam Ierymenko
a5896264fa
Builds on Windows now.
2014-01-18 10:17:15 -08:00
Adam Ierymenko
4d1cca1150
Remove VC++ warnings in C25519, also add inline to short methods.
2014-01-18 09:44:35 -08:00
Adam Ierymenko
07f505971c
Windows build fixes.
2014-01-17 17:09:59 -08:00
Adam Ierymenko
7eccc5ebf2
Windows HTTP client code (untested)
2014-01-17 16:18:21 -08:00
Adam Ierymenko
412f93122d
Add our own getifmaddrs() since this convenience function is not in OSX 10.6.
2014-01-16 15:11:59 -08:00
Adam Ierymenko
4788d911ad
Remove ZT1 GPL copyright from the top of code that is basically all Daniel Bernstein's
2014-01-14 08:27:59 -08:00
Adam Ierymenko
3482d836ae
Mac install fixes, more internal use scripts.
2014-01-08 23:12:03 -08:00
Adam Ierymenko
60731e6d02
Update URLs for auto-update, check supernode version in one more place, delete pid before executing updater.
2014-01-07 16:37:36 -08:00
Adam Ierymenko
c1256fff5b
Remove some legacy code from the core loop.
2014-01-07 15:06:02 -08:00
Adam Ierymenko
a19c19c58c
Refactor SoftwareUpdate to make .nfo parse and signature check code easily reusable so it can be used from the Qt GUI code.
2014-01-05 16:24:12 -08:00
Adam Ierymenko
22b52858e0
Fix -h in zerotier-cli and move code to find auth token into LocalClient, also move auth token for mac into Mac-standard Library/Application Support location.
2014-01-03 14:03:29 -08:00
Adam Ierymenko
9f28eec95c
VERSION 0.6.7: revert change for GitHub issue #20
...
This will have to be thought out more. The old version worked fine 99% of the
time so we'll revisit this.
2013-12-31 11:36:13 -08:00
Adam Ierymenko
cc2a1444ae
TRACE output improvements and compile fix.
2013-12-31 11:18:40 -08:00
Adam Ierymenko
10df5dcf70
Fix several things:
...
(1) The changes to path learning in the two previous releases were poorly thought out,
and this version should remedy that by introducing PROBE. This is basically a kind of
ECHO request and is used to authenticate endpoints that are not learned via a valid
request/response pair. Thus we will still passively learn endpoints, but securely.
(2) Turns out there was a security oversight in _doHELLO() that could have permitted...
well... I'm not sure it was exploitable to do anything particularly interesting since
a bad identity would be discarded anyway, but fix it just the same.
2013-12-31 11:03:45 -08:00
Adam Ierymenko
8055635e85
VERSION 0.6.5: minor bug fix in peer connection tracking
2013-12-31 01:22:32 -08:00
Adam Ierymenko
83fc684b20
Add a netconf-service version field to netconf.
2013-12-30 16:31:59 -08:00
Adam Ierymenko
f9d31605b8
Ethernet tap cleanup.
2013-12-29 11:10:23 -08:00
Adam Ierymenko
a6dc4caecf
Unload the mac kext on exit.
2013-12-27 21:56:02 -08:00
Adam Ierymenko
df84bcf3bf
Some logging improvements in software updater.
2013-12-27 07:13:49 -08:00
Adam Ierymenko
c8166b2db1
Bump version to 0.6.4 for testing, integrate software updater auto-check into PacketDecoder decode path and main loop.
2013-12-26 20:57:17 -08:00
Adam Ierymenko
92969b4426
Fix for GitHub issue #20 (untested)
2013-12-24 10:39:29 -08:00
Adam Ierymenko
026442f28f
docs
2013-12-22 10:56:03 -08:00
Adam Ierymenko
9ffda4f955
Update Qt build to enable building against local static libraries, rename Network to NetworkWidget to avoid filesystem or object naming collision with Network.o in node/.
2013-12-12 15:47:00 -08:00
Adam Ierymenko
f7e3c10eca
Cleanup in Utils, fix for HttpClient on Linux.
2013-12-12 11:33:41 -08:00
Adam Ierymenko
ec4ffc0c2c
Software update fetcher seems to work, going back to updater/installer itself.
2013-12-11 13:14:10 -08:00
Adam Ierymenko
a22a3ed7e8
Software update work...
2013-12-11 13:00:18 -08:00
Adam Ierymenko
d3bcc58074
Fix update URL stuff, fix main build, add update dummy for testing updates on OSX and Linux and such.
2013-12-10 16:13:07 -08:00
Adam Ierymenko
bf0da9f2f7
Rest of software updater, ready to test...
2013-12-10 15:30:53 -08:00
Adam Ierymenko
612c17240a
Dead code removal, fix for cleanup GitHub issue #28
2013-12-06 16:49:20 -08:00
Adam Ierymenko
518410b7e0
HTTP client works!
2013-12-06 16:00:12 -08:00
Adam Ierymenko
0a0ed893c3
HTTP client work...
2013-12-06 13:15:30 -08:00
Adam Ierymenko
f5d397e8c8
Pull in-band file transfer stuff. Toyed around with that idea, but it seems that updates for some platforms are big enough and there are enough reliability concerns that just using TCP/HTTP is safer and easier.
2013-12-04 10:45:15 -08:00
Adam Ierymenko
b699bdefbd
Add shutdownIfUnreadable file feature: shut down if shutdownIfUnreadable in home folder is in fact existent but unreadable (e.g. broken link). This enables nifty shutdown on .app trashing feature for OSX.
2013-11-21 16:34:27 -05:00
Adam Ierymenko
4296db2358
Add configuration age to listnetworks results and GUI.
2013-11-21 15:11:22 -05:00
Adam Ierymenko
c979a695c5
UI work, add name to listnetworks output in control bus interface.
2013-11-20 16:16:30 -05:00
Adam Ierymenko
902c8c38d2
UI basically works, almost ready for testing and packaging...
2013-11-20 14:10:33 -05:00
Adam Ierymenko
34302edcc5
Installer build script for *nix systems.
2013-11-08 11:42:11 -05:00
Adam Ierymenko
bbe5a6f5d1
Add signupdate command to idtool.
2013-11-06 11:39:07 -05:00
Adam Ierymenko
9455b1cc81
Comments, change .nfo to .sig for uploads, clean some unused code from Utils.
2013-11-06 10:38:19 -05:00
Adam Ierymenko
9fdec3acfc
More updater work... coming along.
2013-11-05 17:08:29 -05:00
Adam Ierymenko
6c63bfce69
File transfer work, add identities for validation of updates.
2013-11-04 17:31:00 -05:00
Adam Ierymenko
ac4e657aaa
Updater work in progress...
2013-11-01 20:39:31 -04:00
Adam Ierymenko
ae138566a9
Updater code, work in progress...
2013-11-01 12:38:38 -04:00
Adam Ierymenko
e4044eeb70
Finish stubbing out FILE_ stuff.
2013-10-28 17:25:12 -04:00
Adam Ierymenko
d5fdfaea56
Fix signed/unsigned compare warning.
2013-10-28 16:54:35 -04:00
Adam Ierymenko
5750cf6b72
New cthulhu.zerotier.com supernode IP address.
2013-10-28 16:24:55 -04:00
Adam Ierymenko
7015017686
Make Makefile for Mac use clang options instead of old GCC options, and fix a nasty but obvious bug I introduced into Utils::getSecureRandom.
2013-10-28 15:53:40 -04:00
Adam Ierymenko
60ac1b77c5
Fix for GitHub issue #25
2013-10-28 13:22:23 -04:00
Adam Ierymenko
17778a36ba
Clean up secure random, add packet definitions for update distribution facility.
2013-10-27 07:26:50 -04:00
Adam Ierymenko
942cc0ca21
Certificate of membership works now... had to fix multicast propagation so COM is pushed with multicast, which makes tremendous sense in retrospect.
2013-10-25 14:51:55 -04:00
Adam Ierymenko
010616e3ae
Add some more TRACE output for certs.
2013-10-25 13:43:04 -04:00
Adam Ierymenko
1505e8dd50
Fix netconf init and identity transfer.
2013-10-25 13:04:58 -04:00