After doing a little more testing while this issue is still in effect, I found:
- I am able to play on various PB enabled servers WITH a key I know is PB banned. So it's the same issue as before (with the icmp unreachable port) but this time the server replies with "PB_BX" instead of an icmp type/code 3 packet.
- I'm pretty bad with C, but I can sort of understand it. So if I'm not mistaken, looking at the code for pbguidcheck I see that Luigi has programmed it to show "banned" if the final reply from the punkbuster server is > 0. So PB_BX might not actually mean it's a banned GUID...the tool just thinks it is because it got a final reply from the server that was > 0. Normally an unbanned key gives no reply at all, so I can see why it was programmed this way. Here is a snippet of that code:
Code:
fprintf(stderr, "- send: %s\n", buff);
pbxor(buff + 1, len - 1, key);
len = send_recv(sd, buff, len, buff, sizeof(buff), 0, &peer, 2);
if(len < 0) {
fprintf(stdout, " the GUID %s is NOT banned\n", guid);
} else {
fprintf(stderr, "- recv: %.*s\n", len, buff);
fprintf(stdout, " the GUID %s is BANNED!!!\n", guid);
}
I'm just curious as to what PB_BX means...or if it really means that it's banned and I read the code wrong.
All in all, I'm sure it's a problem with Punkbuster because of the fact that banned keys can play on PB enabled servers right now. It amazes me how someone using a tool (like me) can see a problem days before any employees at Evenbalance do... either that, or they are too lazy to even fix their servers and are procrastinating.