ZeroTierOne/node
Adam Ierymenko 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
..
Address.hpp Refactoring in progress... pardon our dust... 2014-09-12 16:57:37 -07:00
AntiRecursion.hpp More toward GitHub issue #56 2014-04-10 16:30:15 -07:00
Array.hpp Boring stuff: update dates in copyrights across all files. 2014-02-16 12:40:22 -08:00
AtomicCounter.hpp VERSION 0.7.1: small Linux compile fix on g++, does not merit new release 2014-03-05 15:40:31 -08:00
BandwidthAccount.hpp Boring stuff: update dates in copyrights across all files. 2014-02-16 12:40:22 -08:00
Buffer.hpp More cleanup, and fix a bug in Multicaster::gather() 2014-10-29 16:24:19 -07:00
C25519.cpp More little stuff in crypto code. 2014-06-26 17:23:10 -07:00
C25519.hpp Boring stuff: update dates in copyrights across all files. 2014-02-16 12:40:22 -08:00
CertificateOfMembership.cpp Boring stuff: update dates in copyrights across all files. 2014-02-16 12:40:22 -08:00
CertificateOfMembership.hpp Boring stuff: update dates in copyrights across all files. 2014-02-16 12:40:22 -08:00
CMWC4096.hpp Boring stuff: update dates in copyrights across all files. 2014-02-16 12:40:22 -08:00
Constants.hpp Make selftest build and run on FreeBSD 10 with gmake 2014-11-04 11:20:38 -08:00
Defaults.cpp cleanup 2014-09-16 08:19:39 -07:00
Defaults.hpp cleanup 2014-09-16 08:19:39 -07:00
Dictionary.cpp (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 2014-08-14 19:52:22 -04:00
Dictionary.hpp (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 2014-08-14 19:52:22 -04:00
EthernetTap.hpp More work on adding testnet and user-mode capabilities for local network simulation. 2014-10-03 11:59:50 -07:00
EthernetTapFactory.hpp Refactoring in progress... pardon our dust... 2014-09-12 16:57:37 -07:00
HttpClient.cpp Do HttpClient refactoring for Windows. 2014-08-18 14:34:04 -07:00
HttpClient.hpp Refactor HttpClient a bit. 2014-08-16 09:08:52 -07:00
Identity.cpp Boring stuff: update dates in copyrights across all files. 2014-02-16 12:40:22 -08:00
Identity.hpp Boring stuff: update dates in copyrights across all files. 2014-02-16 12:40:22 -08:00
IncomingPacket.cpp Send multicasts in random order. 2014-11-21 10:50:27 -08:00
IncomingPacket.hpp More cleanup, and fix a bug in Multicaster::gather() 2014-10-29 16:24:19 -07:00
InetAddress.cpp Fix for missing broadcast address on Linux Ethernet taps. 2014-09-04 13:36:25 -04:00
InetAddress.h Make selftest build and run on FreeBSD 10 with gmake 2014-11-04 11:20:38 -08:00
InetAddress.hpp Make selftest build and run on FreeBSD 10 with gmake 2014-11-04 11:20:38 -08:00
Logger.cpp Boring stuff: update dates in copyrights across all files. 2014-02-16 12:40:22 -08:00
Logger.hpp 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
MAC.hpp Refactoring in progress... pardon our dust... 2014-09-12 16:57:37 -07:00
Multicaster.cpp Send multicasts in random order. 2014-11-21 10:50:27 -08:00
Multicaster.hpp Send multicasts in random order. 2014-11-21 10:50:27 -08:00
MulticastGroup.hpp Enable configuration of multicast algorithm parameters in netconf 2014-09-04 14:25:07 -07:00
Mutex.hpp Boring stuff: update dates in copyrights across all files. 2014-02-16 12:40:22 -08:00
Network.cpp Optimization: we don't need to verify signatures on certs if they're certs we already have and have verified. 2014-11-13 12:40:51 -08:00
Network.hpp 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
NetworkConfig.cpp (1) Back off a little on default max multicast limit since 128 is pretty bandwidth heavy, (2) add a little to default multicast rate limit since new MC algo is fairerererer, (3) decided not to involve netconf masters in multicast so take that out of list of who gets LIKEs. 2014-10-10 12:55:06 -07:00
NetworkConfig.hpp Pull logic to always send new multicasts to supernode since we need to do that differently, re-add support for active bridges, and remove some gratuitous use of std::set where not needed. 2014-10-04 13:15:02 -07:00
Node.cpp Code cleanup, and fix some unsafe pointer handling in Network. 2014-10-29 13:57:37 -07:00
Node.hpp More testnet work. 2014-10-24 16:35:06 -07:00
NodeConfig.cpp Yay... now everything compiles! Getting close to testing on this. Still have not added backward compatibility support for relaying of multicasts to 0.9.X clients yet but that will be easy. Will test with heterogenous 1.0.0 clients only first. 2014-10-01 12:41:48 -07:00
NodeConfig.hpp Code cleanup, and fix some unsafe pointer handling in Network. 2014-10-29 13:57:37 -07:00
NonCopyable.hpp Boring stuff: update dates in copyrights across all files. 2014-02-16 12:40:22 -08:00
OutboundMulticast.cpp 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
OutboundMulticast.hpp Fix a nasty bug introduced in packet fragmentation a while back during refactoring, and a few other things related to multicast. 2014-10-28 17:25:34 -07:00
Packet.cpp Yet more WIP on mulitcast algo... 2014-09-22 13:18:24 -07:00
Packet.hpp More cleanup, and fix a bug in Multicaster::gather() 2014-10-29 16:24:19 -07:00
Path.hpp Simplify locking semantics some more to address a deadlock. 2014-10-21 10:42:04 -07:00
Peer.cpp Change path selection logic to exclude non-fixed and non-active paths -- possible fix for "NAT traversal coma" issue. Also fix a typo. 2014-11-20 13:20:16 -08:00
Peer.hpp Simplify locking semantics some more to address a deadlock. 2014-10-21 10:42:04 -07:00
Poly1305.cpp Some crypto comment fixes. 2014-06-26 17:15:20 -07:00
Poly1305.hpp Some crypto comment fixes. 2014-06-26 17:15:20 -07:00
RoutingTable.cpp BSD routing table works... that hurt much worse than it should have. 2014-07-17 13:08:37 -07:00
RoutingTable.hpp Set/delete functionality in BSD routing table. 2014-07-17 17:17:59 -07:00
RuntimeEnvironment.hpp Code cleanup, and fix some unsafe pointer handling in Network. 2014-10-29 13:57:37 -07:00
Salsa20.cpp Get rid of __align stuff in Salsa20 -- not portable, does not seem to help much on newer chips. 2014-09-16 08:53:18 -07:00
Salsa20.hpp Get rid of __align stuff in Salsa20 -- not portable, does not seem to help much on newer chips. 2014-09-16 08:53:18 -07:00
Service.cpp Yay... now everything compiles! Getting close to testing on this. Still have not added backward compatibility support for relaying of multicasts to 0.9.X clients yet but that will be easy. Will test with heterogenous 1.0.0 clients only first. 2014-10-01 12:41:48 -07:00
Service.hpp 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
SHA512.cpp Boring stuff: update dates in copyrights across all files. 2014-02-16 12:40:22 -08:00
SHA512.hpp Boring stuff: update dates in copyrights across all files. 2014-02-16 12:40:22 -08:00
SharedPtr.hpp Code cleanup, and fix some unsafe pointer handling in Network. 2014-10-29 13:57:37 -07:00
Socket.hpp About halfway there in refactoring to support pluggable SocketManager. 2014-10-21 14:26:10 -07:00
SocketManager.hpp Starting on simulated socket manager. 2014-10-21 17:00:25 -07:00
SoftwareUpdater.cpp Yay... now everything compiles! Getting close to testing on this. Still have not added backward compatibility support for relaying of multicasts to 0.9.X clients yet but that will be easy. Will test with heterogenous 1.0.0 clients only first. 2014-10-01 12:41:48 -07:00
SoftwareUpdater.hpp 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
Switch.cpp Tweak to symmetric NAT buster to add one to the number of ports above the current one it attempts. 2014-11-20 13:42:18 -08:00
Switch.hpp Turns out that needed to be a list after all. Also clean up Multicaster::gather(). 2014-10-03 22:03:19 -07:00
Thread.hpp Fix for crazy Windows threading bug... repeatedly adding and removing a network now doesn't leave networks in limbo. 2014-08-21 17:49:05 -07:00
Topology.cpp Make several changes to eliminate potential deadlock or recursive lock conditions, and add back rescan of multicast groups on network startup. 2014-10-14 16:38:27 -07:00
Topology.hpp Windows build fixes. 2014-10-19 12:56:39 -07:00
Utils.cpp Yes, zero my secret key data. Yes I really, really mean it. 2014-10-02 09:08:31 -07:00
Utils.hpp Yes, zero my secret key data. Yes I really, really mean it. 2014-10-02 09:08:31 -07:00