Make WordPress Core

Ticket #37210: class.smtp_5.2.14.diff

File class.smtp_5.2.14.diff, 3.3 KB (added by sfpt, 8 years ago)

Diff between upstream and wordpress for class-smtp

  • /home/sergio/workspace/

    old new  
    389389            );
    390390
    391391            if (empty($authtype)) {
    392                 foreach (array('LOGIN', 'CRAM-MD5', 'NTLM', 'PLAIN', 'XOAUTH2') as $method) {
     392                foreach (array('LOGIN', 'CRAM-MD5', 'PLAIN') as $method) {
    393393                    if (in_array($method, $this->server_caps['AUTH'])) {
    394394                        $authtype = $method;
    395395                        break;
     
    437437                    return false;
    438438                }
    439439                break;
    440             case 'XOAUTH2':
    441                 //If the OAuth Instance is not set. Can be a case when PHPMailer is used
    442                 //instead of PHPMailerOAuth
    443                 if (is_null($OAuth)) {
    444                     return false;
    445                 }
    446                 $oauth = $OAuth->getOauth64();
    447 
    448                 // Start authentication
    449                 if (!$this->sendCommand('AUTH', 'AUTH XOAUTH2 ' . $oauth, 235)) {
    450                     return false;
    451                 }
    452                 break;
    453             case 'NTLM':
    454                 /*
    455                  * ntlm_sasl_client.php
    456                  * Bundled with Permission
    457                  *
    458                  * How to telnet in windows:
    459                  * http://technet.microsoft.com/en-us/library/aa995718%28EXCHG.65%29.aspx
    460                  * PROTOCOL Docs http://curl.haxx.se/rfc/ntlm.html#ntlmSmtpAuthentication
    461                  */
    462                 require_once 'extras/ntlm_sasl_client.php';
    463                 $temp = new stdClass;
    464                 $ntlm_client = new ntlm_sasl_client_class;
    465                 //Check that functions are available
    466                 if (!$ntlm_client->Initialize($temp)) {
    467                     $this->setError($temp->error);
    468                     $this->edebug(
    469                         'You need to enable some modules in your php.ini file: '
    470                         . $this->error['error'],
    471                         self::DEBUG_CLIENT
    472                     );
    473                     return false;
    474                 }
    475                 //msg1
    476                 $msg1 = $ntlm_client->TypeMsg1($realm, $workstation); //msg1
    477 
    478                 if (!$this->sendCommand(
    479                     'AUTH NTLM',
    480                     'AUTH NTLM ' . base64_encode($msg1),
    481                     334
    482                 )
    483                 ) {
    484                     return false;
    485                 }
    486                 //Though 0 based, there is a white space after the 3 digit number
    487                 //msg2
    488                 $challenge = substr($this->last_reply, 3);
    489                 $challenge = base64_decode($challenge);
    490                 $ntlm_res = $ntlm_client->NTLMResponse(
    491                     substr($challenge, 24, 8),
    492                     $password
    493                 );
    494                 //msg3
    495                 $msg3 = $ntlm_client->TypeMsg3(
    496                     $ntlm_res,
    497                     $username,
    498                     $realm,
    499                     $workstation
    500                 );
    501                 // send encoded username
    502                 return $this->sendCommand('Username', base64_encode($msg3), 235);
    503440            case 'CRAM-MD5':
    504441                // Start authentication
    505442                if (!$this->sendCommand('AUTH CRAM-MD5', 'AUTH CRAM-MD5', 334)) {