Update pop3 class. Props aaroncampbell. fixes #17064

git-svn-id: http://svn.automattic.com/wordpress/trunk@17677 1a063a9b-81f0-0310-95a4-ce76da25c4cd
This commit is contained in:
ryan 2011-04-21 20:40:32 +00:00
parent a1128831ec
commit a619926bab

View File

@ -2,20 +2,18 @@
/**
* mail_fetch/setup.php
*
* @package SquirrelMail
*
* @copyright (c) 1999-2006 The SquirrelMail Project Team
*
* @copyright (c) 1999 CDI (cdi@thewebmasters.net) All Rights Reserved
* Modified by Philippe Mingo 2001 mingo@rotedic.com
* Copyright (c) 1999-2011 CDI (cdi@thewebmasters.net) All Rights Reserved
* Modified by Philippe Mingo 2001-2009 mingo@rotedic.com
* An RFC 1939 compliant wrapper class for the POP3 protocol.
*
* Licensed under the GNU GPL. For full terms see the file COPYING.
* @license http://opensource.org/licenses/gpl-license.php GNU General Public License
*
* pop3 class
* POP3 class
*
* $Id$
* @copyright 1999-2011 The SquirrelMail Project Team
* @license http://opensource.org/licenses/gpl-license.php GNU Public License
* @package plugins
* @subpackage mail_fetch
*/
class POP3 {
@ -76,7 +74,7 @@ class POP3 {
// If MAILSERVER is set, override $server with it's value
if (!isset($port) || !$port) {$port = 110;}
if (!isset($port) || !$port) {$port = 110;}
if(!empty($this->MAILSERVER))
$server = $this->MAILSERVER;
@ -253,7 +251,7 @@ class POP3 {
$MsgArray = array();
$line = fgets($fp,$buffer);
while ( !ereg("^\.\r\n",$line))
while ( !preg_match('/^\.\r\n/',$line))
{
$MsgArray[$count] = $line;
$count++;
@ -320,7 +318,7 @@ class POP3 {
if($msgC > $Total) { break; }
$line = fgets($fp,$this->BUFFER);
$line = $this->strip_clf($line);
if(ereg("^\.",$line))
if(strpos($line, '.') === 0)
{
$this->ERROR = "POP3 pop_list: " . _("Premature end of list");
return false;
@ -366,9 +364,9 @@ class POP3 {
$MsgArray = array();
$line = fgets($fp,$buffer);
while ( !ereg("^\.\r\n",$line))
while ( !preg_match('/^\.\r\n/',$line))
{
if ( $line[0] == '.' ) { $line = substr($line,1); }
if ( $line{0} == '.' ) { $line = substr($line,1); }
$MsgArray[$count] = $line;
$count++;
$line = fgets($fp,$buffer);
@ -554,10 +552,7 @@ class POP3 {
$line = "";
$count = 1;
$line = fgets($fp,$buffer);
while ( !ereg("^\.\r\n",$line)) {
if(ereg("^\.\r\n",$line)) {
break;
}
while ( !preg_match('/^\.\r\n/',$line)) {
list ($msg,$msgUidl) = preg_split('/\s+/',$line);
$msgUidl = $this->strip_clf($msgUidl);
if($count == $msg) {
@ -607,7 +602,7 @@ class POP3 {
if( empty($cmd) )
return false;
else
return( ereg ("^\+OK", $cmd ) );
return( stripos($cmd, '+OK') !== false );
}
function strip_clf ($text = "") {
@ -616,8 +611,7 @@ class POP3 {
if(empty($text))
return $text;
else {
$stripped = str_replace("\r",'',$text);
$stripped = str_replace("\n",'',$stripped);
$stripped = str_replace(array("\r","\n"),'',$text);
return $stripped;
}
}
@ -649,4 +643,10 @@ class POP3 {
}
} // End class
?>
// For php4 compatibility
if (!function_exists("stripos")) {
function stripos($haystack, $needle){
return strpos($haystack, stristr( $haystack, $needle ));
}
}