diff --git a/engine/server/sv_main.c b/engine/server/sv_main.c index 6e190ff0e..48807fd3b 100644 --- a/engine/server/sv_main.c +++ b/engine/server/sv_main.c @@ -73,6 +73,7 @@ cvar_t allow_download_sounds = {"allow_download_sounds", "1"}; cvar_t allow_download_demos = {"allow_download_demos", "1"}; cvar_t allow_download_maps = {"allow_download_maps", "1"}; cvar_t allow_download_anymap = {"allow_download_pakmaps", "0"}; +cvar_t allow_download_pakcontents = {"allow_download_pakcontents", "1"}; cvar_t allow_download_root = {"allow_download_root", "0"}; cvar_t allow_download_textures = {"allow_download_textures", "1"}; cvar_t allow_download_pk3s = {"allow_download_pk3s", "1"}; @@ -3002,6 +3003,7 @@ void SV_InitLocal (void) Cvar_Register (&allow_download_maps, cvargroup_serverpermissions); Cvar_Register (&allow_download_demos, cvargroup_serverpermissions); Cvar_Register (&allow_download_anymap, cvargroup_serverpermissions); + Cvar_Register (&allow_download_pakcontents, cvargroup_serverpermissions); Cvar_Register (&allow_download_textures,cvargroup_serverpermissions); Cvar_Register (&allow_download_pk3s, cvargroup_serverpermissions); Cvar_Register (&allow_download_wads, cvargroup_serverpermissions); diff --git a/engine/server/sv_user.c b/engine/server/sv_user.c index 50608b287..d50fb34b9 100644 --- a/engine/server/sv_user.c +++ b/engine/server/sv_user.c @@ -1588,7 +1588,7 @@ SV_BeginDownload_f void SV_BeginDownload_f(void) { char *name; - extern cvar_t allow_download_anymap; + extern cvar_t allow_download_anymap, allow_download_pakcontents; extern int file_from_pak; // ZOID did file come from pak? @@ -1638,7 +1638,7 @@ void SV_BeginDownload_f(void) if (!host_client->download // special check for maps, if it came from a pak file, don't allow // download ZOID - || (!allow_download_anymap.value && strncmp(name, "maps/", 5) == 0 && file_from_pak)) + || ((!allow_download_pakcontents.value || (!allow_download_anymap.value && strncmp(name, "maps/", 5) == 0)) && file_from_pak)) { if (host_client->download) {