aboutsummaryrefslogtreecommitdiff
path: root/lib/ssh.c
diff options
context:
space:
mode:
Diffstat (limited to 'lib/ssh.c')
-rw-r--r--lib/ssh.c82
1 files changed, 69 insertions, 13 deletions
diff --git a/lib/ssh.c b/lib/ssh.c
index 9dce09630..9d5e71e1c 100644
--- a/lib/ssh.c
+++ b/lib/ssh.c
@@ -134,6 +134,63 @@ static LIBSSH2_FREE_FUNC(libssh2_free);
static int get_pathname(const char **cpp, char **path);
+static CURLcode Curl_ssh_connect(struct connectdata *conn, bool *done);
+static CURLcode Curl_ssh_multi_statemach(struct connectdata *conn, bool *done);
+
+static CURLcode Curl_scp_do(struct connectdata *conn, bool *done);
+static CURLcode Curl_scp_done(struct connectdata *conn,
+ CURLcode, bool premature);
+static CURLcode Curl_scp_doing(struct connectdata *conn,
+ bool *dophase_done);
+
+static CURLcode Curl_sftp_do(struct connectdata *conn, bool *done);
+static CURLcode Curl_sftp_done(struct connectdata *conn,
+ CURLcode, bool premature);
+static CURLcode Curl_sftp_doing(struct connectdata *conn,
+ bool *dophase_done);
+
+/*
+ * SCP protocol handler.
+ */
+
+const struct Curl_handler Curl_handler_scp = {
+ "SCP", /* scheme */
+ NULL, /* setup_connection */
+ Curl_scp_do, /* do_it */
+ Curl_scp_done, /* done */
+ NULL, /* do_more */
+ Curl_ssh_connect, /* connect_it */
+ Curl_ssh_multi_statemach, /* connecting */
+ Curl_scp_doing, /* doing */
+ NULL, /* proto_getsock */
+ NULL, /* doing_getsock */
+ NULL, /* disconnect */
+ PORT_SSH, /* defport */
+ PROT_SCP /* protocol */
+};
+
+
+/*
+ * SFTP protocol handler.
+ */
+
+const struct Curl_handler Curl_handler_sftp = {
+ "SFTP", /* scheme */
+ NULL, /* setup_connection */
+ Curl_sftp_do, /* do_it */
+ Curl_sftp_done, /* done */
+ NULL, /* do_more */
+ Curl_ssh_connect, /* connect_it */
+ Curl_ssh_multi_statemach, /* connecting */
+ Curl_sftp_doing, /* doing */
+ NULL, /* proto_getsock */
+ NULL, /* doing_getsock */
+ NULL, /* disconnect */
+ PORT_SSH, /* defport */
+ PROT_SFTP /* protocol */
+};
+
+
static void
kbd_callback(const char *name, int name_len, const char *instruction,
int instruction_len, int num_prompts,
@@ -1719,8 +1776,7 @@ static CURLcode ssh_statemach_act(struct connectdata *conn)
}
/* called repeatedly until done from multi.c */
-CURLcode Curl_ssh_multi_statemach(struct connectdata *conn,
- bool *done)
+static CURLcode Curl_ssh_multi_statemach(struct connectdata *conn, bool *done)
{
struct ssh_conn *sshc = &conn->proto.sshc;
CURLcode result = CURLE_OK;
@@ -1783,7 +1839,7 @@ static CURLcode ssh_init(struct connectdata *conn)
* Curl_ssh_connect() gets called from Curl_protocol_connect() to allow us to
* do protocol-specific actions at connect-time.
*/
-CURLcode Curl_ssh_connect(struct connectdata *conn, bool *done)
+static CURLcode Curl_ssh_connect(struct connectdata *conn, bool *done)
{
struct SSHPROTO *ssh;
curl_socket_t sock;
@@ -1878,8 +1934,8 @@ CURLcode scp_perform(struct connectdata *conn,
}
/* called from multi.c while DOing */
-CURLcode Curl_scp_doing(struct connectdata *conn,
- bool *dophase_done)
+static CURLcode Curl_scp_doing(struct connectdata *conn,
+ bool *dophase_done)
{
CURLcode result;
result = Curl_ssh_multi_statemach(conn, dophase_done);
@@ -1891,7 +1947,7 @@ CURLcode Curl_scp_doing(struct connectdata *conn,
}
-CURLcode Curl_scp_do(struct connectdata *conn, bool *done)
+static CURLcode Curl_scp_do(struct connectdata *conn, bool *done)
{
CURLcode res;
bool connected = 0;
@@ -1931,8 +1987,8 @@ CURLcode Curl_scp_do(struct connectdata *conn, bool *done)
return res;
}
-CURLcode Curl_scp_done(struct connectdata *conn, CURLcode status,
- bool premature)
+static CURLcode Curl_scp_done(struct connectdata *conn, CURLcode status,
+ bool premature)
{
CURLcode result = CURLE_OK;
bool done = FALSE;
@@ -2048,8 +2104,8 @@ CURLcode sftp_perform(struct connectdata *conn,
}
/* called from multi.c while DOing */
-CURLcode Curl_sftp_doing(struct connectdata *conn,
- bool *dophase_done)
+static CURLcode Curl_sftp_doing(struct connectdata *conn,
+ bool *dophase_done)
{
CURLcode result;
result = Curl_ssh_multi_statemach(conn, dophase_done);
@@ -2060,7 +2116,7 @@ CURLcode Curl_sftp_doing(struct connectdata *conn,
return result;
}
-CURLcode Curl_sftp_do(struct connectdata *conn, bool *done)
+static CURLcode Curl_sftp_do(struct connectdata *conn, bool *done)
{
CURLcode res;
bool connected = 0;
@@ -2100,8 +2156,8 @@ CURLcode Curl_sftp_do(struct connectdata *conn, bool *done)
return res;
}
-CURLcode Curl_sftp_done(struct connectdata *conn, CURLcode status,
- bool premature)
+static CURLcode Curl_sftp_done(struct connectdata *conn, CURLcode status,
+ bool premature)
{
CURLcode result = CURLE_OK;
bool done = FALSE;