From 451f7a1c0f2eff5cde2ec5bde5d3c61148655b3d Mon Sep 17 00:00:00 2001 From: jsorg71 Date: Sat, 30 Dec 2006 06:16:29 +0000 Subject: channel data go go to the client --- xrdp/xrdp_wm.c | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/xrdp/xrdp_wm.c b/xrdp/xrdp_wm.c index 401a5e4f..7c0c9a57 100644 --- a/xrdp/xrdp_wm.c +++ b/xrdp/xrdp_wm.c @@ -1325,6 +1325,22 @@ xrdp_wm_process_input_mouse(struct xrdp_wm* self, int device_flags, return 0; } +/******************************************************************************/ +static int APP_CC +xrdp_wm_process_channel_data(struct xrdp_wm* self, int channel_id, + char* data, int data_len) +{ + if (self->mod != 0) + { + if (self->mod->mod_event != 0) + { + self->mod->mod_event(self->mod, 0x5555, channel_id, (long)data, + data_len, 0); + } + } + return 0; +} + /******************************************************************************/ /* this is the callbacks comming from libxrdp.so */ int DEFAULT_CC @@ -1361,6 +1377,10 @@ callback(long id, int msg, long param1, long param2, long param3, long param4) MAKERECT(rect, param1, param2, param3, param4); rv = xrdp_bitmap_invalidate(wm->screen, &rect); break; + case 0x5555: /* called from xrdp_channel.c, channel data has come in, + pass it to module if there is one */ + rv = xrdp_wm_process_channel_data(wm, param1, (char*)param2, param3); + break; } return rv; } -- cgit v1.2.1