… | |
… | |
131 | |
131 | |
132 | draw_client_map (pl); |
132 | draw_client_map (pl); |
133 | |
133 | |
134 | if (update_look) |
134 | if (update_look) |
135 | esrv_draw_look (pl); |
135 | esrv_draw_look (pl); |
|
|
136 | |
|
|
137 | mapinfo_queue_run (); |
136 | |
138 | |
137 | #if HAVE_TCP_INFO |
139 | #if HAVE_TCP_INFO |
138 | // check time of last ack, and, if too old, kill connection |
140 | // check time of last ack, and, if too old, kill connection |
139 | socklen_t len = sizeof (tcpi); |
141 | socklen_t len = sizeof (tcpi); |
140 | |
142 | |
… | |
… | |
153 | tcpi.tcpi_snd_ssthresh, tcpi.tcpi_snd_cwnd, tcpi.tcpi_advmss, tcpi.tcpi_pmtu, tcpi.tcpi_advmss, |
155 | tcpi.tcpi_snd_ssthresh, tcpi.tcpi_snd_cwnd, tcpi.tcpi_advmss, tcpi.tcpi_pmtu, tcpi.tcpi_advmss, |
154 | |
156 | |
155 | tcpi.tcpi_snd_cwnd - (tcpi.tcpi_unacked - tcpi.tcpi_sacked)); |
157 | tcpi.tcpi_snd_cwnd - (tcpi.tcpi_unacked - tcpi.tcpi_sacked)); |
156 | #endif |
158 | #endif |
157 | |
159 | |
|
|
160 | // fast-time-out a player by checking for missign acks |
158 | // do this only when player is active |
161 | // do this only when player is active |
159 | if (pl && pl->active |
162 | if (pl && pl->active |
160 | && tcpi.tcpi_last_ack_recv > int (SOCKET_TIMEOUT * 1000)) |
163 | && tcpi.tcpi_last_ack_recv > int (SOCKET_TIMEOUT * 1000)) |
161 | { |
164 | { |
162 | send_msg (NDI_RED | NDI_REPLY, "connection-timeout", "safety disconnect due to tcp/ip timeout (no packets received)"); |
165 | send_msg (NDI_RED | NDI_REPLY, "connection-timeout", "safety disconnect due to tcp/ip timeout (no packets received)"); |