summaryrefslogtreecommitdiffstats
path: root/libssh/channels.c
diff options
context:
space:
mode:
Diffstat (limited to 'libssh/channels.c')
-rw-r--r--libssh/channels.c12
1 files changed, 5 insertions, 7 deletions
diff --git a/libssh/channels.c b/libssh/channels.c
index 0108f63..af20bde 100644
--- a/libssh/channels.c
+++ b/libssh/channels.c
@@ -534,7 +534,6 @@ SSH_PACKET_CALLBACK(channel_rcv_request) {
ssh_string request_s;
char *request;
uint32_t status;
- uint32_t startpos = session->in_buffer->pos;
(void)user;
(void)type;
@@ -608,13 +607,12 @@ SSH_PACKET_CALLBACK(channel_rcv_request) {
return SSH_PACKET_USED;
}
- /* TODO call message_handle since it handles channel requests as messages */
- /* *but* reset buffer before !! */
-
- session->in_buffer->pos = startpos;
- message_handle(session, NULL, SSH2_MSG_CHANNEL_REQUEST, session->in_buffer);
+ /* If we are here, that means we have a request that is not in the understood
+ * client requests. That means we need to create a ssh message to be passed
+ * to the user code handling ssh messages
+ */
+ message_handle_channel_request(session,channel,packet,request,status);
- ssh_log(session, SSH_LOG_PACKET, "Unknown request %s", request);
SAFE_FREE(request);
leave_function();