From 10582beb2ac3d32a73c09007cd7a5079385ae893 Mon Sep 17 00:00:00 2001 From: James R Date: Sun, 26 Apr 2020 01:12:39 -0700 Subject: [PATCH] Revert "Don't send httpsource in SERVERINFO if join password is set" This reverts commit abd15288b4a6d977b0e0b7542d614e5241f5e7c3. --- src/d_clisrv.c | 87 ++++++++++++++++++++++++-------------------------- 1 file changed, 41 insertions(+), 46 deletions(-) diff --git a/src/d_clisrv.c b/src/d_clisrv.c index 6d657dd9..440d029a 100644 --- a/src/d_clisrv.c +++ b/src/d_clisrv.c @@ -1479,18 +1479,15 @@ static void SV_SendServerInfo(INT32 node, tic_t servertime) netbuffer->u.serverinfo.actnum = 0; //mapheaderinfo[gamemap-1]->actnum #ifdef HAVE_CURL - if (! D_IsJoinPasswordOn()) - { - mirror_length = strlen(httpurl); - if (mirror_length > MAX_MIRROR_LENGTH) - mirror_length = MAX_MIRROR_LENGTH; + mirror_length = strlen(httpurl); + if (mirror_length > MAX_MIRROR_LENGTH) + mirror_length = MAX_MIRROR_LENGTH; - if (snprintf(netbuffer->u.serverinfo.httpsource, mirror_length+1, "%s", httpurl) < 0) - // If there's an encoding error, send nothing, we accept that the above may be truncated - strncpy(netbuffer->u.serverinfo.httpsource, "", mirror_length); + if (snprintf(netbuffer->u.serverinfo.httpsource, mirror_length+1, "%s", httpurl) < 0) + // If there's an encoding error, send nothing, we accept that the above may be truncated + strncpy(netbuffer->u.serverinfo.httpsource, "", mirror_length); - netbuffer->u.serverinfo.httpsource[MAX_MIRROR_LENGTH-1] = '\0'; - } + netbuffer->u.serverinfo.httpsource[MAX_MIRROR_LENGTH-1] = '\0'; #endif p = PutFileNeeded(0); @@ -2062,6 +2059,16 @@ static boolean CL_ServerConnectionSearchTicker(boolean viams, tic_t *asksent) if (client) { +#ifdef HAVE_CURL + if (serverlist[i].info.httpsource[0]) + strncpy(http_source, serverlist[i].info.httpsource, MAX_MIRROR_LENGTH); + else + http_source[0] = '\0'; +#else + if (serverlist[i].info.httpsource[0]) + CONS_Printf("We received a http url from the server, however it will not be used as this build lacks curl support (%s)\n", serverlist[i].info.httpsource); +#endif + D_ParseFileneeded(serverlist[i].info.fileneedednum, serverlist[i].info.fileneeded, 0); if (serverlist[i].info.kartvars & SV_LOTSOFADDONS) { @@ -4179,52 +4186,40 @@ static void HandlePacketFromAwayNode(SINT8 node) SERVERONLY - if (netbuffer->u.filecfg.http_source[0] != '\0') - { - netbuffer->u.filecfg.http_source[MAX_MIRROR_LENGTH-1] = '\0'; - #ifdef HAVE_CURL - if (! curl_failedwebdownload) - { - strncpy(http_source, netbuffer->u.filecfg.http_source, - sizeof http_source); + if (! curl_failedwebdownload && + netbuffer->u.filecfg.http_source[0] != '\0' + ){ + strlcpy(http_source, netbuffer->u.filecfg.http_source, + MAX_MIRROR_LENGTH); - cl_mode = CL_PREPAREHTTPFILES; - } -#else - CONS_Printf("We received a http url from the server, however it will not be used as this build lacks curl support (%s)\n", netbuffer->u.filecfg.http_source); -#endif + cl_mode = CL_PREPAREHTTPFILES; } - - if (cl_mode == CL_WAITDOWNLOADFILESRESPONSE) + else +#endif + if (!CL_CheckDownloadable()) { - if (CL_CheckDownloadable()) - { - CONS_Printf("trying to download\n"); - if (CL_SendRequestFile()) - cl_mode = CL_DOWNLOADFILES; - } - else - { - D_QuitNetGame(); - CL_Reset(); - D_StartTitle(); - M_StartMessage(M_GetText( - "You cannot connect to this server\n" - "because you cannot download the files\n" - "that you are missing from the server.\n\n" - "See the console or log file for\n" - "more details.\n\n" - "Press ESC\n" - ), NULL, MM_NOTHING); - break; - } + D_QuitNetGame(); + CL_Reset(); + D_StartTitle(); + M_StartMessage(M_GetText( + "You cannot connect to this server\n" + "because you cannot download the files\n" + "that you are missing from the server.\n\n" + "See the console or log file for\n" + "more details.\n\n" + "Press ESC\n" + ), NULL, MM_NOTHING); + break; } if (cl_challengeattempted == 1) // Successful password noise. S_StartSound(NULL, sfx_s221); cl_challengeattempted = 2; + CONS_Printf("trying to download\n"); + if (cl_mode == CL_WAITDOWNLOADFILESRESPONSE && CL_SendRequestFile()) + cl_mode = CL_DOWNLOADFILES; break; case PT_SERVERCFG: // Positive response of client join request