From 47f3d89265972cad9d1be5480b9e5cfd4f4fe2a3 Mon Sep 17 00:00:00 2001 From: Kyle Spier-Swenson Date: Sat, 3 Feb 2018 11:09:25 -0800 Subject: [PATCH] raises the cid check disconnect time out (#35244) Disconnects from deleting the client are immediate, where are other commands are queued to some degree or another, browse is the worst one of all since it has to queue behind after connect resource sends as well as the asset cache or browse_rsc calls. I'm finding hints that clients on lagger connections are getting disconnected before getting the reconnect command, and I was able to reproduce this myself on a cell phone connection while connecting to terry --- code/modules/client/client_procs.dm | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/code/modules/client/client_procs.dm b/code/modules/client/client_procs.dm index 85d89f5c8ec..9c78add4854 100644 --- a/code/modules/client/client_procs.dm +++ b/code/modules/client/client_procs.dm @@ -519,7 +519,11 @@ GLOBAL_LIST_EMPTY(external_rsc_urls) cidcheck[ckey] = computer_id tokens[ckey] = cid_check_reconnect() - sleep(10) //browse is queued, we don't want them to disconnect before getting the browse() command. + sleep(15 SECONDS) //Longer sleep here since this would trigger if a client tries to reconnect manually because the inital reconnect failed + + //we sleep after telling the client to reconnect, so if we still exist something is up + log_access("Forced disconnect: [key] [computer_id] [address] - CID randomizer check") + qdel(src) return TRUE @@ -561,7 +565,11 @@ GLOBAL_LIST_EMPTY(external_rsc_urls) cidcheck[ckey] = computer_id tokens[ckey] = cid_check_reconnect() - sleep(10) //browse is queued, we don't want them to disconnect before getting the browse() command. + sleep(5 SECONDS) //browse is queued, we don't want them to disconnect before getting the browse() command. + + //we sleep after telling the client to reconnect, so if we still exist something is up + log_access("Forced disconnect: [key] [computer_id] [address] - CID randomizer check") + qdel(src) return TRUE