summaryrefslogtreecommitdiffstats
path: root/xrdp
diff options
context:
space:
mode:
authorJay Sorg <jay.sorg@gmail.com>2011-09-10 21:13:54 -0700
committerJay Sorg <jay.sorg@gmail.com>2011-09-10 21:13:54 -0700
commit5972c136bf808c02b8a4d42d9fc77125c53e3421 (patch)
tree73d4fb8fa632c06ff40f8bc5c7920de2166359c9 /xrdp
parent12ce9c136fd577023e77e3bd51e6f25a051ca3a1 (diff)
downloadxrdp-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.ini3
-rw-r--r--xrdp/xrdp_mm.c16
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);