Adam Ierymenko
|
5341e32729
|
Fix to GitHub issue #140 -- network preferred relays. Also go ahead and allow RENDEZVOUS from regular peers.
|
11 years ago |
Adam Ierymenko
|
5bc89034bc
|
Always ping / contact network preferred relays (if any).
|
11 years ago |
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.
|
11 years ago |
Kees Bos
|
a425bbc673
|
Renamed supernode to rootserver
|
11 years ago |
Adam Ierymenko
|
9279bac385
|
Fix deadlock in SelfAwareness by deferring reconnects.
|
11 years ago |
Adam Ierymenko
|
98bcc3d4b5
|
Disable a few noisy TRACEs, and limit how often we confirm new paths to avoid flooding.
|
11 years ago |
Adam Ierymenko
|
1cfa67bbdd
|
Bunch more control plane work, and shelve old UI -- React FTW.
|
11 years ago |
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.
|
11 years ago |
Adam Ierymenko
|
5e331d6733
|
Restrict unite() to desperation==0 since NAT-t only works right now with direct links.
|
11 years ago |
Adam Ierymenko
|
ccc73b920e
|
Node peer list function for CAPI, and some Peer cleanup.
|
11 years ago |
Adam Ierymenko
|
40bfe37a19
|
Use max of core or most recent path desperation for pings.
|
11 years ago |
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.
|
11 years ago |
Adam Ierymenko
|
24608d5ca3
|
Always use HELLO to contact, and we now confirm newly learned paths via a two-way handshake to prevent half-connects.
|
11 years ago |
Adam Ierymenko
|
52c3b7c34e
|
Implemented empirical determination of external addressing, paritioned per scope.
|
11 years ago |
Adam Ierymenko
|
4e691c8e22
|
build fixes
|
11 years ago |
Adam Ierymenko
|
51f46a009a
|
Multicast group join/leave and group membership announcement.
|
11 years ago |
Adam Ierymenko
|
ee0f56355b
|
Send path simplification.
|
11 years ago |
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.
|
11 years ago |
Adam Ierymenko
|
93012b0ee5
|
Re-incorporation: ZeroTier Networks -> ZeroTier, Inc. [Delaware]
|
11 years ago |
Adam Ierymenko
|
4e95384ad6
|
Cleanup, add tristate to config code in Network, and happy new year!
|
11 years ago |
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.
|
11 years ago |
Adam Ierymenko
|
0e47f13f14
|
Simplify locking semantics some more to address a deadlock.
|
12 years ago |
Adam Ierymenko
|
2416491cbc
|
Permanently retire peers.persist, but make iddb.d always enabled instead since identities are what we really want to cache.
|
12 years ago |
Adam Ierymenko
|
0d017c043f
|
Stop persisting last announcement time since Multicaster is volatile. Also some more legacy multicast fixes.
|
12 years ago |
Adam Ierymenko
|
87f1b1b1e3
|
Bug fix in new multicast frame handler, handling of old "P5" multicast frames in new way.
|
12 years ago |
Adam Ierymenko
|
496109fdcc
|
Announce multicast group changes on network rescanMulticastGroups()
|
12 years ago |
Adam Ierymenko
|
8607aa7c3c
|
Everything in for new multicast except IncomingPacket parsing...
|
12 years ago |
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.
|
12 years ago |
Adam Ierymenko
|
4e9280fc7a
|
Rip out dead "firewall opener" code, replace in pipeline with anti-symmetric-NAT tactics.
|
12 years ago |
Adam Ierymenko
|
8a804b5257
|
(1) Disable firewall openers (its easy to re-enable), (2) Do some prep work for making supernode topology hot-updatable.
|
12 years ago |
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.
|
12 years ago |
Adam Ierymenko
|
c30f9832b0
|
Packet decoder work for EXT_FRAME for bridging - GitHub issue #68
|
12 years ago |
Adam Ierymenko
|
aee742e767
|
More toward GitHub issue #56
|
12 years ago |
Adam Ierymenko
|
c9294c1a78
|
Prevent recursive transit of ZeroTier packets, toward GitHub issue #56
|
12 years ago |
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.
|
12 years ago |
Adam Ierymenko
|
119ef5ecbf
|
More logic cleanup and some documentation / comment improvements.
|
12 years ago |
Adam Ierymenko
|
8fb442d81a
|
Yet more cleanup to TCP logic, this time adding a master switch and adding UDP preference in send().
|
12 years ago |
Adam Ierymenko
|
73153b89b4
|
Some cleanup, and use best (not first) UDP addresses for NAT-t VERB_RENDEZVOUS computation.
|
12 years ago |
Adam Ierymenko
|
a8c12369fd
|
More tweaks to TCP logic for GitHub issue #60
|
12 years ago |
Adam Ierymenko
|
28a6d328a5
|
Some adjustments to TCP logic for GitHub issue #60
|
12 years ago |
Adam Ierymenko
|
fe85426df6
|
A few more tweaks to TCP failover... seems to be switching back and forth pretty well now!
|
12 years ago |
Adam Ierymenko
|
c96d3ebf8c
|
Such ping logic. So edge case.
|
12 years ago |
Adam Ierymenko
|
81e5690410
|
More tweaks to TCP failover logic. Such edge case.
|
12 years ago |
Adam Ierymenko
|
700a450806
|
More tweaks to algorithm for determining when to fail over to TCP, and stop supernodes from resynchronizing unless explicitly ordered.
|
12 years ago |
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.
|
12 years ago |
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.
|
12 years ago |
Adam Ierymenko
|
8e587ae481
|
Clean dead paths from peers.
|
12 years ago |
Adam Ierymenko
|
9c68a343f6
|
Reduce some TRACE noise.
|
12 years ago |
Adam Ierymenko
|
2ac56fd120
|
Fix TCP connection accumulation problem, still having issues with TCP tunneling.
|
12 years ago |
Adam Ierymenko
|
e6b23059ac
|
Change the way TCP failover is invoked.
|
12 years ago |