summaryrefslogtreecommitdiffstats
path: root/src/callbacks.c
diff options
context:
space:
mode:
authormilo <milo@r0ot.me>2010-09-29 16:58:48 +0200
committerAris Adamantiadis <aris@0xbadc0de.be>2010-10-02 22:51:14 +0200
commitc4356531f78fdcf2f3b6a9861f6129eac81990f8 (patch)
treeb9250f0a5fff64564f1f859be7d6b8a30f2ca769 /src/callbacks.c
parent873e02fc6a0de3792a2a0a713ef21d4b67c308d2 (diff)
downloadlibssh-c4356531f78fdcf2f3b6a9861f6129eac81990f8.tar.gz
libssh-c4356531f78fdcf2f3b6a9861f6129eac81990f8.tar.xz
libssh-c4356531f78fdcf2f3b6a9861f6129eac81990f8.zip
Add new callbacks in session and channels
Diffstat (limited to 'src/callbacks.c')
-rw-r--r--src/callbacks.c18
1 files changed, 18 insertions, 0 deletions
diff --git a/src/callbacks.c b/src/callbacks.c
index 1568d51..bb42b4b 100644
--- a/src/callbacks.c
+++ b/src/callbacks.c
@@ -41,3 +41,21 @@ int ssh_set_callbacks(ssh_session session, ssh_callbacks cb) {
leave_function();
return 0;
}
+
+int ssh_set_channel_callbacks(ssh_channel channel, ssh_channel_callbacks cb) {
+ ssh_session session = NULL;
+ if (channel == NULL || cb == NULL) {
+ return SSH_ERROR;
+ }
+ session = channel->session;
+ enter_function();
+ if(cb->size <= 0 || cb->size > 1024 * sizeof(void *)){
+ ssh_set_error(session,SSH_FATAL,
+ "Invalid channel callback passed in (badly initialized)");
+ leave_function();
+ return SSH_ERROR;
+ }
+ channel->callbacks = cb;
+ leave_function();
+ return 0;
+}