summaryrefslogtreecommitdiffstats
path: root/src/messages.c
diff options
context:
space:
mode:
authorAris Adamantiadis <aris@0xbadc0de.be>2013-04-02 22:40:33 +0200
committerAndreas Schneider <asn@cryptomilk.org>2013-07-13 14:57:48 +0200
commit7555f3235e183bd07d1841d74b36defd986dcb9f (patch)
treee1e3542f93566d71425afaf43e3ea0fca0c12802 /src/messages.c
parent3e7bd72f76b1b54831b5c1957e3d7d8fafe19663 (diff)
downloadlibssh-7555f3235e183bd07d1841d74b36defd986dcb9f.tar.gz
libssh-7555f3235e183bd07d1841d74b36defd986dcb9f.tar.xz
libssh-7555f3235e183bd07d1841d74b36defd986dcb9f.zip
client: call client callback even in non-server mode
Reviewed-by: Andreas Schneider <asn@cryptomilk.org>
Diffstat (limited to 'src/messages.c')
-rw-r--r--src/messages.c29
1 files changed, 16 insertions, 13 deletions
diff --git a/src/messages.c b/src/messages.c
index bda622f..4e55056 100644
--- a/src/messages.c
+++ b/src/messages.c
@@ -130,19 +130,6 @@ static int ssh_execute_server_callbacks(ssh_session session, ssh_message msg){
ssh_message_reply_default(msg);
}
return SSH_OK;
- } else if (msg->channel_request_open.type == SSH_CHANNEL_X11){
- if(ssh_callbacks_exists(session->common.callbacks, channel_open_request_x11_function)){
- channel = session->common.callbacks->channel_open_request_x11_function (session,
- msg->channel_request_open.originator, msg->channel_request_open.originator_port,
- session->common.callbacks->userdata);
- if(channel != NULL) {
- rc = ssh_message_channel_request_open_reply_accept_channel(msg, channel);
- return SSH_OK;
- } else {
- ssh_message_reply_default(msg);
- }
- return SSH_OK;
- }
}
}
break;
@@ -206,6 +193,22 @@ static int ssh_execute_server_callbacks(ssh_session session, ssh_message msg){
break;
}
}
+ /* This one is in fact a client callback... */
+ if (session->common.callbacks != NULL && msg->type== SSH_REQUEST_CHANNEL_OPEN &&
+ msg->channel_request_open.type == SSH_CHANNEL_X11){
+ if(ssh_callbacks_exists(session->common.callbacks, channel_open_request_x11_function)){
+ channel = session->common.callbacks->channel_open_request_x11_function (session,
+ msg->channel_request_open.originator, msg->channel_request_open.originator_port,
+ session->common.callbacks->userdata);
+ if(channel != NULL) {
+ rc = ssh_message_channel_request_open_reply_accept_channel(msg, channel);
+ return SSH_OK;
+ } else {
+ ssh_message_reply_default(msg);
+ }
+ return SSH_OK;
+ }
+ }
return SSH_AGAIN;
}