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

This commit is contained in:
James R 2020-04-13 17:40:48 -07:00
parent b25acfa782
commit abd15288b4
1 changed files with 49 additions and 44 deletions

View File

@ -1471,6 +1471,8 @@ 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;
@ -1480,6 +1482,7 @@ static void SV_SendServerInfo(INT32 node, tic_t servertime)
strncpy(netbuffer->u.serverinfo.httpsource, "", mirror_length);
netbuffer->u.serverinfo.httpsource[MAX_MIRROR_LENGTH-1] = '\0';
}
#endif
p = PutFileNeeded(0);
@ -2042,16 +2045,6 @@ 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)
{
@ -4161,18 +4154,32 @@ 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 &&
netbuffer->u.filecfg.http_source[0] != '\0'
){
strlcpy(http_source, netbuffer->u.filecfg.http_source,
MAX_MIRROR_LENGTH);
if (! curl_failedwebdownload)
{
strncpy(http_source, netbuffer->u.filecfg.http_source,
sizeof http_source);
cl_mode = CL_PREPAREHTTPFILES;
}
else
#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
if (!CL_CheckDownloadable())
}
if (cl_mode == CL_WAITDOWNLOADFILESRESPONSE)
{
if (CL_CheckDownloadable())
{
CONS_Printf("trying to download\n");
if (CL_SendRequestFile())
cl_mode = CL_DOWNLOADFILES;
}
else
{
D_QuitNetGame();
CL_Reset();
@ -4187,14 +4194,12 @@ static void HandlePacketFromAwayNode(SINT8 node)
), 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