From 13517fb726bd60dceae4fc414d93e5dc9d9daef8 Mon Sep 17 00:00:00 2001
From: sapier <Sapier at GMX dot net>
Date: Sun, 15 Jun 2014 21:30:44 +0200
Subject: [PATCH] Add separate download timeout to allow download of bigger
 files or on low bandwidth lines

---
 minetest.conf.example   | 2 ++
 src/defaultsettings.cpp | 1 +
 src/guiEngine.cpp       | 1 +
 3 files changed, 4 insertions(+)

diff --git a/minetest.conf.example b/minetest.conf.example
index a8d573d82..5c4be79f3 100644
--- a/minetest.conf.example
+++ b/minetest.conf.example
@@ -212,6 +212,8 @@
 # - Downloads performed by main menu (e.g. mod manager)
 # Only has an effect if compiled with cURL
 #curl_parallel_limit = 8
+# maximum time in ms a file download (e.g. a mod download) may take
+#curl_file_download_timeout = 300000
 
 # enable usage of remote media server (if provided by server)
 #enable_remote_media_server = true
diff --git a/src/defaultsettings.cpp b/src/defaultsettings.cpp
index cc6a0dd69..cf9101e34 100644
--- a/src/defaultsettings.cpp
+++ b/src/defaultsettings.cpp
@@ -153,6 +153,7 @@ void set_default_settings(Settings *settings)
 
 	settings->setDefault("curl_timeout", "5000");
 	settings->setDefault("curl_parallel_limit", "8");
+	settings->setDefault("curl_file_download_timeout", "300000");
 
 	settings->setDefault("enable_remote_media_server", "true");
 
diff --git a/src/guiEngine.cpp b/src/guiEngine.cpp
index 34bdaffad..530733216 100644
--- a/src/guiEngine.cpp
+++ b/src/guiEngine.cpp
@@ -523,6 +523,7 @@ bool GUIEngine::downloadFile(std::string url,std::string target)
 	HTTPFetchResult fetchresult;
 	fetchrequest.url = url;
 	fetchrequest.caller = HTTPFETCH_SYNC;
+	fetchrequest.timeout = g_settings->getS32("curl_file_download_timeout");
 	httpfetch_sync(fetchrequest, fetchresult);
 
 	if (fetchresult.succeeded) {
-- 
2.25.1