summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Makefile.am1
-rw-r--r--configure.ac2
-rw-r--r--docs/man/sesman.ini.510
-rw-r--r--docs/man/xrdp.ini.55
-rw-r--r--xrdp/xrdp_mm.c17
5 files changed, 20 insertions, 15 deletions
diff --git a/Makefile.am b/Makefile.am
index 8b7580bd..4b12bd57 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -23,6 +23,7 @@ RFXCODECDIR =
endif
SUBDIRS = \
+ libpainter \
common \
vnc \
rdp \
diff --git a/configure.ac b/configure.ac
index 40ed06d1..fea0e4cb 100644
--- a/configure.ac
+++ b/configure.ac
@@ -10,7 +10,7 @@ AC_C_CONST
AC_PROG_LIBTOOL
PKG_PROG_PKG_CONFIG
-AC_CONFIG_SUBDIRS([librfxcodec])
+AC_CONFIG_SUBDIRS([libpainter librfxcodec])
# Use silent rules by default if supported by Automake
m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])])
diff --git a/docs/man/sesman.ini.5 b/docs/man/sesman.ini.5
index af9b35ab..9003f82e 100644
--- a/docs/man/sesman.ini.5
+++ b/docs/man/sesman.ini.5
@@ -196,12 +196,10 @@ Following parameters can be used in the \fB[X11rdp]\fR, \fB[Xvnc]\fR and
\fB[Xorg]\fR sections.
.TP
-\fBparam0\fR=\fIfilename\fR
-Path to the X11 server executable
-
-.TP
-\fBparam\fR\fIN\fR=\fIstring\fR
-Nth command line argument
+\fBparam\fR=\fIstring\fR
+Multiple \fIparam\fR lines are supported. This first line specifies the
+path to the X11 server executable. Following lines specify command line
+arguments passed to the X11 server.
.SH "CHANSRV"
Following parameters can be used in the \fB[Chansrv]\fR section.
diff --git a/docs/man/xrdp.ini.5 b/docs/man/xrdp.ini.5
index 0e13d405..55299d0c 100644
--- a/docs/man/xrdp.ini.5
+++ b/docs/man/xrdp.ini.5
@@ -298,8 +298,9 @@ depth of the client. Only Xvnc and X11rdp use that setting. Xorg runs at
\fI24\fR bpp.
.TP
-\fBcode\fR=\fI<number>\fR|\fI\-1\fR
-Specifies the session type, the default, \fI\0\fR, is Xvnc, \fI\10\fR, is X11rdp, and \fI\20\fR, uses Xorg driver mode.
+\fBcode\fR=\fI<number>\fR|\fI0\fR
+Specifies the session type. The default, \fI0\fR, is Xvnc, \fI10\fR is
+X11rdp, and \fI20\fR is Xorg with xorgxrdp modules.
.SH "EXAMPLES"
This is an example \fBxrdp.ini\fR:
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]!='_')