summaryrefslogtreecommitdiffstats
path: root/src/sftp.c
diff options
context:
space:
mode:
authorAris Adamantiadis <aris@0xbadc0de.be>2013-06-02 18:40:13 +0200
committerAndreas Schneider <asn@cryptomilk.org>2013-07-13 15:01:17 +0200
commit31a129ee9e0626d3230bea46d93bde2e2738119c (patch)
tree0346b0e26898b1a74745f04b62e12fd00a0d1cfe /src/sftp.c
parent7e7910a1ca35c069864bafc200d7ba593a73a1f2 (diff)
downloadlibssh-31a129ee9e0626d3230bea46d93bde2e2738119c.tar.gz
libssh-31a129ee9e0626d3230bea46d93bde2e2738119c.tar.xz
libssh-31a129ee9e0626d3230bea46d93bde2e2738119c.zip
sftp: more flexibility on channels
Reviewed-by: Andreas Schneider <asn@cryptomilk.org>
Diffstat (limited to 'src/sftp.c')
-rw-r--r--src/sftp.c31
1 files changed, 31 insertions, 0 deletions
diff --git a/src/sftp.c b/src/sftp.c
index ee86107b..73b1f301 100644
--- a/src/sftp.c
+++ b/src/sftp.c
@@ -149,6 +149,37 @@ sftp_session sftp_new(ssh_session session){
return sftp;
}
+sftp_session sftp_new_channel(ssh_session session, ssh_channel channel){
+ sftp_session sftp;
+
+ if (session == NULL) {
+ return NULL;
+ }
+ enter_function();
+
+ sftp = malloc(sizeof(struct sftp_session_struct));
+ if (sftp == NULL) {
+ ssh_set_error_oom(session);
+ leave_function();
+ return NULL;
+ }
+ ZERO_STRUCTP(sftp);
+
+ sftp->ext = sftp_ext_new();
+ if (sftp->ext == NULL) {
+ ssh_set_error_oom(session);
+ SAFE_FREE(sftp);
+ leave_function();
+ return NULL;
+ }
+
+ sftp->session = session;
+ sftp->channel = channel;
+
+ leave_function();
+ return sftp;
+}
+
#ifdef WITH_SERVER
sftp_session sftp_server_new(ssh_session session, ssh_channel chan){
sftp_session sftp = NULL;