diff options
author | Jay Sorg <jay.sorg@gmail.com> | 2011-09-10 21:13:54 -0700 |
---|---|---|
committer | Jay Sorg <jay.sorg@gmail.com> | 2011-09-10 21:13:54 -0700 |
commit | 5972c136bf808c02b8a4d42d9fc77125c53e3421 (patch) | |
tree | 73d4fb8fa632c06ff40f8bc5c7920de2166359c9 /xrdp | |
parent | 12ce9c136fd577023e77e3bd51e6f25a051ca3a1 (diff) | |
download | xrdp-proprietary-5972c136bf808c02b8a4d42d9fc77125c53e3421.tar.gz xrdp-proprietary-5972c136bf808c02b8a4d42d9fc77125c53e3421.zip |
added 15 and 24bpp support and changes for reconnect / resize
Diffstat (limited to 'xrdp')
-rw-r--r-- | xrdp/xrdp.ini | 3 | ||||
-rw-r--r-- | xrdp/xrdp_mm.c | 16 |
2 files changed, 17 insertions, 2 deletions
diff --git a/xrdp/xrdp.ini b/xrdp/xrdp.ini index 645ee024..e8a66c1f 100644 --- a/xrdp/xrdp.ini +++ b/xrdp/xrdp.ini @@ -5,7 +5,7 @@ bitmap_compression=yes port=3389 crypt_level=low channel_code=1 -max_bpp=16 +max_bpp=24 #black=000000 #grey=d6d3ce #dark_grey=808080 @@ -67,3 +67,4 @@ username=ask password=ask ip=127.0.0.1 port=-1 +xserverbpp=24 diff --git a/xrdp/xrdp_mm.c b/xrdp/xrdp_mm.c index cd3c1ebd..abee2c12 100644 --- a/xrdp/xrdp_mm.c +++ b/xrdp/xrdp_mm.c @@ -110,6 +110,7 @@ xrdp_mm_send_login(struct xrdp_mm* self) int rv = 0; int index = 0; int count = 0; + int xserverbpp; char * username = (char *)NULL; char * password = (char *)NULL; char * name = (char *)NULL; @@ -120,6 +121,7 @@ xrdp_mm_send_login(struct xrdp_mm* self) username = 0; password = 0; self->code = 0; + xserverbpp = 0; count = self->login_names->count; for (index = 0; index < count; index++) { @@ -141,6 +143,10 @@ xrdp_mm_send_login(struct xrdp_mm* self) self->code = 10; } } + else if (g_strcasecmp(name, "xserverbpp") == 0) + { + xserverbpp = g_atoi(value); + } } if ((username == 0) || (password == 0)) { @@ -161,7 +167,15 @@ xrdp_mm_send_login(struct xrdp_mm* self) out_uint8a(s, password, index); out_uint16_be(s, self->wm->screen->width); out_uint16_be(s, self->wm->screen->height); - out_uint16_be(s, self->wm->screen->bpp); + + if (xserverbpp > 0) + { + out_uint16_be(s, xserverbpp); + } + else + { + out_uint16_be(s, self->wm->screen->bpp); + } /* send domain */ index = g_strlen(self->wm->client_info->domain); |