[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH 3/3] server - Add support for setting the timeout in the configur
From: |
Luke Yelavich |
Subject: |
[PATCH 3/3] server - Add support for setting the timeout in the configuration file |
Date: |
Thu, 30 Jul 2015 10:15:25 +1000 |
From: Luke Yelavich <address@hidden>
To: address@hidden
A value of 0 either on the command-line or the config file will disable the
timer. Also adjusted some log levels.
---
config/speechd.conf | 6 ++++++
src/server/configuration.c | 5 +++++
src/server/speechd.c | 6 +++---
3 files changed, 14 insertions(+), 3 deletions(-)
diff --git a/config/speechd.conf b/config/speechd.conf
index feca758..aa83c69 100644
--- a/config/speechd.conf
+++ b/config/speechd.conf
@@ -42,6 +42,12 @@
# LocalhostAccessOnly 1
+# By default, Speech Dispatcher is configured to shut itself down after a
period of
+# time if no clients are connected. The timeout value is in seconds, and is
started when
+# the last client disconnects. A value of 0 disables the timeout.
+
+# Timeout 5
+
# -----LOGGING CONFIGURATION-----
# The LogLevel is a number between 0 and 5 specifying the
diff --git a/src/server/configuration.c b/src/server/configuration.c
index 3cdc5c7..be38138 100644
--- a/src/server/configuration.c
+++ b/src/server/configuration.c
@@ -218,6 +218,7 @@ GLOBAL_FDSET_OPTION_CB_STR(DefaultModule, output_module)
&& (val <= 5), "Invalid log (verbosity) level!")
SPEECHD_OPTION_CB_INT(MaxHistoryMessages, max_history_messages, val >= 0,
"Invalid parameter!")
+ SPEECHD_OPTION_CB_INT_M(Timeout, server_timeout, val < 0, "Invalid timeout
value!")
DOTCONF_CB(cb_LanguageDefaultModule)
{
@@ -426,6 +427,7 @@ configoption_t *load_config_options(int *num_options)
ADD_CONFIG_OPTION(DefaultSpelling, ARG_TOGGLE);
ADD_CONFIG_OPTION(DefaultCapLetRecognition, ARG_STR);
ADD_CONFIG_OPTION(DefaultPauseContext, ARG_INT);
+ ADD_CONFIG_OPTION(Timeout, ARG_INT);
ADD_CONFIG_OPTION(AddModule, ARG_LIST);
ADD_CONFIG_OPTION(AudioOutputMethod, ARG_STR);
@@ -483,6 +485,9 @@ void load_default_global_set_options()
SpeechdOptions.port = SPEECHD_DEFAULT_PORT;
if (!SpeechdOptions.localhost_access_only_set)
SpeechdOptions.localhost_access_only = 1;
+ if (!SpeechdOptions.server_timeout_set)
+ SpeechdOptions.server_timeout = 5;
+
logfile = stderr;
custom_logfile = NULL;
diff --git a/src/server/speechd.c b/src/server/speechd.c
index a515ccb..d790c3f 100644
--- a/src/server/speechd.c
+++ b/src/server/speechd.c
@@ -960,14 +960,14 @@ gboolean client_process_incoming (gint fd,
void check_client_count(void)
{
if (client_count <= 0
- && SpeechdOptions.server_timeout_set) {
- MSG(3, "Currently no clients connected, enabling shutdown
timer.");
+ && SpeechdOptions.server_timeout > 0) {
+ MSG(4, "Currently no clients connected, enabling shutdown
timer.");
server_timeout_source =
g_timeout_add_seconds(
SpeechdOptions.server_timeout,
speechd_quit, NULL);
} else {
- MSG(3, "Clients connected, disabling shutdown timer.");
+ MSG(4, "Clients connected, disabling shutdown timer.");
g_source_remove(server_timeout_source);
}
}
--
2.4.6