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.
11 years ago
Adam Ierymenko
0c85b4ef5f
Tweak to symmetric NAT buster to add one to the number of ports above the current one it attempts.
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
7b6f10e859
Optimization: we don't need to verify signatures on certs if they're certs we already have and have verified.
12 years ago
Adam Ierymenko
c61e9c0ef9
Prevent "software laser" in legacy multicast support. Already hotpatched in supernodes.
12 years ago
Adam Ierymenko
1bd5a1ebcd
Make selftest build and run on FreeBSD 10 with gmake
12 years ago
Adam Ierymenko
0e84eb3852
Back off default multicast limit just a little.
12 years ago
Adam Ierymenko
5484cf4309
More cleanup, and fix a bug in Multicaster::gather()
12 years ago
Adam Ierymenko
22d8aa4dc9
Moderate efficiency improvement on multicast gather result parsing, and go ahead and keep track of total known peers.
12 years ago
Adam Ierymenko
95f421024a
Code cleanup, and fix some unsafe pointer handling in Network.
12 years ago
Adam Ierymenko
5bb854e504
Fix a nasty bug introduced in packet fragmentation a while back during refactoring, and a few other things related to multicast.
12 years ago
Adam Ierymenko
4dec598fb8
Make multicast gather slightly more aggressive, and add total to list command in testnet.
12 years ago
Adam Ierymenko
3d85a615fb
NULL dereference on still-initializing node bug fix in status query commands, and doc updates.
12 years ago
Adam Ierymenko
934a575a74
Testnet seems to work a bit better now...
12 years ago
Adam Ierymenko
fe7b429866
...
12 years ago
Adam Ierymenko
3857116724
More testnet work.
12 years ago
Adam Ierymenko
4fbb098daa
Testnet work... getting there!
12 years ago
Adam Ierymenko
0a195e7bc0
Some work on simulated net...
12 years ago
Adam Ierymenko
ae228ade8c
Starting on simulated socket manager.
12 years ago
Adam Ierymenko
2436e22f46
More work on abstracting socket manager.
12 years ago
Adam Ierymenko
128a131070
About halfway there in refactoring to support pluggable SocketManager.
12 years ago
Adam Ierymenko
6bc9a938cf
Move socket manager implementation into osnet/
12 years ago
Adam Ierymenko
0e47f13f14
Simplify locking semantics some more to address a deadlock.
12 years ago
Adam Ierymenko
7c0f5e97e1
Don't need to check peer version for every item in txQueue since there is only one peer.
12 years ago
Adam Ierymenko
8730d30575
Now for some clang compile fixes...
12 years ago
Adam Ierymenko
74f36f5dc0
Windows build fixes.
12 years ago
Adam Ierymenko
a8bd8fff93
Make several changes to eliminate potential deadlock or recursive lock conditions, and add back rescan of multicast groups on network startup.
12 years ago
Adam Ierymenko
a94b0e6a43
Get rid of rescanMulticastGroups() in Network thread since this can deadlock... the fact that this can happen is probably bad design.
12 years ago
Adam Ierymenko
7a37326cc0
Fix sleeper bug that probably did nothing in setSupernodes().
12 years ago
Adam Ierymenko
42d644a57e
More fixes to legacy support, and to a potential issue on quit.
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
6e23986bb3
Another build fix.
12 years ago
Adam Ierymenko
52314dcdf6
GitHub issue #111
12 years ago
Adam Ierymenko
05309037a8
Yank potentially costly support for TTL out of UdpSocket since we dont use this anymore.
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
8b0846d077
Delete bunch of commented out code.
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
c2aac69a9f
Fixes to legacy peer support.
12 years ago
Adam Ierymenko
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.
12 years ago
Adam Ierymenko
03dc823ad7
(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.
12 years ago
Adam Ierymenko
1774e615a1
<= MTU
12 years ago
Adam Ierymenko
56f8f8aa24
Return self in GATHER requests if self is a member of multicast group, and reinstate legacy support.
12 years ago
Adam Ierymenko
4941c8a1f3
New multicast bug fixes, TRACE improvements, and temporarily disable legacy multicast for debugging purposes.
12 years ago
Adam Ierymenko
d5e0f7e3e4
Reorg multicast packet, and a whole bunch of refactoring around the pushing of certificates of membership.
12 years ago
Adam Ierymenko
620e64c58f
Supernode propagation of legacy multicast frames was brokezored.
12 years ago
Adam Ierymenko
3f15752f73
Add IPv4 address assignment to ffffffffffffffff test network.
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
ab22feba9a
Bump version to 1.0.0, add legacy support code to Multicaster to not send new frame to known-to-be-old peers.
12 years ago
Adam Ierymenko
10c196df50
Send a VERB_P5_MULTICAST_FRAME to the supernode for each multicast -- for now. This will allow supernodes to echo these down to pre-1.0.0 peers.
12 years ago
Adam Ierymenko
2c8321be1f
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.
12 years ago