Move LogFilePath parameter to [ChansrvLogging]

This seems a better fit than having it in the [Chansrv] section.

Also fixed a minor logging error relating to the parameter in
chansrv_config.c

(cherry picked from commit 6d2fd1be8451418f01dfbb203929e2838c1a979f)
This commit is contained in:
matt335672
2024-12-16 10:45:25 +00:00
parent 2f7be3f634
commit 162153ab6f
4 changed files with 69 additions and 31 deletions
+27 -23
View File
@@ -98,7 +98,33 @@ stdout. Use for debugging only\fR
It is ignored in the [ChansrvLogging] section
since the channel server creates one log file per display and instead uses the
following log file naming convention \fIxrdp-chansrv.${DISPLAY}.log\fR
following log file naming convention \fIxrdp-chansrv.${DISPLAY}.log\fR. For
details of the chansrv log file location, see \fBLogFilePath\fR.
.TP
\fBLogFilePath\fR=\fIstring\fR
Directory for storing the chansrv log file. This setting only applies to
chansrv. The sesman log file is always created in \fI@localstatedir@/log\fR.
Created if it doesn't exist.
If first character is not a '/', this is relative to $HOME, where
chansrv is normally started.
.RS
The following substitutions are made in this string:-
%U - Username
%u - Numeric UID
%% - Percent character
This is most useful if you are using NFS-mounted home directories, and
wish to move the chansrv log file to the local disk.
If this parameter isn't specified, the log file is stored in one of
the following locations :-
- $CHANSRV_LOG_PATH
- $XDG_DATA_HOME/xrdp
- $HOME/.local/share/xrdp
.RE
.TP
\fBLogLevel\fR=\fIlevel\fR
@@ -409,28 +435,6 @@ Sets the duration(msec). Sound data is not send to client during \fInumber\fR
millisecond(s) after close message is sent, when AAC/MP3 is selected.
If set to 0, all the data is sent. If not specified, defaults to \fI1000\fR.
.TP
\fBLogFilePath\fR=\fIstring\fR
Directory for storing the chansrv log file
Created if it doesn't exist.
If first character is not a '/', this is relative to $HOME.
.P
.RS
The following substitutions are made in this string:-
%U - Username
%u - Numeric UID
%% - Percent character
.P
This is most useful if you are using NFS-mounted home directories, and
wish to move the chansrv log file to the local disk.
If this isn't specified, the log file is stored in one of the following
locations :-
- $CHANSRV_LOG_PATH
- $XDG_DATA_HOME/xrdp
- $HOME/.local/share/xrdp
.RE
.SH "SESSIONS VARIABLES"
All entries in the \fB[SessionVariables]\fR section are set as
environment variables in the user's session.
+36 -2
View File
@@ -244,7 +244,35 @@ read_config_chansrv(log_func_t logmsg,
{
cfg->msec_do_not_send = strtoul(value, NULL, 0);
}
else if (g_strcasecmp(name, "LogFilePath") == 0)
}
return error;
}
/***************************************************************************//**
* Reads the config values we need from the [ChansrvLogging] section
*
* @param logmsg Function to use to log messages
* @param names List of definitions in the section
* @params values List of corresponding values for the names
* @params cfg Pointer to structure we're filling in
*
* @return 0 for success
*/
static int
read_config_chansrv_logging(log_func_t logmsg,
struct list *names, struct list *values,
struct config_chansrv *cfg)
{
int error = 0;
int index;
for (index = 0; index < names->count; ++index)
{
const char *name = (const char *)list_get_item(names, index);
const char *value = (const char *)list_get_item(values, index);
if (g_strcasecmp(name, "LogFilePath") == 0)
{
g_free(cfg->log_file_path);
cfg->log_file_path = g_strdup(value);
@@ -344,6 +372,12 @@ config_read(int use_logger, const char *sesman_ini)
error = read_config_chansrv(logmsg, names, values, cfg);
}
if (!error &&
file_read_section(fd, "ChansrvLogging", names, values) == 0)
{
error = read_config_chansrv_logging(logmsg, names, values, cfg);
}
list_delete(names);
list_delete(values);
}
@@ -391,7 +425,7 @@ config_dump(struct config_chansrv *config)
g_writeln(" Nautilus 3 Flist Format: %s",
g_bool2text(config->use_nautilus3_flist_format));
g_writeln(" LogFilePath : %s",
(config->log_file_path) ? config->log_file_path : "<default>");
(config->log_file_path[0]) ? config->log_file_path : "<default>");
}
/******************************************************************************/
+1 -1
View File
@@ -51,7 +51,7 @@ struct config_chansrv
/** Do net send sound data afer SNDC_CLOSE is sent. unit is millisecond, setting from sesman.ini */
unsigned int msec_do_not_send;
/** LogFilePath from sesman.ini */
/** LogFilePath from sesman.ini ([ChansrvLogging]) */
char *log_file_path;
};
+5 -5
View File
@@ -191,11 +191,6 @@ FileUmask=077
#SoundNumSilentFramesAAC=4
#SoundNumSilentFramesMP3=2
#SoundMsecDoNotSend=1000
; Log file path
; Set this to move the log file away from its default location. You may want
; to do this for (e.g.) NFS-mounted home directories
; See sesman.ini(5) for the format of this parameter
#LogFilePath=/run/user/%u/xrdp
[ChansrvLogging]
; Note: one log file is created per display and the LogFile config value
@@ -209,6 +204,11 @@ EnableSyslog=true
#EnableConsole=false
#ConsoleLevel=INFO
#EnableProcessId=false
; Log file path
; Set this to move the log file away from its default location. You may want
; to do this for (e.g.) NFS-mounted home directories
; See sesman.ini(5) for the format of this parameter
#LogFilePath=/run/user/%u/xrdp
[ChansrvLoggingPerLogger]
; Note: per logger configuration is only used if xrdp is built with