From 6d0221fa3b1fa05453ffa86e896638157a6ab287 Mon Sep 17 00:00:00 2001 From: Platonides Date: Fri, 30 Apr 2010 21:57:26 +0000 Subject: [PATCH] No MaxSem, you can't revert r65715 on r65716. Use a class variable instead of a global variable for passing the error from the error handler to user code. --- includes/UserMailer.php | 23 ++++++++++++----------- 1 file changed, 12 insertions(+), 11 deletions(-) diff --git a/includes/UserMailer.php b/includes/UserMailer.php index daf8b6214c..5ae6c513e2 100644 --- a/includes/UserMailer.php +++ b/includes/UserMailer.php @@ -75,6 +75,8 @@ class MailAddress { * Collection of static functions for sending mail */ class UserMailer { + static $mErrorString; + /** * Send mail using a PEAR mailer */ @@ -106,7 +108,7 @@ class UserMailer { * @return mixed True on success, a WikiError object on failure. */ static function send( $to, $from, $subject, $body, $replyto=null, $contentType=null ) { - global $wgSMTP, $wgOutputEncoding, $wgErrorString, $wgEnotifImpersonal; + global $wgSMTP, $wgOutputEncoding, $wgEnotifImpersonal; global $wgEnotifMaxRecips; if ( is_array( $to ) ) { @@ -190,7 +192,7 @@ class UserMailer { wfDebug( "Sending mail via internal mail() function\n" ); - $wgErrorString = ''; + self::$mErrorString = ''; $html_errors = ini_get( 'html_errors' ); ini_set( 'html_errors', '0' ); set_error_handler( array( 'UserMailer', 'errorHandler' ) ); @@ -204,19 +206,19 @@ class UserMailer { $sent = mail( $to->toString(), wfQuotedPrintable( $subject ), $body, $headers ); } } else { - $wgErrorString = 'PHP is not configured to send mail'; + self::$mErrorString = 'PHP is not configured to send mail'; } restore_error_handler(); ini_set( 'html_errors', $html_errors ); - if ( $wgErrorString ) { - wfDebug( "Error sending mail: $wgErrorString\n" ); - return new WikiError( $wgErrorString ); - } elseif (! $sent) { + if ( self::$mErrorString ) { + wfDebug( "Error sending mail: " . self::$mErrorString . "\n" ); + return new WikiError( self::$mErrorString ); + } elseif (! $sent ) { //mail function only tells if there's an error wfDebug( "Error sending mail\n" ); - return new WikiError( 'mailer error' ); + return new WikiError( 'mail() failed' ); } else { return true; } @@ -224,14 +226,13 @@ class UserMailer { } /** - * Get the mail error message in global $wgErrorString + * Set the mail error message in self::$mErrorString * * @param $code Integer: error number * @param $string String: error message */ static function errorHandler( $code, $string ) { - global $wgErrorString; - $wgErrorString = preg_replace( '/^mail\(\)(\s*\[.*?\])?: /', '', $string ); + self::$mErrorString = preg_replace( '/^mail\(\)(\s*\[.*?\])?: /', '', $string ); } /** -- 2.20.1