diff options
author | Aris Adamantiadis <aris@0xbadc0de.be> | 2009-08-23 22:43:57 +0200 |
---|---|---|
committer | Aris Adamantiadis <aris@0xbadc0de.be> | 2009-08-23 22:43:57 +0200 |
commit | f9db9c5a9c0e50fe2e50c00ee5ce4173b9bd3408 (patch) | |
tree | 0b8fd7fd42f7e510fa40662cfe8934bb39f93b8d /libssh/scp.c | |
parent | 96bafeca4c5f6d28147e22550f8c6b5c51fb317c (diff) | |
download | libssh-f9db9c5a9c0e50fe2e50c00ee5ce4173b9bd3408.tar.gz libssh-f9db9c5a9c0e50fe2e50c00ee5ce4173b9bd3408.tar.xz libssh-f9db9c5a9c0e50fe2e50c00ee5ce4173b9bd3408.zip |
added ssh_scp_accept_request
Diffstat (limited to 'libssh/scp.c')
-rw-r--r-- | libssh/scp.c | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/libssh/scp.c b/libssh/scp.c index 2a37724c..c3d7e494 100644 --- a/libssh/scp.c +++ b/libssh/scp.c @@ -399,3 +399,27 @@ int ssh_scp_deny_request(ssh_scp scp, const char *reason){ return SSH_OK; } } + +/** + * @brief accepts transfer of a file or creation of a directory + * coming from the remote party + * @returns SSH_OK the message was sent + * @returns SSH_ERROR Error sending the message, or sending it in a bad state + */ +int ssh_scp_accept_request(ssh_scp scp){ + char buffer[]={0x00}; + int err; + if(scp->state != SSH_SCP_READ_REQUESTED){ + ssh_set_error(scp->session,SSH_FATAL,"ssh_scp_deny_request called under invalid state"); + return SSH_ERROR; + } + err=channel_write(scp->channel,buffer,1); + if(err==SSH_ERROR) { + return SSH_ERROR; + } + if(scp->request_type==SSH_SCP_REQUEST_NEWFILE) + scp->state=SSH_SCP_READ_READING; + else + scp->state=SSH_SCP_READ_INITED; + return SSH_OK; +} |