Quote:
Originally posted by cultiv8r
[B]Goodness, just noticed the many typos I made in my previous post.[B]
|
Fortunately, I didn't.
Quote:
how long does that take though? |
Its like greased lightning. Try it yourself:
http://download.bearshare.com/BSTEST300b52.exe Quote:
And are you setting the "firewalled" status per connection, or globally? |
Eh? The firewalled status applies to the local servent, not per connection. The status is tested when the first host is connected, and reset when the last host drops. It is also re-tested once per hour, in case their firewalled status changes.
You may not believe it, but user's firewalled status can actually change from hour to hour. Not only that, but they can get different IP addresses, and we re-detect that every hour too.
How? By establishing a few outgoing connections even though we don't need them. Its easy enough to 503 a 0.6 handshake on the 3rd set of headers even if you're outgoing. The Remote-IP does the job.
This even works to detect cases where their IP address changes due to DHCP, and they are using NAT.
A small number of users complained that they were becoming firewalled even though they knew they weren't. In EVERY case, it was user error, they had indeed become firewalled.
Quote:
The ConnectBack for supporting clients usually takes less than a few seconds. |
Yeah but its so much cooler to implement it in a way that even works with the original Gnutella 0.53 servent.