drdynvc: Improve dynamic channel support
The dynamic channel handler in xrdp_channel.c is updated to allow the procs `data_first` pointer to be NULL. If this is done, the channel handler performs all the dechunking necessary for the channel, and only complete data PDUs are passed to procs 'data' callback. This facility is applied to the dynamic channels supported by xrdp_mm.c. The incoming callbacks for these channels now provide complete support for the specification in [MS-RDPEDYC]. The existing channels were incomplete in these respects: 1) The "Microsoft::Windows::RDS::Graphics" channel handler did not support incoming PDUs between 1591 and 1600 bytes. The specification calls for these to be sent as a single DATA_FIRST PDU. 2) The "Microsoft::Windows::RDS::DisplayControl" channel handler did not support incoming PDUs over 1590 bytes.
This commit is contained in:
@@ -87,6 +87,9 @@
|
||||
#define XRDP_MAX_BITMAP_CACHE_IDX 2000
|
||||
#define XRDP_BITMAP_CACHE_ENTRIES 2048
|
||||
|
||||
/* Max number of dynamic channels we support */
|
||||
#define DRDYNVC_CHANNEL_COUNT 256
|
||||
|
||||
/*
|
||||
* Constants come from ITU-T Recommendations
|
||||
*/
|
||||
|
||||
Reference in New Issue
Block a user