Unify monitor processing logic.
There are two places where monitor descriptions are passed through the RDP protocol: - TS_UD_CS_MONITOR ([MS-RDPBCGR] 2.2.1.3.6 Client Monitor Data) - DISPLAYCONTROL_PDU_TYPE_MONITOR_LAYOUT ([MS-RDPEDISP] 2.2.2.2) The processing logic for both of them is similar enough that they should be unified. Also update to define the constants for the maximum and minimum desktop width/height for monitors and total area. Also a large number of clarifications for the constants and protocol requirements. Note that this is also the first step to making resizing work with the extension GFX channel as well as an important foundational step to enable HiDPI compatibility. Also some misc logging updates.
This commit is contained in:
@@ -359,6 +359,16 @@ int
|
||||
xrdp_mcs_disconnect(struct xrdp_mcs *self);
|
||||
|
||||
/* xrdp_sec.c */
|
||||
|
||||
/*
|
||||
These are return values for xrdp_sec_process_mcs_data_monitors
|
||||
to clarify any reason for a non-zero response code.
|
||||
*/
|
||||
#define SEC_PROCESS_MONITORS_ERR 1
|
||||
#define SEC_PROCESS_MONITORS_ERR_TOO_MANY_MONITORS 2
|
||||
#define SEC_PROCESS_MONITORS_ERR_INVALID_DESKTOP 3
|
||||
#define SEC_PROCESS_MONITORS_ERR_INVALID_MONITOR 4
|
||||
|
||||
struct xrdp_sec *
|
||||
xrdp_sec_create(struct xrdp_rdp *owner, struct trans *trans);
|
||||
void
|
||||
@@ -383,6 +393,8 @@ int
|
||||
xrdp_sec_incoming(struct xrdp_sec *self);
|
||||
int
|
||||
xrdp_sec_disconnect(struct xrdp_sec *self);
|
||||
int
|
||||
xrdp_sec_process_mcs_data_monitors(struct xrdp_sec *self, struct stream *s);
|
||||
|
||||
/* xrdp_rdp.c */
|
||||
struct xrdp_rdp *
|
||||
|
||||
Reference in New Issue
Block a user