6da9d2d36f
Remove debug printf().
2015-07-06 17:23:22 -07:00
f881cdd767
Add new .h file to VS build, and Windows side of local interface address enumeration.
2015-07-06 17:22:37 -07:00
79e9a8bcc2
Almost everything for GitHub issue #180 except direct path map setup.
2015-07-06 15:28:48 -07:00
fad9dff2db
Almost all of GitHub issue #180
2015-07-06 15:05:04 -07:00
e5f7c55c54
Documentation in Packet, more work on path push, and clean up ancient legacy support code in Switch.
2015-07-06 12:34:35 -07:00
7bae95836c
Root server terminology cleanup, and tighten up a security check by checking full identity of peers instead of just address.
2015-06-19 10:23:25 -07:00
87bb0086de
Almost certain fix for GitHub issue #184 on -dev
2015-06-17 12:46:12 -07:00
a425bbc673
Renamed supernode to rootserver
2015-05-06 12:05:20 +02:00
5341e32729
Fix to GitHub issue #140 -- network preferred relays. Also go ahead and allow RENDEZVOUS from regular peers.
2015-06-01 19:05:27 -07:00
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.
2015-05-21 15:58:26 -07:00
b4b067bf12
So we need to keep track of external surface per reporter, since some NATs assign different external IPs for each external destination. Keeping just one known surface could create a race condition.
2015-05-04 18:34:30 -07:00
d3820049b8
Add reported external address to OK(HELLO) TRACE to verify SN behavior.
2015-04-30 18:25:31 -07:00
9eb7698f0e
Learn external IP addresses on OK(HELLO) too.
2015-04-30 16:40:04 -07:00
f5848972f9
Windows now builds and runs selftest correctly, and fixed a Windows (and possibly other platforms) issue in Phy<>.
2015-04-24 15:05:28 -07:00
417f56de2f
Add some TRACE instrumentation to external surface address awareness.
2015-04-17 12:19:01 -07:00
ea1859541c
More cleanup, and fix for the extremely unlikely case of identity collision.
2015-04-15 18:32:25 -07:00
6369c264e2
Rename netconf to controller and NetworkConfigMaster to NetworkController for consistency.
2015-04-15 15:12:09 -07:00
98bcc3d4b5
Disable a few noisy TRACEs, and limit how often we confirm new paths to avoid flooding.
2015-04-15 13:15:09 -07:00
068d311ecc
TRACE compile fixes, other fixes, and it basically works! It says HELLO.
2015-04-09 20:54:00 -07:00
4d5a6a25d3
Add events for packet decode errors, etc., and re-implement TRACE as an event.
2015-04-08 16:49:21 -07:00
52c3b7c34e
Implemented empirical determination of external addressing, paritioned per scope.
2015-04-07 11:56:10 -07:00
817824b88b
Some external surface awareness work, and IP scope classification.
2015-04-07 10:57:59 -07:00
a2821e9000
Add code to check external surface against reported surface from other trusted peers, and also rename ExternalSurface to SelfAwareness because lulz.
2015-04-06 20:17:21 -07:00
f4fd2d4971
Bring IncomingPacket into line with new changes.
2015-04-06 14:50:53 -07:00
1f28ce3980
Tons more refactoring: simplify Network, move explicit management of Tap out, redo COM serialization, etc.
2015-04-01 19:09:18 -07:00
b6fba5934a
RedisNetworkConfigMaster in its own folder. Also fix some hex/decimal Redis database confusion.
2015-02-24 14:17:57 -08:00
ff255a34de
Make NetworkConfigMaster a plugin to get Redis and other non-endpoint code out of node/
2015-02-24 12:28:58 -08:00
93012b0ee5
Re-incorporation: ZeroTier Networks -> ZeroTier, Inc. [Delaware]
2015-02-17 13:11:34 -08:00
b1bf3f68c3
Drop support for legacy P5 multicast, as there are fewer than 1% of these remaining on the network.
2015-02-02 16:34:01 -08:00
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.
2015-01-09 16:35:20 -05:00
afea153a0b
Build fixes.
2015-01-08 18:17:02 -05:00
64ba596e0b
C++ network config master ready to test.
2015-01-08 14:27:55 -08:00
4e95384ad6
Cleanup, add tristate to config code in Network, and happy new year!
2015-01-05 17:47:59 -08:00
56cfe1d603
Strip out old Service code, add new service message type.
2015-01-05 11:47:22 -08:00
ff539c22f9
locallyValidate() is expensive -- stop doing it on every HELLO since in most cases we already know the identity and know it is valid
2014-12-16 09:29:40 -08:00
8c64046a53
docs
2014-11-26 14:59:43 -08:00
15d3e383e6
Add ZT_SUPPORT_LEGACY_MULTICAST ifdef to enable the legacy code to all be toggled.
2014-11-25 12:46:51 -08:00
7619b0ecbd
Send multicasts in random order.
...
This should not affect most users, but on large networks it should cause service
announcements to work a lot better. This is the result of a prolonged discussion
with a user about the visibility of game servers on a large network. The old
multicast algorithm was de-facto randomized due to its distributed nature, while
the new algorithm is more deterministic. This will restore some randomization
beyond limit-overflow conditions.
It won't affect small networks at all.
2014-11-21 10:50:27 -08:00
c61e9c0ef9
Prevent "software laser" in legacy multicast support. Already hotpatched in supernodes.
2014-11-13 14:21:06 -05:00
5484cf4309
More cleanup, and fix a bug in Multicaster::gather()
2014-10-29 16:24:19 -07:00
22d8aa4dc9
Moderate efficiency improvement on multicast gather result parsing, and go ahead and keep track of total known peers.
2014-10-29 15:26:32 -07:00
0e47f13f14
Simplify locking semantics some more to address a deadlock.
2014-10-21 10:42:04 -07:00
42d644a57e
More fixes to legacy support, and to a potential issue on quit.
2014-10-14 12:37:35 -07:00
2416491cbc
Permanently retire peers.persist, but make iddb.d always enabled instead since identities are what we really want to cache.
2014-10-13 14:12:51 -07:00
8b0846d077
Delete bunch of commented out code.
2014-10-11 16:53:21 -07:00
0d017c043f
Stop persisting last announcement time since Multicaster is volatile. Also some more legacy multicast fixes.
2014-10-11 16:26:02 -07:00
c2aac69a9f
Fixes to legacy peer support.
2014-10-11 15:49:31 -07:00
e071c05f1b
Add a sanity limit to legacy multicast repeater function in supernode-mode nodes, and change netconf-master to issue multicast limit (ml) instead of old p5 stuff.
2014-10-10 14:59:07 -07:00
1774e615a1
<= MTU
2014-10-10 09:09:56 -07:00
56f8f8aa24
Return self in GATHER requests if self is a member of multicast group, and reinstate legacy support.
2014-10-09 18:32:05 -07:00