Adam Ierymenko
c9294c1a78
Prevent recursive transit of ZeroTier packets, toward GitHub issue #56
2014-04-10 14:22:25 -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
28a6d328a5
Some adjustments to TCP logic for GitHub issue #60
2014-04-09 11:55:24 -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
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
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
181369964f
Make TCP optional, rename port constant.
2014-03-27 18:22:53 -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
abc82d6a52
IPC changes and SocketManager changes all build!
2014-03-19 13:56:48 -07:00
Adam Ierymenko
bb25128406
TCP socket.
2014-03-18 11:53:53 -07:00
Adam Ierymenko
b5c3a92be2
Boring stuff: update dates in copyrights across all files.
2014-02-16 12:40:22 -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
ce0bd93289
Make software update run a little more often for now.
2014-02-02 16:46:27 -08:00
Adam Ierymenko
07f505971c
Windows build fixes.
2014-01-17 17:09:59 -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
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
ac4e657aaa
Updater work in progress...
2013-11-01 20:39:31 -04:00
Adam Ierymenko
3de76fcab1
Make network autoconf a little more frequent to tighten up expiration times.
2013-10-21 16:11:29 -04:00
Adam Ierymenko
5e71e07f59
Add persistent identity caching for use on supernodes. Activate by just making an iddb.d directory in the ZeroTier home folder. Also clean up some obsolete cruft from makefiles.
2013-10-21 14:12:00 -04:00
Adam Ierymenko
40e4f39181
Peers are now dumped on shutdown in a persistence cache and reloaded on startup, which is good enough for clients right now. Supernodes will get something else for long-term authoritative identity caching.
2013-10-21 11:15:47 -04:00
Adam Ierymenko
e13d4df9ab
Forgot to set defaults if multicast parameters are unset.
2013-10-18 15:50:31 -04:00
Adam Ierymenko
4267e7da93
Remove a whole bunch of now-unnecessary cruft from Topology and PacketDecoder.
2013-10-05 10:19:12 -04:00
Adam Ierymenko
c7590634e8
Eliminate a lot of redundant WHOIS requests, clean up WHOIS clutter in TRACE, flesh out multicast tracing a bit.
2013-10-03 14:38:07 -04:00
Adam Ierymenko
58538500f2
Clean up some routine stuff like pings, and stop keeping links open forever even if there are no frames passing between them.
2013-10-02 16:12:10 -04:00
Adam Ierymenko
3443b203e4
Each peer now tracks the last time it announced multicast LIKEs independently and does so frequently enough to prevent expires. Also add a multicast debug facility for use on the testnet.
2013-10-01 16:01:36 -04:00
Adam Ierymenko
9db7939d38
Make new multicast depth and prefix bits parameters configurable.
2013-09-30 13:51:56 -04:00
Adam Ierymenko
0dca9964bf
Whew, it builds!
2013-09-27 16:03:13 -04:00
Adam Ierymenko
4e010da54b
Work in progress...
2013-09-26 17:45:19 -04:00
Adam Ierymenko
770fbaf4b2
New multicast algorithm work in progress...
2013-09-21 16:46:00 -04:00
Adam Ierymenko
f9079a110e
Make network multicast breadth/depth parameters configurable on a per-net basis.
2013-09-17 16:11:57 -04:00
Adam Ierymenko
300588c5e8
Add port and control port command line options to daemon and command line client, add new supernode keys to Defaults.
2013-09-17 14:47:48 -04:00
Adam Ierymenko
55e7ddba1e
Get a default rate that works for multicast.
2013-09-12 12:11:21 -04:00
Adam Ierymenko
37931d8589
Multicast bandwidth accounting work in progress, and some config field changes and cleanup.
2013-09-04 09:27:56 -04:00
Adam Ierymenko
08fe84d707
Windows builds, self test runs in Debug mode!
2013-08-14 13:23:25 -04:00
Adam Ierymenko
fc18334dbb
Version 0.4.3 (the real one): fix Gentoo ip config failures and crashes
...
This version fixes problems with locating the 'ip' command on Gentoo
and possibly other Linux systems, and a problem that could cause a
crash if EthernetTap was unable to locate one of the commands it
invokes to configure IP information on tap devices.
The code also now builds on Windows. It doesn't run yet, but it's a
step. Windows port is in full swing.
Finally, the multicast rate limit defaults were raised a little. More
testing is needed here, and real world measurments.
2013-08-13 15:14:03 -04:00
Adam Ierymenko
d6414c9ff7
Windows compiles! (w/Visual Studio 2012) That's about all it does, but it's a start.
2013-08-12 21:25:36 -04:00
Adam Ierymenko
7c3a446499
Tweak default multicast rate limits.
2013-08-09 17:02:06 -04:00
Adam Ierymenko
6a24ac4f00
Add a concept of debt to RateLimiter, save a bit of RAM.
2013-08-09 16:36:58 -04:00
Adam Ierymenko
3af55f4423
Add RateLimiter for rate limiting multicast, not tested yet.
2013-08-08 17:20:35 -04:00
Adam Ierymenko
95c0790a88
Back off a little on multicast propagation depth. Eventually this will be a network parameter.
2013-08-08 12:55:01 -04:00
Adam Ierymenko
3368330b77
Poll for network autoconf, and a few other documentation changes.
2013-08-05 12:34:54 -04:00
Adam Ierymenko
7e156b2622
Call clean on all networks periodically, generalize Topology clean cycle to an overall clean cycle.
2013-07-30 11:14:53 -04:00
Adam Ierymenko
b0a83093ce
Back out of RPC... blech. Have a better idea.
2013-07-27 13:36:27 -04:00
Adam Ierymenko
af8fcac0fc
RPC infrastructure work in progress.
2013-07-25 15:19:35 -04:00
Adam Ierymenko
76bc9968ff
New simpler command interface via loopback UDP protected by a crypto token.
2013-07-17 14:10:44 -04:00
Adam Ierymenko
aa59c1de10
Bunch of little bug fixes in newly refactored code.
2013-07-12 22:07:48 -04:00
Adam Ierymenko
bcd079b70e
Adding signatures to multicast frames, work in progress, does not build yet
2013-07-10 22:58:43 -04:00
Adam Ierymenko
9e28bbfbb2
Factored out multicast propagation algorithm from Switch and Topology, also cleaned up and clarified it a bit.
2013-07-10 17:24:27 -04:00
Adam Ierymenko
ef3e319c64
Several things:
...
(1) Probable fix for issue #7 and major cleanup of EthernetTap code with consolidation for all unix-like systems and specialization for different flavors only when needed.
(2) Refactor of Buffer<> to make its members private, and Packet to use Buffer's methods exclusively to access them. This improves clarity and means we're no longer lying about Buffer's role in the code's security posture.
(3) Add -fstack-protect to Makefile to bounds check stack variables.
2013-07-09 14:06:55 -04:00
Adam Ierymenko
7c85a638b0
Added creation and periodic update of a file called "status" in the home directory that contains peer link status. Useful for debugging and statistics. Send it SIGHUP to force an update now. Otherwise it updates every 120 seconds.
2013-07-06 14:58:34 -04:00
Adam Ierymenko
150850b800
New git repository for release - version 0.2.0 tagged
2013-07-04 16:56:19 -04:00