FS#4955 - Players can block servers forever

Attached to Project: OpenTTD
Opened by xOR (xOR) - Friday, 06 January 2012, 13:01 GMT
Last edited by Remko Bijker (Rubidium) - Friday, 06 January 2012, 21:52 GMT
Type Bug
Category Network
Status Closed
Assigned To No-one
Operating System All
Severity Medium
Priority Normal
Reported Version 1.1.4
Due in Version Undecided
Due Date Undecided
Percent Complete 100%
Votes 0
Private No


The critical section here is the map download. There is no timeout for players downloading the map, yet the server is already paused and not letting any other new players in. So if a player has a broken, overloaded or just very poor Internet connection and takes 10 minutes to download the map this won't let any other players in for 10 minutese. As pause-on-join is enabled by default on many servers this will also prevent the players on it from playing during that time - most probably scaring them off and making them leave the server.

What's worse, a player can also actively exploit this by never finishing the map download on purpose. Most probably it would be possible to write a small program that can do this automatically and could be used to block any public OpenTTD server out there, but that is not even necessary. Players can even use the vanilla OpenTTD client if they are on Windows (tested on Windows 7 x64 Ultimate as well as Windows XP Prof. SP3): simply start connecting with OpenTTD in windowed mode and during the map download do a right click on the border of the OpenTTD window. This will bring up the Windows context menu but as a side-effect also freeze OpenTTD. Now the player can just lean back and wait, knowing that nobody else on the server can't play anymore and no new players are allowed in. Unless an admin is noticing it and kicking the player.
This task depends upon

Closed by  Remko Bijker (Rubidium)
Friday, 06 January 2012, 21:52 GMT
Reason for closing:  Fixed
Additional comments about closing:  In r23764
Comment by xOR (xOR) - Friday, 06 January 2012, 13:37 GMT
We just tried it, the attachment shows what players that try to join the "blocked" server are seeing.