Adam Ierymenko
f4fd2d4971
Bring IncomingPacket into line with new changes.
11 years ago
Adam Ierymenko
6eb9289367
Bunch more cleanup, improvements to NAT traversal logic, finished updating Switch.
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
7ff0cab1b7
docs
11 years ago
Adam Ierymenko
93012b0ee5
Re-incorporation: ZeroTier Networks -> ZeroTier, Inc. [Delaware]
11 years ago
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.
11 years ago
Adam Ierymenko
4e95384ad6
Cleanup, add tristate to config code in Network, and happy new year!
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
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.
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
496109fdcc
Announce multicast group changes on network rescanMulticastGroups()
12 years ago
Adam Ierymenko
2659427864
Multicaster needs to be global, not per-network, and a bunch of other stuff.
12 years ago
Adam Ierymenko
050a0ce85d
.
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
1d37204a37
Refactoring in progress... pardon our dust...
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
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
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
7831c4bfef
Cleanup, dead code removal, some pretty insignificant security stuff that's based on recommendations.
12 years ago
Adam Ierymenko
aee742e767
More 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
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
8e587ae481
Clean dead paths from peers.
12 years ago
Adam Ierymenko
8d3eb1a258
A few renamings to be consistent.
12 years ago
Adam Ierymenko
33ad3deaee
Builds with new Path code.
12 years ago
Adam Ierymenko
ba3f04deed
Work in progress: refactoring paths, adding TCP fallback.
12 years ago
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.
12 years ago
Adam Ierymenko
0b75992737
Everything but the local config bus... blech.
12 years ago
Adam Ierymenko
bd749e040d
Compile fixes.
12 years ago
Adam Ierymenko
b5c3a92be2
Boring stuff: update dates in copyrights across all files.
12 years ago
Adam Ierymenko
bf5f09a0c7
Yank a code path it turns out we probably don't want.
12 years ago
Adam Ierymenko
490e86dde3
Bunch of fixes to startup, pinging, and choice of route. Also some TRACE updates.
12 years ago
Adam Ierymenko
d6a346ca6e
Fix for GitHub issue #35 and also possibly partial fix for #29 issues.
12 years ago
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.
12 years ago
Adam Ierymenko
92969b4426
Fix for GitHub issue #20 (untested)
12 years ago
Adam Ierymenko
612c17240a
Dead code removal, fix for cleanup GitHub issue #28
12 years ago
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.
13 years ago
Adam Ierymenko
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.
13 years ago
Adam Ierymenko
4267e7da93
Remove a whole bunch of now-unnecessary cruft from Topology and PacketDecoder.
13 years ago
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.
13 years ago
Adam Ierymenko
2cfa76fa8b
Multicast propagation is now working from non-supernodes, and working quite well. Time for some more simulation before 0.5.0!
13 years ago