diff options
author | speidy <speidy@gmail.com> | 2016-12-13 15:05:39 -0500 |
---|---|---|
committer | speidy <speidy@gmail.com> | 2016-12-13 15:05:39 -0500 |
commit | 5e39bb1f87d3d01b360f03cc81f65f03dd3d6e87 (patch) | |
tree | ef2ff0d8b5b13c959658574f4baa5bb2f4ece339 | |
parent | d6a470e9730f56d582243b9585cc51a630467d8d (diff) | |
download | xrdp-proprietary-5e39bb1f87d3d01b360f03cc81f65f03dd3d6e87.tar.gz xrdp-proprietary-5e39bb1f87d3d01b360f03cc81f65f03dd3d6e87.zip |
libxrdp: caps, group caps require fastpath output, use FASTPATH_OUTPUT_SUPPORTED constant
-rw-r--r-- | common/xrdp_constants.h | 3 | ||||
-rw-r--r-- | libxrdp/xrdp_caps.c | 18 |
2 files changed, 11 insertions, 10 deletions
diff --git a/common/xrdp_constants.h b/common/xrdp_constants.h index d5f7a8a8..73fd95d7 100644 --- a/common/xrdp_constants.h +++ b/common/xrdp_constants.h @@ -283,6 +283,9 @@ #define RDP_CAPSET_VIRCHAN 20 #define RDP_CAPLEN_VIRCHAN 0x08 +#define RDP_CAPSET_MULTIFRAGMENT 0x001A +#define RDP_CAPLEN_MULTIFRAGMENT 0x08 + #define RDP_SOURCE "MSTSC" /* Logon flags */ diff --git a/libxrdp/xrdp_caps.c b/libxrdp/xrdp_caps.c index 4db1da5e..9a240d4f 100644 --- a/libxrdp/xrdp_caps.c +++ b/libxrdp/xrdp_caps.c @@ -926,23 +926,21 @@ 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 */ + if (self->client_info.use_fast_path & FASTPATH_OUTPUT_SUPPORTED) /* fastpath output on */ { + /* multifragment update */ caps_count++; out_uint16_le(s, 0x001A); /* 26 CAPSETTYPE_MULTIFRAGMENTUPDATE */ out_uint16_le(s, 8); out_uint32_le(s, 3 * 1024 * 1024); /* 3MB */ - } - /* frame acks */ - caps_count++; - out_uint16_le(s, 0x001E); /* CAPSETTYPE_FRAME_ACKNOWLEDGE */ - out_uint16_le(s, 8); - out_uint32_le(s, 2); /* 2 frames in flight */ + /* frame acks */ + caps_count++; + out_uint16_le(s, 0x001E); /* CAPSETTYPE_FRAME_ACKNOWLEDGE */ + out_uint16_le(s, 8); + out_uint32_le(s, 2); /* 2 frames in flight */ - /* surface commands */ - if (self->client_info.use_fast_path & 1) /* surface commands require fastpath output */ - { + /* surface commands */ caps_count++; out_uint16_le(s, RDP_CAPSET_SURFCMDS); /* CAPSETTYPE_SURFACE_COMMANDS */ out_uint16_le(s, RDP_CAPLEN_SURFCMDS); /* lengthCapability */ |