Merge remote branch 'xrdp-org/master'

ulab-next
Jay Sorg 12 years ago
commit 5223d1078f

@ -1,5 +1,21 @@
EXTRA_DIST = d3des.h arch.h os_calls.h list.h file.h parse.h defines.h file_loc.h log.h os_calls.h ssl_calls.h thread_calls.h trans.h xrdp_constants.h
EXTRA_DIST = \
arch.h \
d3des.h \
defines.h \
file.h \
file_loc.h \
list.h \
log.h \
os_calls.h \
os_calls.h \
parse.h \
rail.h \
ssl_calls.h \
thread_calls.h \
trans.h \
xrdp_client_info.h \
xrdp_constants.h \
xrdp_rail.h
AM_CFLAGS = \
-DXRDP_CFG_PATH=\"${sysconfdir}/xrdp\" \

@ -1,14 +1,17 @@
EXTRA_DIST = sesman.ini.5 xrdp.ini.5 xrdp.8 xrdp-sesman.8 xrdp-sesrun.8
xrdpman5dir=$(mandir)/man5
xrdpman5_DATA = \
man_MANS = \
xrdp-dis.1 \
sesman.ini.5 \
xrdp.ini.5
xrdpman8dir=$(mandir)/man8
xrdpman8_DATA = \
xrdp.ini.5 \
xrdp.8 \
xrdp-chansrv.8 \
xrdp-genkeymap.8 \
xrdp-keygen.8 \
xrdp-sesadmin.8 \
xrdp-sesman.8 \
xrdp-sesrun.8
xrdp-sesrun.8 \
xrdp-sessvc.8
noinst_man_MANS = \
xrdp-xcon.8
EXTRA_DIST = $(man_MANS) $(noinst_man_MANS)

@ -1,10 +1,9 @@
.\"
.TH "sesman.ini" "5" "0.1.0" "xrdp team" ""
.SH "NAME"
.LP
\fBsesman.ini\fR \- Configuration file for \fBsesman\fR(8)
.SH "DESCRIPTION"
.LP
This is the man page for \fBsesman.ini\fR, \fBsesman\fR(8) configuration file.
It is composed by a number of sections, each one composed by a section name, enclosed by square brackets, folowed by a list of \fI<parameter>\fR=\fI<value>\fR lines.
@ -29,49 +28,38 @@ All options and values (except for file names and paths) are case insensitive, a
For any of the following parameter, if it's specified more than one time the last entry encountered will be used.
\fBNOTE\fR: if any of these options is specified outside its section, it will be \fIignored\fR.
.SH "GLOBALS"
.LP
.TP
.SH "GLOBALS"
The options to be specified in the \fB[globals]\fR section are the following:
.br
.TP
\fBListenAddress\fR=\fIip address\fR
Specifies sesman listening address. Default is 0.0.0.0 (all interfaces)
.br
.TP
\fBListenPort\fR=\fIport number\fR
Specifies sesman listening port. Default is 3350
.br
.TP
\fBEnableUserWindowManager\fR=\fI[0|1]\fR
If set to \fB1\fR, \fBtrue\fR or \fByes\fR this option enables user specific window manager, that is, anyone can define it's own script executed by sesman when starting a new session, specified by \fBUserWindowManager\fR
.br
.TP
\fBUserWindowManager\fR=\fIstartwm.sh\fR
This option specifies the script run by sesman when starting a session and per\-user window manager is enabled.
.br
The path is relative to user's HOME directory
.br
.TP
\fBDefaultWindowManager\fR=\fI${SESMAN_BIN_DIR}/startwm.sh\fR
This contains full path to the default window manager startup script used by sesman to start a session
.SH "LOGGING"
.LP
.TP
.SH "LOGGING"
The following parameters can be used in the \fB[logging]\fR section:
.br
.TP
\fBLogFile\fR=\fI${SESMAN_LOG_DIR}/sesman.log\fR
This options contains the path to logfile. It can be either absolute or relative, and the default is \fI${SESMAN_LOG_DIR}/sesman.log\fR
.br
.TP
\fBLogLevel\fR=\fIlevel\fR
@ -86,41 +74,33 @@ This option can have one of the following values:
\fBINFO\fR or \fB3\fR \- Logs errors, warnings and informational messages
\fBDEBUG\fR or \fB4\fR \- Log everything. If \fBsesman\fR is compiled in debug mode, this options will output many more low\-level message, useful for developers
.br
.TP
\fBEnableSyslog\fR=\fI[0|1]\fR
If set to \fB1\fR, \fBtrue\fR or \fByes\fR this option enables logging to syslog. Otherwise syslog is disabled.
.br
.TP
\fBSyslogLevel\fR=\fIlevel\fR
This option sets the logging level for syslog. It can have the same values of \fBLogLevel\fR. If \fBSyslogLevel\fR is greater than \fBLogLevel\fR, its value is lowered to that of \fBLogLevel\fR.
.SH "SESSIONS"
.LP
.TP
.SH "SESSIONS"
The following parameters can be used in the \fB[Sessions]\fR section:
.br
.TP
\fBX11DisplayOffset\fR=\fI<number>\fR
Specifies the first X display number available for sesman(8). This prevents sesman from interfering with real X11 servers. The default is 10.
.br
Specifies the first X display number available for \fBsesman\fP(8). This prevents sesman from interfering with real X11 servers. The default is 10.
.TP
\fBMaxSessions\fR=\fI<number>\fR
Sets the maximum number of simultaneous session on terminal server.
.br
If unset or set to \fI0\fR, unlimited session are allowed.
.br
.TP
\fBKillDisconnected\fR=\fI[0|1]\fR
If set to \fB1\fR, \fBtrue\fR or \fByes\fR, every session will be killed when the user disconnects.
.br
\fI\-this option is currently ignored!\-\fR
.br
.TP
\fBIdleTimeLimit\fR=\fI<number>\fR
@ -129,7 +109,6 @@ Sets the the time limit before an idle session is disconnected.
If set to \fI0\fR, automatic disconnection is disabled.
.br
\fI\-this option is currently ignored!\-\fR
.br
.TP
\fBDisconnectedTimeLimit\fR=\fI<number>\fR
@ -138,87 +117,67 @@ Sets the the time limit before a disconnected session is killed.
If set to \fI0\fR, automatic killing is disabled.
.br
\fI\-this option is currently ignored!\-\fR
.br
.SH "SECURITY"
.LP
.TP
.SH "SECURITY"
The following parameters can be used in the \fB[Sessions]\fR section:
.br
.TP
\fBAllowRootLogin\fR=\fI[0|1]\fR
If set to \fB1\fR, \fBtrue\fR or \fByes\fR enables root login on the terminal server
.br
.TP
\fBMaxLoginRetry\fR=\fI[0|1]\fR
The number of login attempts that are allowed on terminal server. If set to \fI0\fR, unlimited attempts are allowed. The default value for this field is \fI3\fR.
.br
.TP
\fBTerminalServerUsers\fR=\fItsusers\fR
Only the users belonging to the group \fItsusers\fR are allowed to login on terminal server.
.br
If unset or set to an invalid or non\-existent group, login for all users is enabled.
.br
.TP
\fBTerminalServerAdmins\fR=\fItsadmins\fR
Sets the group which a user shall belong to have session management rights.
.br
\fI\-this option is currently ignored!\-\fR
.br
.SH "EXAMPLES"
.LP
This is an example \fBsesman.ini\fR:
.nf
[Globals]
.br
ListenAddress=127.0.0.1
.br
ListenPort=3350
.br
EnableUserWindowManager=1
.br
UserWindowManager=startwm.sh
.br
DefaultWindowManager=startwm.sh
[Logging]
.br
LogFile=/usr/local/xrdp/sesman.log
.br
LogLevel=DEBUG
.br
EnableSyslog=0
.br
SyslogLevel=DEBUG
[Sessions]
.br
MaxSessions=10
.br
KillDisconnected=0
.br
IdleTimeLimit=0
.br
DisconnectedTimeLimit=0
[Security]
.br
AllowRootLogin=1
.br
MaxLoginRetry=3
.br
TerminalServerUsers=tsusers
.br
TerminalServerAdmins=tsadmins
.fi
.SH "FILES"
.LP
${SESMAN_CFG_DIR}/sesman.ini
.SH "SEE ALSO"
.LP
sesman(8) sesrun(8) xrdp(8) xrdp.ini(5)
.BR sesman (8),
.BR sesrun (8),
.BR xrdp (8),
.BR xrdp.ini (5)
for more info on \fBxrdp\fR see http://xrdp.sf.net

@ -0,0 +1,46 @@
.TH "xrdp\-chansrv" "8" "0.7.0" "xrdp team" ""
.SH "NAME"
\fBxrdp\-chansrv\fR \- \fBxrdp\fR channel server
.SH "SYNTAX"
.B xrdp\-chansrv
.SH "DESCRIPTION"
\fBxrdp\-chansrv\fR is the \fBxrdp\fR(8) channel server, which manages the Remote Desktop Protocol (RDP) sub-channels.
This program is only forked internally by \fBxrdp\-sesman\fP(8).
.br
Currently \fBxrdp\-chansrv\fP knows about the following channels:
.RE 8
.TP
.B cliprdr
Clipboard Redirection
.TP
.B rdpsnd
Remote Desktop Protocol Sound
.TP
.B rdpdr
Remote Desktop Protocol Device Redirection
.TP
.B rail
Remote Applications Integrated Locally
.TP
.B drdynvc
Dynamic Virtual Channel
.RS
.SH FILES
.TP
.I /tmp/.xrdp/xrdp_chansrv_socket_*
UNIX socket used by external programs to implement channels.
.TP
.I /tmp/.xrdp/xrdp_api_*
UNIX socket used by \fBxrdp\-chansrv\fP to communicate with \fBxrdp\-sesman\fP.
.TP
.I $HOME/xrdp-chansrv.log
Log file used by \fBxrdp\-chansrv\fP(8).
.SH "SEE ALSO"
.BR xrdp\-sesman (8),
.BR sesman.ini (5).
for more info on \fBxrdp\fR see http://xrdp.sf.net

@ -0,0 +1,23 @@
.TH "xrdp-dis" "8" "0.7.0" "xrdp team"
.SH NAME
xrdp\-dis \- xrdp disconnect utility
.SH SYNOPSIS
.B xrdp\-dis
.SH DESCRIPTION
.PP
\fBxrdp\-dix\fP is run with no parameters to disconnect your xrdp session.
.SH ENVIRONMENT
.TP
.B DISPLAY
to get the default host and display number.
.SH FILES
.TP
.I /tmp/.xrdp/xrdp_disconnect_display_*
UNIX socket used to communicate with the \fBxrdp\fP(8) session manager.
.SH SEE ALSO
.BR xrdp (1).

@ -0,0 +1,67 @@
.TH "xrdp\-genkeymap" "8" "0.1.0" "xrdp team" ""
.de URL
. \\$2 \(laURL: \\$1 \(ra\\$3
..
.if \n[.g] .mso www.tmac
.SH "NAME"
\fBxrdp\-genkeymap\fR \- key map generator for XRDP
.SH "SYNTAX"
.B xrdp\-genkeymap
.I file
.SH "DESCRIPTION"
\fBxrdp\-genkeymap\fR extracts the key map used by the currently running X session to generated a mapping from Remote Desktop Protocol (RDP) key codes to X keysyms and Unicode code points.
.SH OPTIONS
.TP
.I outfile
The key map information is stored in the file named \fIoutfile\fP.
.SH "FILES"
.TP
.I /etc/xrdp/km-XXXX.ini
Files containing the keyboard mapping for language \fIXXXX\fP, which is a 4 digit hexadecimal number identifying the country and language code.
.RS 8
.TP
.B 0405
cs czech
.TP
.B 0407
de german
.TP
.B 0409
en-us us english
.TP
.B 040c
fr french
.TP
.B 0410
it italy
.TP
.B 0416
br Portuguese (Brazil)
.TP
.B 0419
ru russian
.TP
.B 041d
se swedish
.TP
.B 0809
en-uk uk english
.RE
.SH "AUTHORS"
Jay Sorg <jsorg71@users.sourceforge.net>
.br
Simone Fedele <ilsimo@users.sourceforge.net>
.SH "SEE ALSO"
.BR xrdp (8),
.BR setxkbmap (1),
.BR unicode (7),
.URL "https://github.com/FreeRDP/FreeRDP/wiki/Keyboard" "Description of Keyboard Input mapping" .
for more info on \fBxrdp\fR see http://xrdp.sf.net

@ -0,0 +1,40 @@
.\" Hey, EMACS: -*- nroff -*-
.TH xrdp\-keygen 8 "0.7.0" "xrdp team"
.SH NAME
xrdp\-keygen \- xrdp RSA key generation utility
.SH SYNOPSIS
.B xrdp\-keygen xrdp
< \fIoutfile\fP | \fBauto\fP >
.br
.B xrdp\-keygen test
.SH DESCRIPTION
\fBxrdp\-keygen\fP generates the file
.I /etc/xrdp/rsakeys.ini
which contains the RSA key pair used to perform authentication to
remote clients. The public key is self-signed.
.SH OPTIONS
This program takes one of the following options:
.TP
\fBxrdp\fP \fIoutfile\fP
Generate a new key pair.
The key data is stored in the file named \fIoutfile\fP.
.br
If \fBauto\fP is used as \fIoutfile\fP, the default file \fI/etc/xrdp/rsakeys.ini\fP gets created if it does not yet exists.
.TP
.B test
Generate a test key pair and print information to standard output.
.SH FILES
.TP
.I /etc/xrdp/rsakeys.ini
RSA public and private key pair used to identify this XRDP server.
.SH SEE ALSO
.BR xrdp (8),
.BR xrdp\-sesman (8).
.SH AUTHOR
This manual page was originally written by Vincent Bernat <bernat@luffy.cx>.

@ -0,0 +1,57 @@
.TH "xrdp-sesadmin" "8" "0.7.0" "xrdp team"
.SH NAME
xrdp\-sesadmin \- console XRDP sessions administration tool
.SH SYNOPSIS
.B xrdp\-sesadmin
.RI [ options ]
.BI -c= command
.SH DESCRIPTION
This manual page documents briefly the
.B xrdp\-sesadmin
command.
.PP
\fBxrdp\-sesadmin\fP is a console program to administer running XRDP sessions.
.SH OPTIONS
A summary of options is included below.
.TP
.BI \-u= username
\fIUsername\fP for authentication on the server.
Defaults to \fBroot\fP.
.TP
.BI \-p= password
The \fIpassword\fP to authenticate with.
The default is to ask for the password interactively.
.TP
.BI \-s= server
The host address of the \fIserver\fP to connect to.
Defaults to \fBlocalhost\fP.
.TP
.BI \-i= port
The TCP \fIport\fP number to connect to.
Defaults to \fB3350\fP.
.TP
.BI \-c= command
Specifies the \fIcommand\fP to execute on the server.
Valid commands are:
.RS 4
.TP
.B list
List currently active sessions.
.TP
.BI kill: sid
Kills the session specified the given \fIsession id\fP.
(not yet implemented).
.RE
.SH FILES
xrdp\-sesadmin.log
.SH SEE ALSO
.BR xrdp (8).

@ -1,28 +1,28 @@
.TH "sesman" "8" "0.1.0" "xrdp team" ""
.TH "xrdp\-sesman" "8" "0.1.0" "xrdp team" ""
.SH "NAME"
.LP
\fBsesman\fR \- \fBxrdp\fR(8) session manager
xrdp\-sesman \- \fBxrdp\fR(8) session manager
.SH "SYNTAX"
.LP
sesman [ \-\-nodaemon | \-\-kill | \-\-help ]
.B xrdp\-sesman
.RB [ \-\-nodaemon | \-\-kill | \-\-help ]
.SH "DESCRIPTION"
.LP
\fBsesman\fR is \fBxrdp\fR(8) session manager.
\fBxrdp\-sesman\fR is \fBxrdp\fR(8) session manager.
.br
It manages user sessions by authenticating the user and starting the appropriate Xserver
.SH "OPTIONS"
.LP
.TP
\fB\-n\fR, \fB\-\-nodaemon\fR
Starts \fBsesman\fR in foreground instead of starting it as a daemon.
Starts \fBxrdp\-sesman\fR in foreground instead of starting it as a daemon.
.TP
\fB\-k\fR, \fB\-\-kill\fR
Kills running \fBsesman\fR daemon.
Kills running \fBxrdp\-sesman\fR daemon.
.TP
\fB\-h\fR, \fB\-\-help\fR
Output help information and exit.
.SH "FILES"
.LP
${SESMAN_BIN_DIR}/sesman
.br
${SESMAN_BIN_DIR}/sesrun
@ -32,13 +32,16 @@ ${SESMAN_CFG_DIR}/sesman.ini
${SESMAN_LOG_DIR}/sesman.log
.br
${SESMAN_PID_DIR}/sesman.pid
.SH "AUTHORS"
.LP
Jay Sorg <jsorg71@users.sourceforge.net>
.br
Simone Fedele <ilsimo@users.sourceforge.net>
.SH "SEE ALSO"
.LP
sesman.ini(5) sesrun(8) xrdp(8) xrdp.ini(5)
.BR sesman.ini (5),
.BR xrdp\-sesrun (8),
.BR xrdp (8),
.BR xrdp.ini (5)
for more info on \fBxrdp\fR see http://xrdp.sf.net

@ -1,47 +1,50 @@
.TH "sesrun" "8" "0.1.0" "xrdp team" ""
.TH "xrdp\-sesrun" "8" "0.7.0" "xrdp team" ""
.SH "NAME"
.LP
\fBsesrun\fR \- \fBsesman\fR(8) session launcher
xrdp\-sesrun \- \fBsesman\fR(8) session launcher
.SH "SYNTAX"
.LP
sesrun <server> <username> <password> <width> <height> <bpp>
.B xrdp\-sesrun
.I server username password width height bpp
.SH "DESCRIPTION"
.LP
\fBsesrun\fR starts a session using \fBsesman\fR(8).
\fBxrdp\-sesrun\fR starts a session using \fBxrdp\-sesman\fR(8).
.br
This is a tool useful for testing, it simply behaves like xrdp when some user logs in a new session and authenticates, thus starting a new session.
.SH "OPTIONS"
.LP
.TP
<server>
.I server
Server on which sesman is running
.TP
<username>
.I username
user name of the session being started
.TP
<password>
.I password
user password
.TP
<width>
.I width
Screen width
.TP
<height>
.I height
Screen height
.TP
<bpp>
.I bpp
Session color depth
.SH "FILES"
.LP
${SESMAN_BIN_DIR}/sesman
.br
${SESMAN_BIN_DIR}/sesrun
.SH "AUTHORS"
.LP
Jay Sorg <jsorg71@users.sourceforge.net>
.br
Simone Fedele <ilsimo@users.sourceforge.net>
.SH "SEE ALSO"
.LP
sesman(8) sesman.ini(5) xrdp(8) xrdp.ini(5)
.BR xrdp\-sesman (8),
.BR sesman.ini (5),
.BR xrdp (8),
.BR xrdp.ini (5)
for more info on \fBxrdp\fR see http://xrdp.sf.net

@ -0,0 +1,26 @@
.TH "xrdp\-sessvc" "8" "0.7.0" "xrdp team" ""
.SH "NAME"
xrdp\-sessvc \- \fBxrdp\fR session supervisor
.SH "SYNTAX"
.B xrdp\-sessman
.I x_pid wm_pid
.SH "DESCRIPTION"
\fBxrdp\-sessvc\fR is the \fBxrdp\fR(8) session supervisor, which monitors the running X server and Windows Manager.
As soon as one of them quits, the other process is terminated as well.
.br
This program is only executed internally by \fBxrdp\-sesman\fP(8).
.SH "OPTIONS"
.TP
.I x_pid
The process ID of the forked X server to monitor.
.TP
.I wm_pid
The process ID of the forked Window Manager to monitor.
.SH "SEE ALSO"
.BR xrdp\-sesrun (8).
for more info on \fBxrdp\fR see http://xrdp.sf.net

@ -0,0 +1,14 @@
.TH "xrdp-xcon" "8" "0.7.0" "xrdp team"
.SH NAME
xrdp\-xcon \- X11 event loop debugging helper for XRDP
.SH SYNOPSIS
.B xrdp\-xcon
.SH DESCRIPTION
.PP
\fBxrdp\-xcon\fP is a X application, which just opens a connection to the X server and polls for events.
It's pretty useless.
.SH SEE ALSO
.BR xev (1).

@ -1,19 +1,18 @@
.TH "xrdp" "8" "0.1.0" "xrdp team" ""
.SH "NAME"
.LP
\fBxrdp\fR \- a Remote Desktop Protocol (RDP) server
.SH "SYNTAX"
.LP
xrdp [ \-\-nodaemon | \-\-kill | \-\-help ]
.SH "DESCRIPTION"
.LP
\fBxrdp\fR is a Remote Desktop Protocol (RDP) Server.
.br
Unlike Windows NT/2000/2003 server, \fBxrdp\fR will not display a Windows desktop but an X window desktop to the user.
It can also be used as a VNC\->RDP bridge.
.SH "OPTIONS"
.LP
.TP
\fB\-n\fR, \fB\-\-nodaemon\fR
Starts \fBxrdp\fR in foreground instead of starting it as a daemon.
@ -23,8 +22,8 @@ Kills running \fBxrdp\fR daemon.
.TP
\fB\-h\fR, \fB\-\-help\fR
Output help information and exit.
.SH "FILES"
.LP
${XRDP_BIN_DIR}/xrdp
.br
${XRDP_CFG_DIR}/xrdp.ini
@ -32,13 +31,16 @@ ${XRDP_CFG_DIR}/xrdp.ini
${XRDP_LOG_DIR}/xrdp.log
.br
${XRDP_PID_DIR}/xrdp.pid
.SH "AUTHORS"
.LP
Jay Sorg <jsorg71@users.sourceforge.net>
.br
Simone Fedele <ilsimo@users.sourceforge.net>
.SH "SEE ALSO"
.LP
xrdp.ini(5) sesman(8) sesman.ini(5) sesrun(8)
.BR xrdp.ini (5),
.BR sesman (8),
.BR sesman.ini (5),
.BR sesrun (8)
for more info on \fBxrdp\fR see http://xrdp.sf.net

@ -1,99 +1,240 @@
.\"
.TH "xrdp.ini" "5" "0.1.0" "xrdp team" ""
.TH "xrdp.ini" "5" "0.7.0" "xrdp team" ""
.SH "NAME"
.LP
\fBxrdp.ini\fR \- Configuration file for \fBxrdp\fR(8)
.SH "DESCRIPTION"
.LP
This is the man page for \fBxrdp.ini\fR, \fBxrdp\fR(8) configuration file.
It is composed by a number of sections, each one composed by a section name, enclosed by square brackets, folowed by a list of \fI<parameter>\fR=\fI<value>\fR lines.
It is composed by a number of sections, each one composed by a section name, enclosed by square brackets, followed by a list of \fI<parameter>\fR=\fI<value>\fR lines.
\fBxrdp.ini\fR supports the following sections:
\fBxrdp.ini\fR is contains a \fB[Globals]\fR section, which sets some global configuration settings for \fBxrdp\fR(8), and one or more "connection" sections which contain the info on which services \fBxrdp\fR(8) can connect to.
.TP
\fB[Globals]\fP \- sets some global configuration settings for \fBxrdp\fR(8).
.TP
\fB[Logging]\fP \- logging subsystem parameters
.TP
\fB[Channels]\fP \- channel subsystem parameters
.TP
\fI[Connection]\fP \- contain the info on which services \fBxrdp\fR(8) can connect to.
.LP
All options and values (except for file names and paths) are case insensitive, and are described in detail below.
.SH "GLOBALS"
.LP
The options to be specified in the \fB[Globals]\fR section are the following:
.TP
The options to be specified in the \fB[Globals]\fR section are the following:
.br
\fBaddress\fP=\fIip address\fP
Specifies xrdp listening address. Default is 0.0.0.0 (all interfaces)
.TP
\fBautorun\fP=\fIsession_name\fP
Automatically run the connection specified by \fIsession_name\fP, which must match a section as described below.
By default a drop-down list with all available connections is shown.
A connection can also be chosen by the connecting client by setting the \fBLOGIN DOMAIN\fP to a valid \fIsession name\fP.
.TP
\fBbitmap_cache\fR=\fI[0|1]\fR
If set to \fB1\fR, \fBtrue\fR or \fByes\fR this option enables bitmap caching in \fBxrdp\fR(8)
.br
If set to \fB1\fR, \fBtrue\fR or \fByes\fR this option enables bitmap caching in \fBxrdp\fR(8).
.TP
\fBbitmap_compression\fR=\fI[0|1]\fR
If set to \fB1\fR, \fBtrue\fR or \fByes\fR this option enables bitmap compression in \fBxrdp\fR(8)
.SH "CONNECTIONS"
.LP
If set to \fB1\fR, \fBtrue\fR or \fByes\fR this option enables bitmap compression in \fBxrdp\fR(8).
.TP
\fBbulk_compression\fP=\fI[0|1]\fP
If set to \fB1\fR, \fBtrue\fR or \fByes\fR this option enables compression of bulk data in \fBxrdp\fR(8).
.TP
\fBchannel_code\fP=\fI[0|1]\fP
If set to \fB0\fR, \fBfalse\fR or \fBno\fR this option disables all channels \fBxrdp\fR(8).
See section \fBCHANNELS\fP below for more fine grained options.
.TP
A connection section is made of a section name, enclosed in square brackets, and the following entries:
\fBcrypt_level\fP=\fIlow|medium|high\fP
.\" <http://blogs.msdn.com/b/openspecification/archive/2011/12/08/encryption-negotiation-in-rdp-connection.aspx>
RDP connection are controlled by two encryption settings: \fIEncryption Level\fP and \fIEncryption Method\fP.
The only supported \fIEncryption Method\fP is \fB40BIT_ENCRYPTION\fP, \fB128BIT_ENCRYPTION\fP and \fB56BIT_ENCRYPTION\fP are currently not supported.
This option controls the \fIEncryption Level\fP:
.RS 8
.TP
.B low
All data sent from the client to the server is protected by encryption based on the maximum key strength supported by the client.
.I This is the only level that the traffic sent by the server to client is not encrypted.
.TP
.B medium
All data sent between the client and the server is protected by encryption based on the maximum key strength supported by the client.
.TP
.B high
All data sent between the client and server is protected by encryption based on the server's maximum key strength.
.RE
.TP
\fBfork\fP=\fI[0|1]\fP
If set to \fB1\fR, \fBtrue\fR or \fByes\fR for each incoming connection \fBxrdp\fR(8) forks a sub-process instead of using threads.
.TP
\fBhidelogwindow\fP=\fI[0|1]\fP
If set to \fB1\fP, \fBtrue\fP or \fByes\fP, \fBxrdp\fP will not show a window for log messages.
.TP
\fBmax_bpp\fP=\fI[8|15|16|24]\fP
Limit the color depth by specifying the maximum number of bits per pixel.
.TP
\fBport\fP=\fIport\fP
Specify TCP port to listen on for incoming connections.
The default for RDP is \fB3389\fP.
.TP
\fBtcp_keepalive\fP=\fI[yes|no]\fP
Regulate if the listening socket uses socket option \fBSO_KEEPALIVE\fP.
If set to \fB1\fP, \fBtrue\fP or \fByes\fP and the network connection disappears without closing messages, the connection will be closed.
.TP
\fBtcp_nodelay\fP=\fI[yes|no]\fP
Regulate if the listening socket uses socket option \fBTCP_NODELAY\fP.
If set to \fB1\fP, \fBtrue\fP or \fByes\fP, no buffering will be performed in the TCP stack.
.TP
\fBblack\fP=\fI000000\fP
.TP
\fBgrey\fP=\fIc0c0c0\fP
.TP
\fBdark_grey\fP=\fI808080\fP
.TP
\fBblue\fP=\fI0000ff\fP
.TP
\fBdark_blue\fP=\fI00007f\fP
.TP
\fBwhite\fP=\fIffffff\fP
.TP
\fBred\fP=\fIff0000\fP
.TP
\fBgreen\fP=\fI00ff00\fP
.TP
\fBbackground\fP=\fI000000\fP
These options override the colors used internally by \fBxrdp\fP(8) to draw the login and log windows.
Colors are defined using a hexadecimal (hex) notation for the combination of Red, Green, and Blue color values (RGB).
The lowest value that can be given to one of the light sources is 0 (hex 00).
The highest value is 255 (hex FF).
.SH "LOGGING"
The following parameters can be used in the \fB[logging]\fR section:
.TP
\fBLogFile\fR=\fI${SESMAN_LOG_DIR}/sesman.log\fR
This options contains the path to logfile. It can be either absolute or relative, and the default is \fI${SESMAN_LOG_DIR}/sesman.log\fR
.TP
\fBLogLevel\fR=\fIlevel\fR
This option can have one of the following values:
\fBCORE\fR or \fB0\fR \- Log only core messages. these messages are _always_ logged, regardless the logging level selected.
\fBERROR\fR or \fB1\fR \- Log only error messages
\fBWARNING\fR, \fBWARN\fR or \fB2\fR \- Logs warnings and error messages
\fBINFO\fR or \fB3\fR \- Logs errors, warnings and informational messages
\fBDEBUG\fR or \fB4\fR \- Log everything. If \fBsesman\fR is compiled in debug mode, this options will output many more low\-level message, useful for developers
.TP
\fBEnableSyslog\fR=\fI[0|1]\fR
If set to \fB1\fR, \fBtrue\fR or \fByes\fR this option enables logging to syslog. Otherwise syslog is disabled.
.TP
\fBSyslogLevel\fR=\fIlevel\fR
This option sets the logging level for syslog. It can have the same values of \fBLogLevel\fR. If \fBSyslogLevel\fR is greater than \fBLogLevel\fR, its value is lowered to that of \fBLogLevel\fR.
.SH "CHANNELS"
The Remote Desktop Protocol supports several channels, which are used to transfer additional data like sound, clipboard data and others.
Channel names not listed here will be blocked by \fBxrdp\fP.
Not all channels are supported in all cases, so setting a value to \fItrue\fP is a pre-requisite, but does not force it's use.
.br
Channels can also be enabled or disabled on a per connection basis by prefixing each setting with \fBchannel.\fP in the channel section.
.TP
\fBrdpdr\fP=\fI[0|1]\fP
If set to \fB1\fR, \fBtrue\fR or \fByes\fR using the RDP channel for device re-direction is allowed.
.TP
\fBrdpsnd\fP=\fI[0|1]\fP
If set to \fB1\fR, \fBtrue\fR or \fByes\fR using the RDP channel for sound is allowed.
.TP
\fBdrdynvc\fP=\fI[0|1]\fP
If set to \fB1\fR, \fBtrue\fR or \fByes\fR using the RDP channel to initiate additional dynamic virtual channels is allowed.
.TP
\fBcliprdr\fP=\fI[0|1]\fP
If set to \fB1\fR, \fBtrue\fR or \fByes\fR using the RDP channel for clipboard re-direction is allowed.
.TP
\fBrail\fP=\fI[0|1]\fP
If set to \fB1\fR, \fBtrue\fR or \fByes\fR using the RDP channel for remote applications integrated locally (RAIL) is allowed.
.TP
\fBxrdpvr\fP=\fI[0|1]\fP
If set to \fB1\fR, \fBtrue\fR or \fByes\fR using the RDP channel for XRDP Video streaming is allowed.
.SH "CONNECTIONS"
A connection section is made of a section name, enclosed in square brackets, and the following entries:
.TP
\fBname\fR=\fI<session name>\fR
The name displayed in \fBxrdp\fR(8) login window's combo box.
.br
.TP
\fBlib\fR=\fI../vnc/libvnc.so\fR
Sets the library to be used with this connection.
.br
.TP
\fBusername\fR=\fI<username>\fR|\fIask\fR
Specifies the username used for authenticating in the connection.
If set to \fIask\fR, user name should be provided in the login window.
.br
.TP
\fBpassword\fR=\fI<password>\fR|\fIask\fR
Specifies the password used for authenticating in the connection.
If set to \fIask\fR, password should be provided in the login window.
.br
.TP
\fBip\fR=\fI127.0.0.1\fR
Specifies the ip address of the host to connect to.
.br
.TP
\fBport\fR=\fI<number>\fR|\fI\-1\fR
Specifies the port number to connect to. If set to \fI\-1\fR, the default port for the specified library is used.
.SH "EXAMPLES"
.LP
This is an example \fBxrdp.ini\fR:
.nf
[Globals]
.br
bitmap_cache=yes
.br
bitmap_compression=yes
[vnc1]
.br
name=sesman
.br
lib=../vnc/libvnc.so
.br
username=ask
.br
password=ask
.br
ip=127.0.0.1
.br
port=\-1
.fi
.SH "FILES"
.LP
${XRDP_CFG_DIR}/xrdp.ini
.SH "SEE ALSO"
.LP
xrdp(8) sesman(8) sesrun(8) sesman.ini(5)
.BR xrdp (8),
.BR sesman (8),
.BR sesrun (8),
.BR sesman.ini (5)
for more info on \fBxrdp\fR see http://xrdp.sf.net

@ -5,12 +5,18 @@ Q. What is RDP?
A. RDP stands for Remote Desktop Protocol. Its the protocol used by Windows
terminal servers to talk to the terminal server clients.
Q. What is xrdp?
A. xrdp, usually spell lower case, is as open source implementation of the RDP
protocol.
Q. I can't get it to compile in Ubuntu. What can I do?
A. See faq-compile.txt.
Q. Can I use LDAP?
A. Yes, xrdp uses PAM and thus can be configured to use LDAP for authentication.

@ -1,4 +1,14 @@
EXTRA_DIST = chansrv.h clipboard.h devredir.h sound.h
EXTRA_DIST = \
chansrv.h \
chansrv_fuse.h \
clipboard.h \
clipboard_common.h \
clipboard_file.h \
devredir.h \
drdynvc.h \
rail.h \
sound.h \
xcommon.h
EXTRA_DEFINES =
EXTRA_INCLUDES =

@ -1,25 +1,101 @@
#!/bin/sh
if [ -r /etc/default/locale ]; then
. /etc/default/locale
export LANG LANGUAGE
fi
# debian
if [ -r /etc/X11/Xsession ]; then
. /etc/X11/Xsession
exit 0
fi
# el
if [ -r /etc/X11/xinit/Xsession ]; then
. /etc/X11/xinit/Xsession
exit 0
fi
# suse
if [ -r /etc/X11/xdm/Xsession ]; then
. /etc/X11/xdm/Xsession
exit 0
fi
xterm
#start the window manager
wm_start()
{
if [ -r /etc/default/locale ]; then
. /etc/default/locale
export LANG LANGUAGE
fi
# debian
if [ -r /etc/X11/Xsession ]; then
. /etc/X11/Xsession
exit 0
fi
# el
if [ -r /etc/X11/xinit/Xsession ]; then
. /etc/X11/xinit/Xsession
exit 0
fi
# suse
if [ -r /etc/X11/xdm/Xsession ]; then
. /etc/X11/xdm/Xsession
exit 0
fi
xterm
}
#Execution sequence for interactive login shell
#Following pseudo code explains the sequence of execution of these files.
#execute /etc/profile
#IF ~/.bash_profile exists THEN
# execute ~/.bash_profile
#ELSE
# IF ~/.bash_login exist THEN
# execute ~/.bash_login
# ELSE
# IF ~/.profile exist THEN
# execute ~/.profile
# END IF
# END IF
#END IF
pre_start()
{
if [ -f /etc/profile ]
then
. /etc/profile
fi
if [ -f ~/.bash_profile ]
then
. ~/.bash_profile
else
if [ -f ~/.bash_login ]
then
. ~/.bash_login
else
if [ -f ~/.profile ]
then
. ~/.profile
fi
fi
fi
return 0
}
#When you logout of the interactive shell, following is the
#sequence of execution:
#IF ~/.bash_logout exists THEN
# execute ~/.bash_logout
#END IF
post_start()
{
if [ -f ~/.bash_logout ]
then
. ~/.bash_logout
fi
return 0
}
#. /etc/environment
#export PATH=$PATH
#export LANG=$LANG
# change PATH to be what your environment needs usually what is in
# /etc/environment
#PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games"
#export PATH=$PATH
# for PATH and LANG from /etc/environment
# pam will auto process the environment file if /etc/pam.d/xrdp-sesman
# includes
# auth required pam_env.so readenv=1
pre_start
wm_start
post_start
exit 1

@ -13,9 +13,11 @@ INCLUDES = \
bin_PROGRAMS = \
xrdp-sesrun \
xrdp-sestest \
xrdp-sesadmin \
xrdp-dis \
xrdp-dis
noinst_PROGRAMS = \
xrdp-sestest \
xrdp-xcon
xrdp_sesrun_SOURCES = \

@ -25,14 +25,13 @@
download_file()
{
local file url status
file=$1
# if we already have the file, don't download it
if [ -r downloads/$file ]; then
return 0
fi
cd downloads
if [ -r downloads/$file ]; then
return 0
fi
echo "downloading file $file"
@ -142,6 +141,7 @@ download_file()
remove_modules()
{
local mod_file mod_dir mod_args
if [ -d cookies ]; then
rm cookies/*
fi
@ -153,21 +153,17 @@ remove_modules()
exit 0
fi
cd build_dir
while read line
while IFS=: read mod_file mod_dir mod_args
do
mod_dir=`echo $line | cut -d':' -f2`
if [ -d $mod_dir ]; then
rm -rf $mod_dir
if [ -d build_dir/$mod_dir ]; then
rm -rf build_dir/$mod_dir
fi
done < ../$data_file
cd ..
}
extract_it()
{
local mod_file mod_name mod_args comp
mod_file=$1
mod_name=$2
mod_args=$3
@ -177,8 +173,8 @@ extract_it()
fi
# download file
download_file $mod_file
if [ $? -ne 0 ]; then
if ! download_file $mod_file
then
echo ""
echo "failed to download $mod_file - aborting build"
echo ""
@ -189,13 +185,15 @@ extract_it()
# if pkg has not yet been extracted, do so now
if [ ! -d $mod_name ]; then
echo $mod_file | grep -q tar.bz2
if [ $? -eq 0 ]; then
tar xjf ../downloads/$mod_file > /dev/null 2>&1
else
tar xzf ../downloads/$mod_file > /dev/null 2>&1
fi
if [ $? -ne 0 ]; then
case "$mod_file" in
*.tar.bz2) comp=j ;;
*.tar.gz) comp=z ;;
*.tar.xz) comp=J ;;
*.tar) comp= ;;
*) echo "unknown compressed module $mod_name" ; exit 1 ;;
esac
if ! tar x${comp}f ../downloads/$mod_file > /dev/null
then
echo "error extracting module $mod_name"
exit 1
fi
@ -205,13 +203,13 @@ extract_it()
cd $mod_name
# check for patches
if [ -e ../../$mod_name.patch ]; then
patch -p1 < ../../$mod_name.patch
patch -p1 < ../../$mod_name.patch
fi
# now configure
echo "executing ./configure --prefix=$PREFIX_DIR $mod_args"
./configure --prefix=$PREFIX_DIR $mod_args
if [ $? -ne 0 ]; then
echo "configuration failed for module $mn"
if ! ./configure --prefix=$PREFIX_DIR $mod_args
then
echo "configuration failed for module $mod_name"
exit 1
fi
@ -222,6 +220,7 @@ extract_it()
make_it()
{
local mod_file mod_name mod_args
mod_file=$1
mod_name=$2
mod_args=$3
@ -238,8 +237,8 @@ make_it()
echo "*** processing module $mod_name ($count of $num_modules) ***"
echo ""
extract_it $mod_file $mod_name "$mod_args"
if [ $? -ne 0 ]; then
if ! extract_it $mod_file $mod_name "$mod_args"
then
echo ""
echo "extract failed for module $mod_name"
echo ""
@ -248,8 +247,8 @@ make_it()
# make module
if [ ! -e cookies/$mod_name.made ]; then
(cd build_dir/$mod_name ; make)
if [ $? -ne 0 ]; then
if ! make -C build_dir/$mod_name
then
echo ""
echo "make failed for module $mod_name"
echo ""
@ -259,8 +258,8 @@ make_it()
fi
# install module
(cd build_dir/$mod_name ; make install)
if [ $? -ne 0 ]; then
if ! make -C build_dir/$mod_name install
then
echo ""
echo "make install failed for module $mod_name"
echo ""
@ -270,9 +269,9 @@ make_it()
# special case after installing python make this sym link
# so Mesa builds using this python version
case "$mod_name" in
*Python-2*)
(cd build_dir/$mod_name ; ln -s python $PREFIX_DIR/bin/python2)
;;
*Python-2*)
ln -s python build_dir/$mod_name/$PREFIX_DIR/bin/python2
;;
esac
touch cookies/$mod_name.installed
@ -316,9 +315,9 @@ else
fi
if ! test -d $PREFIX_DIR; then
echo "dir does not exit, creating [$PREFIX_DIR]"
mkdir $PREFIX_DIR
if ! test $? -eq 0; then
echo "dir does not exist, creating [$PREFIX_DIR]"
if ! mkdir $PREFIX_DIR
then
echo "mkdir failed [$PREFIX_DIR]"
exit 0
fi
@ -333,8 +332,8 @@ export CFLAGS="-I$PREFIX_DIR/include -fPIC -O2"
# prefix dir must exist...
if [ ! -d $PREFIX_DIR ]; then
mkdir -p $PREFIX_DIR
if [ $? -ne 0 ]; then
if ! mkdir -p $PREFIX_DIR
then
echo "$PREFIX_DIR does not exist; failed to create it - cannot continue"
exit 1
fi
@ -348,8 +347,8 @@ fi
# create a downloads dir
if [ ! -d downloads ]; then
mkdir downloads
if [ $? -ne 0 ]; then
if ! mkdir downloads
then
echo "error creating downloads directory"
exit 1
fi
@ -357,8 +356,8 @@ fi
# this is where we do the actual build
if [ ! -d build_dir ]; then
mkdir build_dir
if [ $? -ne 0 ]; then
if ! mkdir build_dir
then
echo "error creating build_dir directory"
exit 1
fi
@ -366,22 +365,18 @@ fi
# this is where we store cookie files
if [ ! -d cookies ]; then
mkdir cookies
if [ $? -ne 0 ]; then
if ! mkdir cookies
then
echo "error creating cookies directory"
exit 1
fi
fi
while read line
while IFS=: read mod_file mod_dir mod_args
do
mod_file=`echo $line | cut -d':' -f1`
mod_dir=`echo $line | cut -d':' -f2`
mod_args=`echo $line | cut -d':' -f3`
mod_args=`eval echo $mod_args`
make_it $mod_file $mod_dir "$mod_args"
done < $data_file
echo "build for X OK"
@ -389,9 +384,8 @@ echo "build for X OK"
X11RDPBASE=$PREFIX_DIR
export X11RDPBASE
cd rdp
make
if [ $? -ne 0 ]; then
if ! make -C rdp
then
echo "error building rdp"
exit 1
fi
@ -401,10 +395,10 @@ strip X11rdp
cp X11rdp $X11RDPBASE/bin
if [ "$2" = "drop" ]; then
echo ""
echo "dropping you in dir, type exit to get out"
bash
exit 1
echo ""
echo "dropping you in dir, type exit to get out"
bash
exit 1
fi
echo "All done"

@ -1,7 +1,7 @@
/**
* xrdp: A Remote Desktop Protocol server.
*
* Copyright (C) Jay Sorg 2004-2012
* Copyright (C) Jay Sorg 2004-2013
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.

@ -1,7 +1,7 @@
/**
* xrdp: A Remote Desktop Protocol server.
*
* Copyright (C) Jay Sorg 2004-2012
* Copyright (C) Jay Sorg 2004-2013
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@ -71,9 +71,9 @@ get_key_info_from_scan_code(int device_flags, int scan_code, int *keys,
int ext;
int index;
ext = device_flags &KBD_FLAG_EXT; /* 0x0100 */
ext = device_flags & KBD_FLAG_EXT; /* 0x0100 */
shift = keys[42] || keys[54];
altgr = keys[56] &KBD_FLAG_EXT; /* right alt */
altgr = keys[56] & KBD_FLAG_EXT; /* right alt */
rv = 0;
scan_code = scan_code & 0x7f;
index = ext ? g_map[scan_code].code2 : g_map[scan_code].code1;

@ -1,7 +1,7 @@
/**
* xrdp: A Remote Desktop Protocol server.
*
* Copyright (C) Jay Sorg 2004-2012
* Copyright (C) Jay Sorg 2004-2013
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@ -306,9 +306,9 @@ main(int argc, char **argv)
g_init("xrdp");
ssl_init();
for (test=0;test<argc; test++)
for (test = 0; test < argc; test++)
{
DEBUG(("Argument %i - %s",test,argv[test]));
DEBUG(("Argument %i - %s", test, argv[test]));
}
/* check compiled endian with actual endian */
@ -435,7 +435,7 @@ main(int argc, char **argv)
{
g_writeln("");
g_writeln("xrdp: A Remote Desktop Protocol server.");
g_writeln("Copyright (C) Jay Sorg 2004-2011");
g_writeln("Copyright (C) Jay Sorg 2004-2013");
g_writeln("See http://xrdp.sourceforge.net for more information.");
g_writeln("");
g_writeln("Usage: xrdp [options]");
@ -453,7 +453,7 @@ main(int argc, char **argv)
{
g_writeln("");
g_writeln("xrdp: A Remote Desktop Protocol server.");
g_writeln("Copyright (C) Jay Sorg 2004-2011");
g_writeln("Copyright (C) Jay Sorg 2004-2013");
g_writeln("See http://xrdp.sourceforge.net for more information.");
g_writeln("Version %s", PACKAGE_VERSION);
g_writeln("");

@ -1,7 +1,7 @@
/**
* xrdp: A Remote Desktop Protocol server.
*
* Copyright (C) Jay Sorg 2004-2012
* Copyright (C) Jay Sorg 2004-2013
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.

@ -36,7 +36,7 @@ SyslogLevel=DEBUG
# LogLevel and SysLogLevel could by any of: core, error, warning, info or debug
[channels]
# Channel names not listed here will be blocket by XRDP.
# Channel names not listed here will be blocked by XRDP.
# You can block any channel by setting its value to false.
# IMPORTANT! All channels are not supported in all use
# cases even if you set all values to true.

@ -1,7 +1,7 @@
/**
* xrdp: A Remote Desktop Protocol server.
*
* Copyright (C) Jay Sorg 2004-2012
* Copyright (C) Jay Sorg 2004-2013
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.

@ -1,7 +1,7 @@
/**
* xrdp: A Remote Desktop Protocol server.
*
* Copyright (C) Jay Sorg 2004-2012
* Copyright (C) Jay Sorg 2004-2013
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.

@ -1,7 +1,7 @@
/**
* xrdp: A Remote Desktop Protocol server.
*
* Copyright (C) Jay Sorg 2004-2012
* Copyright (C) Jay Sorg 2004-2013
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.

@ -1,7 +1,7 @@
/**
* xrdp: A Remote Desktop Protocol server.
*
* Copyright (C) Jay Sorg 2004-2012
* Copyright (C) Jay Sorg 2004-2013
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.

@ -1,7 +1,7 @@
/**
* xrdp: A Remote Desktop Protocol server.
*
* Copyright (C) Jay Sorg 2004-2012
* Copyright (C) Jay Sorg 2004-2013
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.

@ -1,7 +1,7 @@
/**
* xrdp: A Remote Desktop Protocol server.
*
* Copyright (C) Jay Sorg 2004-2012
* Copyright (C) Jay Sorg 2004-2013
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.

@ -1,7 +1,7 @@
/**
* xrdp: A Remote Desktop Protocol server.
*
* Copyright (C) Jay Sorg 2004-2012
* Copyright (C) Jay Sorg 2004-2013
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.

@ -1,7 +1,7 @@
/**
* xrdp: A Remote Desktop Protocol server.
*
* Copyright (C) Jay Sorg 2004-2012
* Copyright (C) Jay Sorg 2004-2013
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.

@ -573,7 +573,7 @@ xrdp_wm_init(struct xrdp_wm *self)
q = (char *)list_get_item(names, index);
if ((g_strncasecmp("globals", q, 8) != 0) &&
(g_strncasecmp("Logging", q, 8) != 0) &&
(g_strncasecmp("channels", q, 8) != 0))
(g_strncasecmp("channels", q, 9) != 0))
{
g_strncpy(section_name, q, 255);
break;

@ -1,7 +1,7 @@
/**
* xrdp: A Remote Desktop Protocol server.
*
* Copyright (C) Jay Sorg 2004-2012
* Copyright (C) Jay Sorg 2004-2013
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.

Loading…
Cancel
Save