From 6a3b6538d959fe1051a99b571d3cbf6249e17e8b Mon Sep 17 00:00:00 2001 From: Brion Vibber Date: Fri, 27 Mar 2009 17:42:05 +0000 Subject: [PATCH] Make upload-by-URL fetch timeout configurable as $wgCopyUploadTimeout, default to 30s instead of 10s --- includes/DefaultSettings.php | 2 ++ includes/specials/SpecialUpload.php | 4 ++-- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/includes/DefaultSettings.php b/includes/DefaultSettings.php index 94a0dee784..28cbfc83f8 100644 --- a/includes/DefaultSettings.php +++ b/includes/DefaultSettings.php @@ -428,6 +428,8 @@ $wgSharedUploadDBprefix = ''; $wgCacheSharedUploads = true; /** Allow for upload to be copied from an URL. Requires Special:Upload?source=web */ $wgAllowCopyUploads = false; +$wgCopyUploadTimeout = 30; // 30 seconds default timeout for upload-by-URL + /** * Max size for uploads, in bytes. Currently only works for uploads from URL * via CURL (see $wgAllowCopyUploads). The only way to impose limits on diff --git a/includes/specials/SpecialUpload.php b/includes/specials/SpecialUpload.php index ab81e4fd2e..4473027a5d 100644 --- a/includes/specials/SpecialUpload.php +++ b/includes/specials/SpecialUpload.php @@ -155,7 +155,7 @@ class UploadForm { * Returns true if there was an error, false otherwise */ private function curlCopy( $url, $dest ) { - global $wgUser, $wgOut, $wgHTTPProxy; + global $wgUser, $wgOut, $wgHTTPProxy, $wgCopyUploadTimeout; if( !$wgUser->isAllowed( 'upload_by_url' ) ) { $wgOut->permissionRequired( 'upload_by_url' ); @@ -180,7 +180,7 @@ class UploadForm { $ch = curl_init(); curl_setopt( $ch, CURLOPT_HTTP_VERSION, 1.0); # Probably not needed, but apparently can work around some bug - curl_setopt( $ch, CURLOPT_TIMEOUT, 10); # 10 seconds timeout + curl_setopt( $ch, CURLOPT_TIMEOUT, $wgCopyUploadTimeout); # Default 30 seconds timeout curl_setopt( $ch, CURLOPT_LOW_SPEED_LIMIT, 512); # 0.5KB per second minimum transfer speed curl_setopt( $ch, CURLOPT_URL, $url); if( $wgHTTPProxy ) { -- 2.20.1