Quote:
[...]
A->P Does not have file
A->P->B returns queryhit via B->A (peers don't force-route returns like UPs do)
A->P->C queryhit fails via C-| |-A
[...]
|
You did not really understand how gnutella works. Normal 0.6 connections route replies just like ultrapeers. (Since queryhits are sent over the already established tcp connections and not directly via udp).
C will send the queryhit to P which will forward it to you, so you'll get the queryhit anyway. The real question is, - why C could not connect to A. The only possible explanations are:
- C blocked your IP or your listening port
- YOU block C's IP
- Neither C nor YOU accept incoming connections.
Quote:
Oh, and by the way, "LimeWire can if you can", could you elaborate on that?
|
Writing packet filters for LimeWire is a trivial task. I wrote part of LimeWire's IP filter and I thought about adding further powerful generic filters but the average user just would not need them anyway.