Merge "Removed old HTMLCacheUpdateJob b/c code"
[lhc/web/wiklou.git] / includes / upload / UploadFromUrl.php
index 9ebd7a9..3d410b1 100644 (file)
@@ -49,6 +49,7 @@ class UploadFromUrl extends UploadBase {
                if ( !$user->isAllowed( 'upload_by_url' ) ) {
                        return 'upload_by_url';
                }
+
                return parent::isAllowed( $user );
        }
 
@@ -58,6 +59,7 @@ class UploadFromUrl extends UploadBase {
         */
        public static function isEnabled() {
                global $wgAllowCopyUploads;
+
                return $wgAllowCopyUploads && parent::isEnabled();
        }
 
@@ -103,6 +105,7 @@ class UploadFromUrl extends UploadBase {
                        }
                        */
                }
+
                return $valid;
        }
 
@@ -115,9 +118,10 @@ class UploadFromUrl extends UploadBase {
        public static function isAllowedUrl( $url ) {
                if ( !isset( self::$allowedUrls[$url] ) ) {
                        $allowed = true;
-                       wfRunHooks( 'IsUploadAllowedFromUrl', array( $url, &$allowed ) );
+                       Hooks::run( 'IsUploadAllowedFromUrl', array( $url, &$allowed ) );
                        self::$allowedUrls[$url] = $allowed;
                }
+
                return self::$allowedUrls[$url];
        }
 
@@ -169,6 +173,7 @@ class UploadFromUrl extends UploadBase {
                global $wgUser;
 
                $url = $request->getVal( 'wpUploadFileURL' );
+
                return !empty( $url )
                        && Http::isValidURI( $url )
                        && $wgUser->isAllowed( 'upload_by_url' );
@@ -202,6 +207,7 @@ class UploadFromUrl extends UploadBase {
                if ( !$this->mAsync ) {
                        return $this->reallyFetchFile( $httpOptions );
                }
+
                return Status::newGood();
        }
 
@@ -213,6 +219,7 @@ class UploadFromUrl extends UploadBase {
        protected function makeTemporaryFile() {
                $tmpFile = TempFSFile::factory( 'URL' );
                $tmpFile->bind( $this );
+
                return $tmpFile->getPath();
        }
 
@@ -224,12 +231,18 @@ class UploadFromUrl extends UploadBase {
         * @return int Number of bytes handled
         */
        public function saveTempFileChunk( $req, $buffer ) {
+               wfDebugLog( 'fileupload', 'Received chunk of ' . strlen( $buffer ) . ' bytes' );
                $nbytes = fwrite( $this->mTmpHandle, $buffer );
 
                if ( $nbytes == strlen( $buffer ) ) {
                        $this->mFileSize += $nbytes;
                } else {
                        // Well... that's not good!
+                       wfDebugLog(
+                               'fileupload',
+                               'Short write ' . $this->nbytes . '/' . strlen( $buffer ) .
+                                       ' bytes, aborting with '  . $this->mFileSize . ' uploaded so far'
+                       );
                        fclose( $this->mTmpHandle );
                        $this->mTmpHandle = false;
                }
@@ -255,19 +268,25 @@ class UploadFromUrl extends UploadBase {
                if ( !$this->mTmpHandle ) {
                        return Status::newFatal( 'tmp-create-error' );
                }
+               wfDebugLog( 'fileupload', 'Temporary file created "' . $this->mTempPath . '"' );
 
                $this->mRemoveTempFile = true;
                $this->mFileSize = 0;
 
-               $options = $httpOptions + array(
-                       'followRedirects' => true,
-               );
+               $options = $httpOptions + array( 'followRedirects' => true );
+
                if ( $wgCopyUploadProxy !== false ) {
                        $options['proxy'] = $wgCopyUploadProxy;
                }
+
                if ( $wgCopyUploadTimeout && !isset( $options['timeout'] ) ) {
                        $options['timeout'] = $wgCopyUploadTimeout;
                }
+               wfDebugLog(
+                       'fileupload',
+                       'Starting download from "' . $this->mUrl . '" ' .
+                               '<' . implode( ',', array_keys( array_filter( $options ) ) ) . '>'
+               );
                $req = MWHttpRequest::factory( $this->mUrl, $options );
                $req->setCallback( array( $this, 'saveTempFileChunk' ) );
                $status = $req->execute();
@@ -281,8 +300,14 @@ class UploadFromUrl extends UploadBase {
                        return Status::newFatal( 'tmp-write-error' );
                }
 
-               if ( !$status->isOk() ) {
-                       return $status;
+               wfDebugLog( 'fileupload', $status );
+               if ( $status->isOk() ) {
+                       wfDebugLog( 'fileupload', 'Download by URL completed successfuly.' );
+               } else {
+                       wfDebugLog(
+                               'fileupload',
+                               'Download by URL completed with HTTP status ' . $req->getStatus()
+                       );
                }
 
                return $status;
@@ -297,6 +322,7 @@ class UploadFromUrl extends UploadBase {
                if ( $this->mAsync ) {
                        return array( 'status' => UploadBase::OK );
                }
+
                return parent::verifyUpload();
        }
 
@@ -308,8 +334,10 @@ class UploadFromUrl extends UploadBase {
        public function checkWarnings() {
                if ( $this->mAsync ) {
                        $this->mIgnoreWarnings = false;
+
                        return array();
                }
+
                return parent::checkWarnings();
        }
 
@@ -323,6 +351,7 @@ class UploadFromUrl extends UploadBase {
                if ( $this->mAsync ) {
                        return true;
                }
+
                return parent::verifyTitlePermissions( $user );
        }
 
@@ -367,7 +396,7 @@ class UploadFromUrl extends UploadBase {
                ) );
                $job->initializeSessionData();
                JobQueueGroup::singleton()->push( $job );
+
                return $sessionKey;
        }
-
 }