FS#3760 - when client is moved to different company before he joins, he desyncs

Attached to Project: OpenTTD
Opened by Zdeněk Sojka (SmatZ) - Sunday, 11 April 2010, 22:12 GMT
Last edited by Remko Bijker (Rubidium) - Saturday, 17 April 2010, 10:52 GMT
Type Bug
Category Core
Status Closed
Assigned To No-one
Operating System All
Severity Low
Priority Normal
Reported Version 1.0.0
Due in Version Undecided
Due Date Undecided
Percent Complete 100%
Votes 0
Private No


(continuing from  FS#3755 )

1) start server, start company with a password
2) try to join the company with a client
3) while the client is entering company password, do "move client 255" on the server
4) client connects, but he doesn't know he is a spectator now, so he desyncs (is kicked) when he tries to exec a command

The problem is in network_client.cpp, DEF_CLIENT_RECEIVE_COMMAND(PACKET_SERVER_MOVE):

NetworkClientInfo *ci = NetworkFindClientInfoFromClientID(client_id);
returns NULL even for client_id == local client

client doesn't know about any clients (try 'clients' in the console while entering the company password)
This task depends upon

Closed by  Remko Bijker (Rubidium)
Saturday, 17 April 2010, 10:52 GMT
Reason for closing:  Fixed
Additional comments about closing:  In r19648