libxrdp: caps, group caps require fastpath output, use FASTPATH_OUTPUT_SUPPORTED constant

master
speidy 8 years ago
parent d6a470e973
commit 5e39bb1f87

@ -283,6 +283,9 @@
#define RDP_CAPSET_VIRCHAN 20 #define RDP_CAPSET_VIRCHAN 20
#define RDP_CAPLEN_VIRCHAN 0x08 #define RDP_CAPLEN_VIRCHAN 0x08
#define RDP_CAPSET_MULTIFRAGMENT 0x001A
#define RDP_CAPLEN_MULTIFRAGMENT 0x08
#define RDP_SOURCE "MSTSC" #define RDP_SOURCE "MSTSC"
/* Logon flags */ /* Logon flags */

@ -926,23 +926,21 @@ xrdp_caps_send_demand_active(struct xrdp_rdp *self)
out_uint16_le(s, 5); out_uint16_le(s, 5);
out_uint8(s, 0); /* client sets */ 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++; caps_count++;
out_uint16_le(s, 0x001A); /* 26 CAPSETTYPE_MULTIFRAGMENTUPDATE */ out_uint16_le(s, 0x001A); /* 26 CAPSETTYPE_MULTIFRAGMENTUPDATE */
out_uint16_le(s, 8); out_uint16_le(s, 8);
out_uint32_le(s, 3 * 1024 * 1024); /* 3MB */ out_uint32_le(s, 3 * 1024 * 1024); /* 3MB */
}
/* frame acks */ /* frame acks */
caps_count++; caps_count++;
out_uint16_le(s, 0x001E); /* CAPSETTYPE_FRAME_ACKNOWLEDGE */ out_uint16_le(s, 0x001E); /* CAPSETTYPE_FRAME_ACKNOWLEDGE */
out_uint16_le(s, 8); out_uint16_le(s, 8);
out_uint32_le(s, 2); /* 2 frames in flight */ out_uint32_le(s, 2); /* 2 frames in flight */
/* surface commands */ /* surface commands */
if (self->client_info.use_fast_path & 1) /* surface commands require fastpath output */
{
caps_count++; caps_count++;
out_uint16_le(s, RDP_CAPSET_SURFCMDS); /* CAPSETTYPE_SURFACE_COMMANDS */ out_uint16_le(s, RDP_CAPSET_SURFCMDS); /* CAPSETTYPE_SURFACE_COMMANDS */
out_uint16_le(s, RDP_CAPLEN_SURFCMDS); /* lengthCapability */ out_uint16_le(s, RDP_CAPLEN_SURFCMDS); /* lengthCapability */

Loading…
Cancel
Save