aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorMax Kellermann <max@duempel.org>2009-01-21 08:48:02 +0100
committerMax Kellermann <max@duempel.org>2009-01-21 08:48:02 +0100
commit2362ee4a4897502b3ccedf7af31d6d1ad89cff8e (patch)
tree4e2ddac0c1935356041947304c1ff99a2044879e /src
parentf11eb14c8a7d0134ff5399e1c38777ad7938459a (diff)
downloadmpd-2362ee4a4897502b3ccedf7af31d6d1ad89cff8e.tar.gz
mpd-2362ee4a4897502b3ccedf7af31d6d1ad89cff8e.tar.xz
mpd-2362ee4a4897502b3ccedf7af31d6d1ad89cff8e.zip
use config_get_positive() instead of manual parsing
Simplify some code by using config_get_positive(), instead of doing manual parsing and validation each time.
Diffstat (limited to 'src')
-rw-r--r--src/client.c71
-rw-r--r--src/listen.c16
-rw-r--r--src/playlist.c15
3 files changed, 21 insertions, 81 deletions
diff --git a/src/client.c b/src/client.c
index fa3698cb0..589e48c5d 100644
--- a/src/client.c
+++ b/src/client.c
@@ -59,11 +59,9 @@ static const char GREETING[] = "OK MPD " PROTOCOL_VERSION "\n";
/* set this to zero to indicate we have no possible clients */
static unsigned int client_max_connections; /*CLIENT_MAX_CONNECTIONS_DEFAULT; */
-static int client_timeout = CLIENT_TIMEOUT_DEFAULT;
-static size_t client_max_command_list_size =
- CLIENT_MAX_COMMAND_LIST_DEFAULT;
-static size_t client_max_output_buffer_size =
- CLIENT_MAX_OUTPUT_BUFFER_SIZE_DEFAULT;
+static int client_timeout;
+static size_t client_max_command_list_size;
+static size_t client_max_output_buffer_size;
struct deferred_buffer {
size_t size;
@@ -553,55 +551,20 @@ client_out_event(G_GNUC_UNUSED GIOChannel *source,
void client_manager_init(void)
{
- char *test;
- struct config_param *param;
-
- param = config_get_param(CONF_CONN_TIMEOUT);
-
- if (param) {
- client_timeout = strtol(param->value, &test, 10);
- if (*test != '\0' || client_timeout <= 0) {
- g_error("connection timeout \"%s\" is not a positive "
- "integer, line %i",
- CONF_CONN_TIMEOUT, param->line);
- }
- }
-
- param = config_get_param(CONF_MAX_CONN);
-
- if (param) {
- client_max_connections = strtol(param->value, &test, 10);
- if (*test != '\0' || client_max_connections <= 0) {
- g_error("max connections \"%s\" is not a positive integer"
- ", line %i",
- param->value, param->line);
- }
- } else
- client_max_connections = CLIENT_MAX_CONNECTIONS_DEFAULT;
-
- param = config_get_param(CONF_MAX_COMMAND_LIST_SIZE);
-
- if (param) {
- long tmp = strtol(param->value, &test, 10);
- if (*test != '\0' || tmp <= 0) {
- g_error("max command list size \"%s\" is not a positive "
- "integer, line %i",
- param->value, param->line);
- }
- client_max_command_list_size = tmp * 1024;
- }
-
- param = config_get_param(CONF_MAX_OUTPUT_BUFFER_SIZE);
-
- if (param) {
- long tmp = strtol(param->value, &test, 10);
- if (*test != '\0' || tmp <= 0) {
- g_error("max output buffer size \"%s\" is not a positive "
- "integer, line %i",
- param->value, param->line);
- }
- client_max_output_buffer_size = tmp * 1024;
- }
+ client_timeout = config_get_positive(CONF_CONN_TIMEOUT,
+ CLIENT_TIMEOUT_DEFAULT);
+ client_max_connections =
+ config_get_positive(CONF_MAX_CONN,
+ CLIENT_MAX_CONNECTIONS_DEFAULT);
+ client_max_command_list_size =
+ config_get_positive(CONF_MAX_COMMAND_LIST_SIZE,
+ CLIENT_MAX_COMMAND_LIST_DEFAULT / 1024)
+ * 1024;
+
+ client_max_output_buffer_size =
+ config_get_positive(CONF_MAX_OUTPUT_BUFFER_SIZE,
+ CLIENT_MAX_OUTPUT_BUFFER_SIZE_DEFAULT / 1024)
+ * 1024;
}
static void client_close_all(void)
diff --git a/src/listen.c b/src/listen.c
index eac166330..a0efbe148 100644
--- a/src/listen.c
+++ b/src/listen.c
@@ -253,23 +253,9 @@ parseListenConfigParam(G_GNUC_UNUSED unsigned int port,
void listenOnPort(void)
{
- int port = DEFAULT_PORT;
+ int port = config_get_positive(CONF_PORT, DEFAULT_PORT);
struct config_param *param =
config_get_next_param(CONF_BIND_TO_ADDRESS, NULL);
- struct config_param *portParam = config_get_param(CONF_PORT);
-
- if (portParam) {
- char *test;
- port = strtol(portParam->value, &test, 10);
- if (port <= 0 || *test != '\0') {
- g_error("%s \"%s\" specified at line %i is not a "
- "positive integer",
- CONF_PORT,
- portParam->value, portParam->line);
- }
- }
-
- boundPort = port;
do {
parseListenConfigParam(port, param);
diff --git a/src/playlist.c b/src/playlist.c
index 72973610c..063d06843 100644
--- a/src/playlist.c
+++ b/src/playlist.c
@@ -71,7 +71,7 @@
static GRand *g_rand;
static Playlist playlist;
static int playlist_state = PLAYLIST_STATE_STOP;
-unsigned playlist_max_length = DEFAULT_PLAYLIST_MAX_LENGTH;
+unsigned playlist_max_length;
static int playlist_stopOnError;
static unsigned playlist_errorCount;
static int playlist_noGoToNext;
@@ -135,9 +135,6 @@ playlist_tag_event(void)
void initPlaylist(void)
{
- char *test;
- struct config_param *param;
-
g_rand = g_rand_new();
playlist.length = 0;
@@ -147,14 +144,8 @@ void initPlaylist(void)
playlist.queued = -1;
playlist.current = -1;
- param = config_get_param(CONF_MAX_PLAYLIST_LENGTH);
-
- if (param) {
- playlist_max_length = strtol(param->value, &test, 10);
- if (*test != '\0')
- g_error("max playlist length \"%s\" is not an integer, "
- "line %i", param->value, param->line);
- }
+ playlist_max_length = config_get_positive(CONF_MAX_PLAYLIST_LENGTH,
+ DEFAULT_PLAYLIST_MAX_LENGTH);
playlist_saveAbsolutePaths =
config_get_bool(CONF_SAVE_ABSOLUTE_PATHS,