diff -urp backup_migrate-dev/includes/destinations.ftp.inc backup_migrate/includes/destinations.ftp.inc --- backup_migrate-dev/includes/destinations.ftp.inc 2009-07-05 23:02:49.000000000 -0500 +++ backup_migrate/includes/destinations.ftp.inc 2009-10-10 19:40:56.000000000 -0500 @@ -66,12 +66,18 @@ class backup_migrate_destination_ftp ext $form = parent::edit_form(); $form['scheme']['#type'] = 'value'; $form['scheme']['#value'] = 'ftp'; + $form['port'] = array( + "#type" => "textfield", + "#title" => t("Port"), + "#default_value" => @$this->dest_url['port'] ? $this->dest_url['port'] : '21', + "#weight" => 15, + ); return $form; } function ftp_object() { if (!$this->ftp) { - $this->ftp = drupal_ftp_ftp_object($this->dest_url['host'], $this->dest_url['user'], $this->dest_url['pass'], $this->dest_url['path']); + $this->ftp = drupal_ftp_ftp_object($this->dest_url['host'], $this->dest_url['port'], $this->dest_url['user'], $this->dest_url['pass'], $this->dest_url['path']); } return $this->ftp; } @@ -89,10 +95,11 @@ define('DRUPAL_FTP_FT_FILE', 1); /** * creates a new ftp object. if any elements of ftp_map are missing, they'll be filled with the server defaults. */ -function drupal_ftp_ftp_object($server, $user, $pass, $dir) { +function drupal_ftp_ftp_object($server, $port, $user, $pass, $dir) { $ftp = new stdClass(); $ftp->__server = $server; + $ftp->__port = $port; $ftp->__user = $user; $ftp->__password = $pass; $ftp->__directory = $dir; @@ -112,7 +119,7 @@ function drupal_ftp_connect(&$ftp) { if (!$ftp->__conn && !drupal_ftp_connected($ftp)) { // Attempt to connect to the remote server - $ftp->__conn = @ftp_connect($ftp->__server); + $ftp->__conn = @ftp_connect($ftp->__server, $ftp->__port); if (!$ftp->__conn) { _backup_migrate_message('FTP Error: Couldn\'t connect to server @server', array('@server' => $ftp->__server), 'error'); diff -urp backup_migrate-dev/includes/destinations.inc backup_migrate/includes/destinations.inc --- backup_migrate-dev/includes/destinations.inc 2009-08-22 14:58:13.000000000 -0500 +++ backup_migrate/includes/destinations.inc 2009-10-10 19:42:14.000000000 -0500 @@ -903,6 +903,7 @@ class backup_migrate_destination_remote $out .= ($parts['user'] && $parts['pass']) ? ":". urlencode($parts['pass']) : ''; $out .= ($parts['user'] || $parts['pass']) ? "@" : ""; $out .= $parts['host']; + $out .= $parts['port'] ? ':' .$parts['port'] : ''; $out .= "/". $parts['path']; return $out; } @@ -930,30 +931,35 @@ class backup_migrate_destination_remote "#default_value" => @$this->dest_url['scheme'] ? $this->dest_url['scheme'] : 'mysql', "#required" => TRUE, "#options" => array($GLOBALS['db_type'] => $GLOBALS['db_type']), + "#weight" => 0, ); $form['host'] = array( "#type" => "textfield", "#title" => t("Host"), "#default_value" => @$this->dest_url['host'] ? $this->dest_url['host'] : 'localhost', "#required" => TRUE, + "#weight" => 10, ); $form['path'] = array( "#type" => "textfield", "#title" => t("Path"), "#default_value" => @$this->dest_url['path'], "#required" => TRUE, + "#weight" => 20, ); $form['user'] = array( "#type" => "textfield", "#title" => t("Username"), "#default_value" => @$this->dest_url['user'], "#required" => TRUE, + "#weight" => 30, ); $form['pass'] = array( "#type" => "password", "#title" => t("Password"), "#default_value" => @$this->dest_url['pass'], '#description' => '', + "#weight" => 40, ); if (@$this->dest_url['pass']) { $form['old_password'] = array(