summaryrefslogtreecommitdiffstats
path: root/xrdp/xrdp_mm.c
diff options
context:
space:
mode:
authorIdan Freiberg <speidy@gmail.com>2016-12-18 02:48:16 -0500
committerGitHub <noreply@github.com>2016-12-18 02:48:16 -0500
commit637624995304b59e42655ee1b1c92654181c93a3 (patch)
treef1f857467d2d675de22283b8d7f71f3ca5a6ba5e /xrdp/xrdp_mm.c
parentcaf5f5d9f7150198e617c1a22524eff581f771a9 (diff)
parent0c6b5111af5ccf7f4b6d3bae4fca39f65401b011 (diff)
downloadxrdp-proprietary-637624995304b59e42655ee1b1c92654181c93a3.tar.gz
xrdp-proprietary-637624995304b59e42655ee1b1c92654181c93a3.zip
Merge pull request #554 from proski/xorg24bpp
Regression fix: session matching uses wrong bpp for Xorg
Diffstat (limited to 'xrdp/xrdp_mm.c')
-rw-r--r--xrdp/xrdp_mm.c17
1 files changed, 11 insertions, 6 deletions
diff --git a/xrdp/xrdp_mm.c b/xrdp/xrdp_mm.c
index 07c69327..bb6bc5d8 100644
--- a/xrdp/xrdp_mm.c
+++ b/xrdp/xrdp_mm.c
@@ -229,14 +229,19 @@ xrdp_mm_send_login(struct xrdp_mm *self)
out_uint16_be(s, self->wm->screen->width);
out_uint16_be(s, self->wm->screen->height);
- if (xserverbpp > 0)
+ /* select and send X server bpp */
+ if (xserverbpp == 0)
{
- out_uint16_be(s, xserverbpp);
- }
- else
- {
- out_uint16_be(s, self->wm->screen->bpp);
+ if (self->code == 20)
+ {
+ xserverbpp = 24; /* xorgxrdp is always at 24 bpp */
+ }
+ else
+ {
+ xserverbpp = self->wm->screen->bpp; /* use client's bpp */
+ }
}
+ out_uint16_be(s, xserverbpp);
/* send domain */
if(self->wm->client_info->domain[0]!='_')