aboutsummaryrefslogtreecommitdiffstats
path: root/src/listen.c
diff options
context:
space:
mode:
authorMax Kellermann <max@duempel.org>2009-09-24 21:40:04 +0200
committerMax Kellermann <max@duempel.org>2009-09-24 21:40:04 +0200
commit308b3f2337f100b5d27fa2af50bf929caff4a7d4 (patch)
treed85afd52f91b2e54870aac4ef2b55135a604713d /src/listen.c
parent1e561079676a4774afa8b9c405d98001915322f3 (diff)
downloadmpd-308b3f2337f100b5d27fa2af50bf929caff4a7d4.tar.gz
mpd-308b3f2337f100b5d27fa2af50bf929caff4a7d4.tar.xz
mpd-308b3f2337f100b5d27fa2af50bf929caff4a7d4.zip
listen: handle fatal errors with GError
Don't call g_error(), which will abort the process and dump core.
Diffstat (limited to '')
-rw-r--r--src/listen.c23
1 files changed, 15 insertions, 8 deletions
diff --git a/src/listen.c b/src/listen.c
index 98108d9da..4728e7c7a 100644
--- a/src/listen.c
+++ b/src/listen.c
@@ -347,7 +347,8 @@ listen_add_config_param(unsigned int port,
}
}
-void listen_global_init(void)
+bool
+listen_global_init(GError **error_r)
{
int port = config_get_positive(CONF_PORT, DEFAULT_PORT);
const struct config_param *param =
@@ -361,10 +362,12 @@ void listen_global_init(void)
do {
success = listen_add_config_param(port, param, &error);
- if (!success)
- g_error("Failed to listen on %s (line %i): %s",
- param->value, param->line,
- error->message);
+ if (!success) {
+ g_propagate_prefixed_error(error_r, error,
+ "Failed to listen on %s (line %i): ",
+ param->value, param->line);
+ return false;
+ }
param = config_get_next_param(CONF_BIND_TO_ADDRESS,
param);
@@ -374,12 +377,16 @@ void listen_global_init(void)
configured port on all interfaces */
success = listen_add_port(port, &error);
- if (!success)
- g_error("Failed to listen on *:%d: %s",
- port, error->message);
+ if (!success) {
+ g_propagate_prefixed_error(error_r, error,
+ "Failed to listen on *:%d: ",
+ port);
+ return false;
+ }
}
listen_port = port;
+ return true;
}
void listen_global_finish(void)