Add constants for ftp connections timeouts, props dd32, see #10522
git-svn-id: https://develop.svn.wordpress.org/trunk@11823 602fd350-edb4-49c9-b593-d223f7449a82
This commit is contained in:
parent
5e8dbc10cd
commit
10cd9df0ae
@ -16,7 +16,6 @@
|
|||||||
*/
|
*/
|
||||||
class WP_Filesystem_FTPext extends WP_Filesystem_Base {
|
class WP_Filesystem_FTPext extends WP_Filesystem_Base {
|
||||||
var $link;
|
var $link;
|
||||||
var $timeout = 5;
|
|
||||||
var $errors = null;
|
var $errors = null;
|
||||||
var $options = array();
|
var $options = array();
|
||||||
|
|
||||||
@ -33,6 +32,11 @@ class WP_Filesystem_FTPext extends WP_Filesystem_Base {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Set defaults:
|
// Set defaults:
|
||||||
|
//This Class uses the timeout on a per-connection basis, Others use it on a per-action basis.
|
||||||
|
|
||||||
|
if ( ! defined('FS_TIMEOUT') )
|
||||||
|
define('FS_TIMEOUT', 240);
|
||||||
|
|
||||||
if ( empty($opt['port']) )
|
if ( empty($opt['port']) )
|
||||||
$this->options['port'] = 21;
|
$this->options['port'] = 21;
|
||||||
else
|
else
|
||||||
@ -64,9 +68,9 @@ class WP_Filesystem_FTPext extends WP_Filesystem_Base {
|
|||||||
|
|
||||||
function connect() {
|
function connect() {
|
||||||
if ( isset($this->options['ssl']) && $this->options['ssl'] && function_exists('ftp_ssl_connect') )
|
if ( isset($this->options['ssl']) && $this->options['ssl'] && function_exists('ftp_ssl_connect') )
|
||||||
$this->link = @ftp_ssl_connect($this->options['hostname'], $this->options['port'], $this->timeout);
|
$this->link = @ftp_ssl_connect($this->options['hostname'], $this->options['port'], FS_CONNECT_TIMEOUT);
|
||||||
else
|
else
|
||||||
$this->link = @ftp_connect($this->options['hostname'], $this->options['port'], $this->timeout);
|
$this->link = @ftp_connect($this->options['hostname'], $this->options['port'], FS_CONNECT_TIMEOUT);
|
||||||
|
|
||||||
if ( ! $this->link ) {
|
if ( ! $this->link ) {
|
||||||
$this->errors->add('connect', sprintf(__('Failed to connect to FTP Server %1$s:%2$s'), $this->options['hostname'], $this->options['port']));
|
$this->errors->add('connect', sprintf(__('Failed to connect to FTP Server %1$s:%2$s'), $this->options['hostname'], $this->options['port']));
|
||||||
@ -80,6 +84,8 @@ class WP_Filesystem_FTPext extends WP_Filesystem_Base {
|
|||||||
|
|
||||||
//Set the Connection to use Passive FTP
|
//Set the Connection to use Passive FTP
|
||||||
@ftp_pasv( $this->link, true );
|
@ftp_pasv( $this->link, true );
|
||||||
|
if ( @ftp_get_option($this->link, FTP_TIMEOUT_SEC) < FTP_TIMEOUT )
|
||||||
|
@ftp_set_option($this->link, FTP_TIMEOUT_SEC, FTP_TIMEOUT);
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
@ -16,7 +16,6 @@
|
|||||||
*/
|
*/
|
||||||
class WP_Filesystem_ftpsockets extends WP_Filesystem_Base {
|
class WP_Filesystem_ftpsockets extends WP_Filesystem_Base {
|
||||||
var $ftp = false;
|
var $ftp = false;
|
||||||
var $timeout = 5;
|
|
||||||
var $errors = null;
|
var $errors = null;
|
||||||
var $options = array();
|
var $options = array();
|
||||||
|
|
||||||
@ -61,12 +60,13 @@ class WP_Filesystem_ftpsockets extends WP_Filesystem_Base {
|
|||||||
if ( ! $this->ftp )
|
if ( ! $this->ftp )
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
//$this->ftp->Verbose = true;
|
$this->ftp->setTimeout(FS_CONNECT_TIMEOUT);
|
||||||
|
|
||||||
if ( ! $this->ftp->SetServer($this->options['hostname'], $this->options['port']) ) {
|
if ( ! $this->ftp->SetServer($this->options['hostname'], $this->options['port']) ) {
|
||||||
$this->errors->add('connect', sprintf(__('Failed to connect to FTP Server %1$s:%2$s'), $this->options['hostname'], $this->options['port']));
|
$this->errors->add('connect', sprintf(__('Failed to connect to FTP Server %1$s:%2$s'), $this->options['hostname'], $this->options['port']));
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
if ( ! $this->ftp->connect() ) {
|
if ( ! $this->ftp->connect() ) {
|
||||||
$this->errors->add('connect', sprintf(__('Failed to connect to FTP Server %1$s:%2$s'), $this->options['hostname'], $this->options['port']));
|
$this->errors->add('connect', sprintf(__('Failed to connect to FTP Server %1$s:%2$s'), $this->options['hostname'], $this->options['port']));
|
||||||
return false;
|
return false;
|
||||||
@ -79,6 +79,7 @@ class WP_Filesystem_ftpsockets extends WP_Filesystem_Base {
|
|||||||
|
|
||||||
$this->ftp->SetType(FTP_AUTOASCII);
|
$this->ftp->SetType(FTP_AUTOASCII);
|
||||||
$this->ftp->Passive(true);
|
$this->ftp->Passive(true);
|
||||||
|
$this->ftp->setTimeout(FS_TIMEOUT);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -45,14 +45,6 @@ class WP_Filesystem_SSH2 extends WP_Filesystem_Base {
|
|||||||
var $link = false;
|
var $link = false;
|
||||||
var $sftp_link = false;
|
var $sftp_link = false;
|
||||||
var $keys = false;
|
var $keys = false;
|
||||||
/*
|
|
||||||
* This is the timeout value for ssh results.
|
|
||||||
* Slower servers might need this incressed, but this number otherwise should not change.
|
|
||||||
*
|
|
||||||
* @parm $timeout int
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
var $timeout = 15;
|
|
||||||
var $errors = array();
|
var $errors = array();
|
||||||
var $options = array();
|
var $options = array();
|
||||||
|
|
||||||
@ -148,7 +140,7 @@ class WP_Filesystem_SSH2 extends WP_Filesystem_Base {
|
|||||||
$this->errors->add('command', sprintf(__('Unable to perform command: %s'), $command));
|
$this->errors->add('command', sprintf(__('Unable to perform command: %s'), $command));
|
||||||
} else {
|
} else {
|
||||||
stream_set_blocking( $stream, true );
|
stream_set_blocking( $stream, true );
|
||||||
stream_set_timeout( $stream, $this->timeout );
|
stream_set_timeout( $stream, FS_TIMEOUT );
|
||||||
$data = stream_get_contents( $stream );
|
$data = stream_get_contents( $stream );
|
||||||
fclose( $stream );
|
fclose( $stream );
|
||||||
|
|
||||||
|
@ -605,6 +605,12 @@ function WP_Filesystem( $args = false, $context = false ) {
|
|||||||
|
|
||||||
$wp_filesystem = new $method($args);
|
$wp_filesystem = new $method($args);
|
||||||
|
|
||||||
|
//Define the timeouts for the connections. Only available after the construct is called to allow for per-transport overriding of the default.
|
||||||
|
if ( ! defined('FS_CONNECT_TIMEOUT') )
|
||||||
|
define('FS_CONNECT_TIMEOUT', 30);
|
||||||
|
if ( ! defined('FS_TIMEOUT') )
|
||||||
|
define('FS_TIMEOUT', 30);
|
||||||
|
|
||||||
if ( is_wp_error($wp_filesystem->errors) && $wp_filesystem->errors->get_error_code() )
|
if ( is_wp_error($wp_filesystem->errors) && $wp_filesystem->errors->get_error_code() )
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user