Allow Linker::formatComment to link to another wiki per default.
[lhc/web/wiklou.git] / thumb.php
index 25bca87..f5eb8c9 100644 (file)
--- a/thumb.php
+++ b/thumb.php
@@ -221,7 +221,7 @@ function wfStreamThumb( array $params ) {
                wfThumbErrorText( 404, "The source file '$fileName' does not exist." );
                return;
        } elseif ( $img->getPath() === false ) {
-               wfThumbErrorText( 500, "The source file '$fileName' is not locally accessible." );
+               wfThumbErrorText( 400, "The source file '$fileName' is not locally accessible." );
                return;
        }
 
@@ -316,10 +316,10 @@ function wfStreamThumb( array $params ) {
 
        $user = RequestContext::getMain()->getUser();
        if ( !wfThumbIsStandard( $img, $params ) && $user->pingLimiter( 'renderfile-nonstandard' ) ) {
-               wfThumbError( 500, wfMessage( 'actionthrottledtext' )->parse() );
+               wfThumbError( 429, wfMessage( 'actionthrottledtext' )->parse() );
                return;
        } elseif ( $user->pingLimiter( 'renderfile' ) ) {
-               wfThumbError( 500, wfMessage( 'actionthrottledtext' )->parse() );
+               wfThumbError( 429, wfMessage( 'actionthrottledtext' )->parse() );
                return;
        }
 
@@ -332,6 +332,9 @@ function wfStreamThumb( array $params ) {
        $errorCode = 500;
        if ( !$thumb ) {
                $errorMsg = $errorMsg ?: $msg->rawParams( 'File::transform() returned false' )->escaped();
+               if ( $errorMsg instanceof MessageSpecifier && $errorMsg->getKey() === 'thumbnail_image-failure-limit' ) {
+                       $errorCode = 429;
+               }
        } elseif ( $thumb->isError() ) {
                $errorMsg = $thumb->getHtmlMsg();
        } elseif ( !$thumb->hasFile() ) {
@@ -555,7 +558,7 @@ function wfExtractThumbParams( $file, $params ) {
  * @return void
  */
 function wfThumbErrorText( $status, $msgText ) {
-       return wfThumbError( $status, htmlspecialchars( $msgText ) );
+       wfThumbError( $status, htmlspecialchars( $msgText ) );
 }
 
 /**
@@ -570,10 +573,8 @@ function wfThumbError( $status, $msgHtml ) {
 
        header( 'Cache-Control: no-cache' );
        header( 'Content-Type: text/html; charset=utf-8' );
-       if ( $status == 400 ) {
-               HttpStatus::header( 400 );
-       } elseif ( $status == 404 ) {
-               HttpStatus::header( 404 );
+       if ( $status == 400 || $status == 404 || $status == 429 ) {
+               HttpStatus::header( $status );
        } elseif ( $status == 403 ) {
                HttpStatus::header( 403 );
                header( 'Vary: Cookie' );