diff --git a/src/http-mserv.c b/src/http-mserv.c index 2c52773c8..b981b53b8 100644 --- a/src/http-mserv.c +++ b/src/http-mserv.c @@ -34,6 +34,11 @@ Documentation available here. static void MasterServer_Debug_OnChange (void); +consvar_t cv_masterserver_timeout = { + "masterserver_timeout", "5", CV_SAVE, CV_Unsigned, + NULL, 0, NULL, NULL, 0, 0, NULL/* C90 moment */ +}; + consvar_t cv_masterserver_debug = { "masterserver_debug", "Off", CV_SAVE|CV_CALL, CV_OnOff, MasterServer_Debug_OnChange, 0, NULL, NULL, 0, 0, NULL/* C90 moment */ @@ -165,6 +170,7 @@ HMS_connect (const char *format, ...) curl_easy_setopt(curl, CURLOPT_FOLLOWLOCATION, 1L); curl_easy_setopt(curl, CURLOPT_IPRESOLVE, CURL_IPRESOLVE_V4); + curl_easy_setopt(curl, CURLOPT_TIMEOUT, cv_masterserver_timeout.value); curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, HMS_on_read); curl_easy_setopt(curl, CURLOPT_WRITEDATA, buffer); diff --git a/src/mserv.c b/src/mserv.c index f097727c7..b9a4a6f3c 100644 --- a/src/mserv.c +++ b/src/mserv.c @@ -87,6 +87,7 @@ void AddMServCommands(void) #ifndef NONET CV_RegisterVar(&cv_masterserver); CV_RegisterVar(&cv_masterserver_update_rate); + CV_RegisterVar(&cv_masterserver_timeout); CV_RegisterVar(&cv_masterserver_debug); CV_RegisterVar(&cv_servername); COM_AddCommand("listserv", Command_Listserv_f); diff --git a/src/mserv.h b/src/mserv.h index ff9e26603..01a12f50a 100644 --- a/src/mserv.h +++ b/src/mserv.h @@ -66,6 +66,7 @@ typedef struct extern consvar_t cv_masterserver, cv_servername; extern consvar_t cv_masterserver_update_rate; +extern consvar_t cv_masterserver_timeout; extern consvar_t cv_masterserver_debug; // < 0 to not connect (usually -1) (offline mode)