diff options
| author | alec <alec@208e9e7b-5314-0410-a742-e7e81cd9613c> | 2011-04-17 09:22:03 +0000 |
|---|---|---|
| committer | alec <alec@208e9e7b-5314-0410-a742-e7e81cd9613c> | 2011-04-17 09:22:03 +0000 |
| commit | 23be8a14216d427554bbb71dc19c7977c44863b7 (patch) | |
| tree | e36f27a4129bf2e2a864b897807d23ef077cfeef /roundcubemail/program/lib/Net/SMTP.php | |
| parent | 9e975e7a7c471fb3f5c7d5c531e47eb950899297 (diff) | |
- PEAR::Net_SMTP 1.5.2, fixed timeout issue (#1487843)
git-svn-id: https://svn.roundcube.net/trunk@4665 208e9e7b-5314-0410-a742-e7e81cd9613c
Diffstat (limited to 'roundcubemail/program/lib/Net/SMTP.php')
| -rw-r--r-- | roundcubemail/program/lib/Net/SMTP.php | 21 |
1 files changed, 17 insertions, 4 deletions
diff --git a/roundcubemail/program/lib/Net/SMTP.php b/roundcubemail/program/lib/Net/SMTP.php index fef8076ce..0463758b3 100644 --- a/roundcubemail/program/lib/Net/SMTP.php +++ b/roundcubemail/program/lib/Net/SMTP.php @@ -106,6 +106,14 @@ class Net_SMTP var $_socket = null; /** + * Array of socket options that will be passed to Net_Socket::connect(). + * @see stream_context_create() + * @var array + * @access private + */ + var $_socket_options = null; + + /** * The socket I/O timeout value in seconds. * @var int * @access private @@ -156,12 +164,13 @@ class Net_SMTP * @param string $localhost The value to give when sending EHLO or HELO. * @param boolean $pipeling Use SMTP command pipelining * @param integer $timeout Socket I/O timeout in seconds. + * @param array $socket_options Socket stream_context_create() options. * * @access public * @since 1.0 */ function Net_SMTP($host = null, $port = null, $localhost = null, - $pipelining = false, $timeout = 0) + $pipelining = false, $timeout = 0, $socket_options = null) { if (isset($host)) { $this->host = $host; @@ -175,6 +184,7 @@ class Net_SMTP $this->pipelining = $pipelining; $this->_socket = new Net_Socket(); + $this->_socket_options = $socket_options; $this->_timeout = $timeout; /* Include the Auth_SASL package. If the package is not @@ -405,7 +415,8 @@ class Net_SMTP { $this->_greeting = null; $result = $this->_socket->connect($this->host, $this->port, - $persistent, $timeout); + $persistent, $timeout, + $this->_socket_options); if (PEAR::isError($result)) { return PEAR::raiseError('Failed to connect socket: ' . $result->getMessage()); @@ -417,8 +428,10 @@ class Net_SMTP * timeout values for the initial connection (our $timeout parameter) * and all other socket operations. */ - if (PEAR::isError($error = $this->setTimeout($this->_timeout))) { - return $error; + if ($this->_timeout > 0) { + if (PEAR::isError($error = $this->setTimeout($this->_timeout))) { + return $error; + } } if (PEAR::isError($error = $this->_parseResponse(220))) { |
