diff options
author | Jay Sorg <jay.sorg@gmail.com> | 2014-03-10 22:54:28 -0700 |
---|---|---|
committer | Jay Sorg <jay.sorg@gmail.com> | 2014-03-10 22:54:28 -0700 |
commit | 630f735a28eca8c6cd4b64ac7e38abe6634a0698 (patch) | |
tree | 421ca2e7e2af7b2499ac6d0bdc6ec7c68378e43a /libxrdp/xrdp_caps.c | |
parent | 6f63f93890c3d16b1a6016cc5097853f4158e968 (diff) | |
download | xrdp-proprietary-630f735a28eca8c6cd4b64ac7e38abe6634a0698.tar.gz xrdp-proprietary-630f735a28eca8c6cd4b64ac7e38abe6634a0698.zip |
libxrdp: send, get, and use multi fragment max caps
Diffstat (limited to 'libxrdp/xrdp_caps.c')
-rw-r--r-- | libxrdp/xrdp_caps.c | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/libxrdp/xrdp_caps.c b/libxrdp/xrdp_caps.c index b882de56..d9e39c71 100644 --- a/libxrdp/xrdp_caps.c +++ b/libxrdp/xrdp_caps.c @@ -455,6 +455,10 @@ static int APP_CC xrdp_caps_process_multifragmetupdate(struct xrdp_rdp *self, struct stream *s, int len) { + int MaxRequestSize; + + in_uint32_le(s, MaxRequestSize); + self->client_info.max_fastpath_frag_bytes = MaxRequestSize; return 0; } @@ -821,6 +825,14 @@ xrdp_caps_send_demand_active(struct xrdp_rdp *self) out_uint16_le(s, 5); out_uint8(s, 0); /* client sets */ + if (self->client_info.use_fast_path & 1) /* fastpath output on */ + { + caps_count++; + out_uint16_le(s, 0x001A); /* 26 CAPSETTYPE_MULTIFRAGMENTUPDATE */ + out_uint16_le(s, 8); + out_uint32_le(s, 3 * 1024 * 1024); /* 3MB */ + } + out_uint8s(s, 4); /* pad */ s_mark_end(s); |