Disconnects all players that haven't been heard from in a while Server only
| 1045 | // Disconnects all players that haven't been heard from in a while |
| 1046 | // Server only |
| 1047 | void MultiDisconnectDeadPlayers() { |
| 1048 | for (int i = 0; i < MAX_NET_PLAYERS; i++) { |
| 1049 | if (i == Player_num) |
| 1050 | continue; |
| 1051 | |
| 1052 | if (NetPlayers[i].flags & NPF_CONNECTED) { |
| 1053 | float cur_time = timer_GetTime(); |
| 1054 | |
| 1055 | if (!nw_CheckReliableSocket(NetPlayers[i].reliable_socket)) { |
| 1056 | mprintf(0, "Disconnecting player %d because the reliable socket closed.\n", i); |
| 1057 | AddHUDMessage("%s (%s)", TXT_RELIABLE_OVERRUN, Players[i].callsign); |
| 1058 | MultiDisconnectPlayer(i); |
| 1059 | } else if (NetPlayers[i].sequence > NETSEQ_LEVEL_START && NetPlayers[i].sequence != NETSEQ_LEVEL_END) { |
| 1060 | if (cur_time - NetPlayers[i].last_packet_time > DISCONNECT_TIME) { |
| 1061 | mprintf(0, "8sec disconnecting player %d. Last packet time=%f Sequence=%d\n", |
| 1062 | i, |
| 1063 | cur_time - NetPlayers[i].last_packet_time, |
| 1064 | NetPlayers[i].sequence); |
| 1065 | MultiDisconnectPlayer(i); |
| 1066 | } |
| 1067 | } else // If not playing (ie joining, give them longer) |
| 1068 | { |
| 1069 | if (cur_time - NetPlayers[i].last_packet_time > (DISCONNECT_TIME * 15)) { |
| 1070 | mprintf(0, "Too long...disconnecting player %d. Last packet time=%f Sequence=%d\n", |
| 1071 | i, |
| 1072 | cur_time - NetPlayers[i].last_packet_time, |
| 1073 | NetPlayers[i].sequence); |
| 1074 | MultiDisconnectPlayer(i); |
| 1075 | } |
| 1076 | } |
| 1077 | } |
| 1078 | } |
| 1079 | } |
| 1080 | |
| 1081 | // Disconnect a player for whatever reason |
| 1082 | // Server only |
no test coverage detected