WP_Filesystem_SSH2::__construct() – Constructor.

You appear to be a bot. Output may be restricted

Description

Constructor.

Usage

WP_Filesystem_SSH2::__construct( $opt );

Parameters

$opt
( array ) optional

Returns

void

Source

File name: wordpress/wp-admin/includes/class-wp-filesystem-ssh2.php
Lines:

1 to 48 of 48
  public function __construct( $opt = '' ) {
    $this->method = 'ssh2';
    $this->errors = new WP_Error();

    // Check if possible to use ssh2 functions.
    if ( ! extension_loaded( 'ssh2' ) ) {
      $this->errors->add( 'no_ssh2_ext', __( 'The ssh2 PHP extension is not available' ) );
      return;
    }

    // Set defaults:
    if ( empty( $opt['port'] ) ) {
      $this->options['port'] = 22;
    } else {
      $this->options['port'] = $opt['port'];
    }

    if ( empty( $opt['hostname'] ) ) {
      $this->errors->add( 'empty_hostname', __( 'SSH2 hostname is required' ) );
    } else {
      $this->options['hostname'] = $opt['hostname'];
    }

    // Check if the options provided are OK.
    if ( ! empty( $opt['public_key'] ) && ! empty( $opt['private_key'] ) ) {
      $this->options['public_key']  = $opt['public_key'];
      $this->options['private_key'] = $opt['private_key'];

      $this->options['hostkey'] = array( 'hostkey' => 'ssh-rsa,ssh-ed25519' );

      $this->keys = true;
    } elseif ( empty( $opt['username'] ) ) {
      $this->errors->add( 'empty_username', __( 'SSH2 username is required' ) );
    }

    if ( ! empty( $opt['username'] ) ) {
      $this->options['username'] = $opt['username'];
    }

    if ( empty( $opt['password'] ) ) {
      // Password can be blank if we are using keys.
      if ( ! $this->keys ) {
        $this->errors->add( 'empty_password', __( 'SSH2 password is required' ) );
      }
    } else {
      $this->options['password'] = $opt['password'];
    }
  }
 

 View on GitHub View on Trac