Index: ./modules/system/system.api.php
===================================================================
RCS file: /cvs/drupal/drupal/modules/system/system.api.php,v
retrieving revision 1.146
diff -u -p -r1.146 system.api.php
--- ./modules/system/system.api.php	26 Mar 2010 17:14:45 -0000	1.146
+++ ./modules/system/system.api.php	27 Mar 2010 04:58:17 -0000
@@ -3230,6 +3230,49 @@ function hook_countries_alter(&$countrie
   // Quebec has seceded from Canada. Add to country list.
   $countries['QC'] = 'Quebec';
 }
+
+/**
+ * Provide information on file transfer backends available to update manager.
+ *
+ * @return
+ *   An associative array of information about the file transfer mechanism
+ *   being provided. This array can contain the following keys.
+ *   - title: Title of this backend to be shown to the end user.
+ *   - class: The name of the PHP class which implements this backend.
+ *   - settings_form: An optional callback function that provides additional
+ *     configuration information required by this backend (for instance a port
+ *     number.)
+ *   - weight: Controls what order the backends are presented to the user.
+ *
+ * @see authorize.php
+ * @see FileTransfer
+ */
+function hook_filetransfer_backends() {
+  $backends = array();
+
+  // This is the default, will be available on most systems.
+  if (function_exists('ftp_connect')) {
+    $backends['ftp'] = array(
+      'title' => t('FTP'),
+      'class' => 'FileTransferFTP',
+      'settings_form' => 'system_filetransfer_backend_form_ftp',
+      'weight' => 0,
+    );
+  }
+
+  // SSH2 lib connection is only available if the proper PHP extension is
+  // installed.
+  if (function_exists('ssh2_connect')) {
+    $backends['ssh'] = array(
+      'title' => t('SSH'),
+      'class' => 'FileTransferSSH',
+      'settings_form' => 'system_filetransfer_backend_form_ssh',
+      'weight' => 20,
+    );
+  }
+  return $backends;
+}
+
 /**
  * @} End of "addtogroup hooks".
  */
