So here i am perusing my logs when i see

L 02/02/2009 - 20:25:28: "EricS<114><STEAM_0:1:10><>" disconnected
(reason "You have been banned by this server, check
http://www.doublezen.net/ for more info")

wait, what?

No ban matches that steamID. So i dig into the SourceBans module, and find this:

SELECT bid FROM %s_bans WHERE ((type = 0 AND authid REGEXP
'STEAM_[0-9]:%s') OR (type = 1 AND ip = '%s')) AND (length = '0' OR
ends > UNIX_TIMESTAMP()) AND RemoveType IS NULL

What that means, is if 1234 is banned, so is 123, 12, and 1. Since
Valve has a lot of really short steam IDs, this means that any sizable
database will return matches against them.

To fix this, if you run SourceBans, change line 774 to:

SELECT bid FROM %s_bans WHERE ((type = 0 AND authid REGEXP
'^STEAM_[0-9]:%s$') OR (type = 1 AND ip = '%s')) AND (length = '0' OR
ends > UNIX_TIMESTAMP()) AND RemoveType IS NULL

IE add that nice ^ and $ there, so it only matches complete IDs.
Recompile sourcebans.sp and install.

I would like to apologize to EricS and invite him to play on the Nemu
servers whenever he damn well pleases!

- Neph

_______________________________________________
To unsubscribe, edit your list preferences, or view the list archives, please 
visit:
http://list.valvesoftware.com/mailman/listinfo/hlds

Reply via email to