Revert "Don't send httpsource in SERVERINFO if join password is set"

This reverts commit abd15288b4.
This commit is contained in:
James R 2020-04-26 01:12:39 -07:00
parent ccb6da9ab7
commit 10582beb2a

View file

@ -1479,18 +1479,15 @@ static void SV_SendServerInfo(INT32 node, tic_t servertime)
netbuffer->u.serverinfo.actnum = 0; //mapheaderinfo[gamemap-1]->actnum netbuffer->u.serverinfo.actnum = 0; //mapheaderinfo[gamemap-1]->actnum
#ifdef HAVE_CURL #ifdef HAVE_CURL
if (! D_IsJoinPasswordOn()) mirror_length = strlen(httpurl);
{ if (mirror_length > MAX_MIRROR_LENGTH)
mirror_length = strlen(httpurl); mirror_length = MAX_MIRROR_LENGTH;
if (mirror_length > MAX_MIRROR_LENGTH)
mirror_length = MAX_MIRROR_LENGTH;
if (snprintf(netbuffer->u.serverinfo.httpsource, mirror_length+1, "%s", httpurl) < 0) 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 // If there's an encoding error, send nothing, we accept that the above may be truncated
strncpy(netbuffer->u.serverinfo.httpsource, "", mirror_length); 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 #endif
p = PutFileNeeded(0); p = PutFileNeeded(0);
@ -2062,6 +2059,16 @@ static boolean CL_ServerConnectionSearchTicker(boolean viams, tic_t *asksent)
if (client) 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); D_ParseFileneeded(serverlist[i].info.fileneedednum, serverlist[i].info.fileneeded, 0);
if (serverlist[i].info.kartvars & SV_LOTSOFADDONS) if (serverlist[i].info.kartvars & SV_LOTSOFADDONS)
{ {
@ -4179,52 +4186,40 @@ static void HandlePacketFromAwayNode(SINT8 node)
SERVERONLY SERVERONLY
if (netbuffer->u.filecfg.http_source[0] != '\0')
{
netbuffer->u.filecfg.http_source[MAX_MIRROR_LENGTH-1] = '\0';
#ifdef HAVE_CURL #ifdef HAVE_CURL
if (! curl_failedwebdownload) if (! curl_failedwebdownload &&
{ netbuffer->u.filecfg.http_source[0] != '\0'
strncpy(http_source, netbuffer->u.filecfg.http_source, ){
sizeof http_source); strlcpy(http_source, netbuffer->u.filecfg.http_source,
MAX_MIRROR_LENGTH);
cl_mode = CL_PREPAREHTTPFILES; 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
} }
else
if (cl_mode == CL_WAITDOWNLOADFILESRESPONSE) #endif
if (!CL_CheckDownloadable())
{ {
if (CL_CheckDownloadable()) D_QuitNetGame();
{ CL_Reset();
CONS_Printf("trying to download\n"); D_StartTitle();
if (CL_SendRequestFile()) M_StartMessage(M_GetText(
cl_mode = CL_DOWNLOADFILES; "You cannot connect to this server\n"
} "because you cannot download the files\n"
else "that you are missing from the server.\n\n"
{ "See the console or log file for\n"
D_QuitNetGame(); "more details.\n\n"
CL_Reset(); "Press ESC\n"
D_StartTitle(); ), NULL, MM_NOTHING);
M_StartMessage(M_GetText( break;
"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. if (cl_challengeattempted == 1) // Successful password noise.
S_StartSound(NULL, sfx_s221); S_StartSound(NULL, sfx_s221);
cl_challengeattempted = 2; cl_challengeattempted = 2;
CONS_Printf("trying to download\n");
if (cl_mode == CL_WAITDOWNLOADFILESRESPONSE && CL_SendRequestFile())
cl_mode = CL_DOWNLOADFILES;
break; break;
case PT_SERVERCFG: // Positive response of client join request case PT_SERVERCFG: // Positive response of client join request