2009-07-11 18:22:25 UTC
Hi everyone!
The connection test doesn't need to be explicitely supported. In fact Shareaza never got support for it either. Very old versions of the test sent a /PING packet and expected a reply (which would be /PONG, but any would be accepted). But for a long time now, the connection test has just been sending a /JCT packet with the ack flag set. Thus the receipient is supposed to send an ack packet back. The /JCT packet is not an officiel G2 packet, it's my own invention and no client actually actively supports it. Shareaza only replies to it because the packet asks for an ack.
Now, if Shareline doesn't work with the UDP test, I presume it does not ack packets it doesn't know about, correct? It's my current impression that it should do so, even if it doesn't understand what to do with it (and in fact, there's nothing it should do with that packet). Behaving otherwise would be wrong. Think of extensions to the G2 protocol: Even if a client doesn't know a packet (because it doesn't support a certain extension), it should nonetheless send back the ack, otherwise the sender will keep resending it. Of course I'm not an authoritative source to tell how correct G2 clients should behave, I just state what I think it should be ;)
But I honestly didn't look at Sharelin yet... maybe I'm mistaken and the problem is something else.