/* CL_CheckForResend Resend a connect message if the last one has timed out */ static void CL_CheckForResend (void) { static const char *getchallenge = "\377\377\377\377getchallenge\n"; double t1, t2; if (connect_time == -1) return; if (cls.state != ca_disconnected) return; if (connect_time && realtime - connect_time < 5.0) return; t1 = Sys_DoubleTime (); if (!NET_StringToAdr (cls.servername->str, &cls.server_addr)) { Sys_Printf ("Bad server address\n"); connect_time = -1; return; } if (cls.server_addr.port == 0) cls.server_addr.port = BigShort (27500); t2 = Sys_DoubleTime (); connect_time = realtime + t2 - t1; // for retransmit requests VID_SetCaption (va ("Connecting to %s", cls.servername->str)); Sys_Printf ("Connecting to %s...\n", cls.servername->str); Netchan_SendPacket (strlen (getchallenge), (void *) getchallenge, cls.server_addr); }
/* ===================== CL_Spawn ===================== */ void CL_Spawn (void) { // first update is the final signon stage cls.state = ca_active; if (cls.demoplayback) host_skipframe = true; if (!cls.demoplayback) VID_SetCaption (va(PROGRAM ": %s", cls.servername)); Con_ClearNotify (); SCR_EndLoadingPlaque (); TP_ExecTrigger ("f_spawn"); }
/* CL_CheckForResend Resend a connect message if the last one has timed out */ void CL_CheckForResend (void) { netadr_t adr; char data[2048]; double t1, t2; if (connect_time == -1) return; if (cls.state != ca_disconnected) return; if (connect_time && realtime - connect_time < 5.0) return; t1 = Sys_DoubleTime (); if (!NET_StringToAdr (cls.servername, &adr)) { Con_Printf ("Bad server address\n"); connect_time = -1; return; } if (!NET_IsClientLegal (&adr)) { Con_Printf ("Illegal server address\n"); connect_time = -1; return; } if (adr.port == 0) adr.port = BigShort (27500); t2 = Sys_DoubleTime (); connect_time = realtime + t2 - t1; // for retransmit requests VID_SetCaption (va ("Connecting to %s", cls.servername)); Con_Printf ("Connecting to %s...\n", cls.servername); snprintf (data, sizeof (data), "%c%c%c%cgetchallenge\n", 255, 255, 255, 255); NET_SendPacket (strlen (data), data, adr); }