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
496109fdcc
Announce multicast group changes on network rescanMulticastGroups()
2014-10-03 18:27:42 -07:00
8607aa7c3c
Everything in for new multicast except IncomingPacket parsing...
2014-09-30 08:38:03 -07:00
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
4e9280fc7a
Rip out dead "firewall opener" code, replace in pipeline with anti-symmetric-NAT tactics.
2014-09-05 16:23:24 -07:00
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
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
c30f9832b0
Packet decoder work for EXT_FRAME for bridging - GitHub issue #68
2014-06-10 21:41:34 -07:00
aee742e767
More toward GitHub issue #56
2014-04-10 16:30:15 -07:00
c9294c1a78
Prevent recursive transit of ZeroTier packets, toward GitHub issue #56
2014-04-10 14:22:25 -07:00
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
119ef5ecbf
More logic cleanup and some documentation / comment improvements.
2014-04-10 10:00:20 -07:00
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
73153b89b4
Some cleanup, and use best (not first) UDP addresses for NAT-t VERB_RENDEZVOUS computation.
2014-04-09 16:00:25 -07:00
a8c12369fd
More tweaks to TCP logic for GitHub issue #60
2014-04-09 12:10:05 -07:00
28a6d328a5
Some adjustments to TCP logic for GitHub issue #60
2014-04-09 11:55:24 -07:00
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
c96d3ebf8c
Such ping logic. So edge case.
2014-04-03 14:36:52 -07:00
81e5690410
More tweaks to TCP failover logic. Such edge case.
2014-04-02 17:32:47 -04:00
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
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
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
8e587ae481
Clean dead paths from peers.
2014-03-31 11:41:14 -07:00
9c68a343f6
Reduce some TRACE noise.
2014-03-27 18:57:20 -07:00
2ac56fd120
Fix TCP connection accumulation problem, still having issues with TCP tunneling.
2014-03-26 17:59:45 -07:00
e6b23059ac
Change the way TCP failover is invoked.
2014-03-26 16:44:58 -07:00
04169b5150
If I want it to pick the first, actually picking the first is helpful.
2014-03-26 15:44:24 -07:00
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
4e26ade2df
Fix deadlock in refactored code.
2014-03-21 14:31:10 -07:00
8d3eb1a258
A few renamings to be consistent.
2014-03-21 14:18:35 -07:00
33ad3deaee
Builds with new Path code.
2014-03-21 13:46:55 -07:00
ba3f04deed
Work in progress: refactoring paths, adding TCP fallback.
2014-03-20 20:07:35 -07:00
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
abc82d6a52
IPC changes and SocketManager changes all build!
2014-03-19 13:56:48 -07:00
0b75992737
Everything but the local config bus... blech.
2014-03-18 14:33:57 -07:00
b5c3a92be2
Boring stuff: update dates in copyrights across all files.
2014-02-16 12:40:22 -08:00
bf5f09a0c7
Yank a code path it turns out we probably don't want.
2014-02-03 10:46:37 -08:00
490e86dde3
Bunch of fixes to startup, pinging, and choice of route. Also some TRACE updates.
2014-01-30 14:23:52 -08:00
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
cc2a1444ae
TRACE output improvements and compile fix.
2013-12-31 11:18:40 -08:00
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
8055635e85
VERSION 0.6.5: minor bug fix in peer connection tracking
2013-12-31 01:22:32 -08:00
92969b4426
Fix for GitHub issue #20 (untested)
2013-12-24 10:39:29 -08:00
6e217dfcb0
Get rid of DBM, which technically is a case of YAGNI. Supernodes will need a way to save identities, but that can be a different feature. Regular clients do not really need a permanent cache (yet). When/if we do need one we can do it then. Until then it only caused problems.
2013-10-21 10:29:44 -04:00
4267e7da93
Remove a whole bunch of now-unnecessary cruft from Topology and PacketDecoder.
2013-10-05 10:19:12 -04:00
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
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
5557a8192d
Work in progress...
2013-09-24 17:35:05 -04:00
0133da1dcd
Get rid of onSent(), which was never used consistently anyway.
2013-09-17 15:33:34 -04:00
97cbd98bc5
Compile fixes, integration of fast PRNG.
2013-07-13 14:28:26 -04:00