summaryrefslogtreecommitdiffstats
path: root/libxrdp/xrdp_rdp.c
diff options
context:
space:
mode:
authorjsorg71 <jsorg71>2006-12-28 06:15:13 +0000
committerjsorg71 <jsorg71>2006-12-28 06:15:13 +0000
commit0dc679e2dc3ddf71735585cf53c4b717ab5b11a9 (patch)
treee9598abc49d8e30e8867add6d5e7184fff1cd90e /libxrdp/xrdp_rdp.c
parent1ed935186d183ad01352b8846b762fbb4ee361d8 (diff)
downloadxrdp-proprietary-0dc679e2dc3ddf71735585cf53c4b717ab5b11a9.tar.gz
xrdp-proprietary-0dc679e2dc3ddf71735585cf53c4b717ab5b11a9.zip
added channel support
Diffstat (limited to 'libxrdp/xrdp_rdp.c')
-rw-r--r--libxrdp/xrdp_rdp.c11
1 files changed, 8 insertions, 3 deletions
diff --git a/libxrdp/xrdp_rdp.c b/libxrdp/xrdp_rdp.c
index 45a29d1b..2fa61eb4 100644
--- a/libxrdp/xrdp_rdp.c
+++ b/libxrdp/xrdp_rdp.c
@@ -122,7 +122,8 @@ xrdp_rdp_create(struct xrdp_session* session, int sck)
/* read ini settings */
xrdp_rdp_read_config(&self->client_info);
/* create sec layer */
- self->sec_layer = xrdp_sec_create(self, sck, self->client_info.crypt_level);
+ self->sec_layer = xrdp_sec_create(self, sck, self->client_info.crypt_level,
+ self->client_info.channel_code);
/* default 8 bit v1 color bitmap cache entries and size */
self->client_info.cache1_entries = 600;
self->client_info.cache1_size = 256;
@@ -198,6 +199,10 @@ xrdp_rdp_recv(struct xrdp_rdp* self, struct stream* s, int* code)
}
if (chan != MCS_GLOBAL_CHANNEL && chan > 0)
{
+ if (chan > MCS_GLOBAL_CHANNEL)
+ {
+ xrdp_channel_process(self->sec_layer->chan_layer, s, chan);
+ }
s->next_packet = 0;
*code = 0;
DEBUG(("out xrdp_rdp_recv"));
@@ -237,7 +242,7 @@ xrdp_rdp_send(struct xrdp_rdp* self, struct stream* s, int pdu_type)
out_uint16_le(s, len);
out_uint16_le(s, 0x10 | pdu_type);
out_uint16_le(s, self->mcs_channel);
- if (xrdp_sec_send(self->sec_layer, s) != 0)
+ if (xrdp_sec_send(self->sec_layer, s, MCS_GLOBAL_CHANNEL) != 0)
{
DEBUG(("out xrdp_rdp_send error"));
return 1;
@@ -266,7 +271,7 @@ xrdp_rdp_send_data(struct xrdp_rdp* self, struct stream* s,
out_uint8(s, data_pdu_type);
out_uint8(s, 0);
out_uint16_le(s, 0);
- if (xrdp_sec_send(self->sec_layer, s) != 0)
+ if (xrdp_sec_send(self->sec_layer, s, MCS_GLOBAL_CHANNEL) != 0)
{
DEBUG(("out xrdp_rdp_send_data error"));
return 1;