Commit 5dd00e74 authored by Michael Smith's avatar Michael Smith

Fix crash when socket couldn't be bound.

svn path=/trunk/icecast/; revision=3776
parent 0ecb6689
...@@ -150,17 +150,19 @@ static int _start_listening(void) ...@@ -150,17 +150,19 @@ static int _start_listening(void)
} }
/* bind the socket and start listening */ /* bind the socket and start listening */
static void _server_proc_init(void) static int _server_proc_init(void)
{ {
if (!_setup_socket()) { if (!_setup_socket()) {
fprintf(stderr, "Could not create listener socket on port %d\n", config_get_config()->port); fprintf(stderr, "Could not create listener socket on port %d\n", config_get_config()->port);
return; return 0;
} }
if (!_start_listening()) { if (!_start_listening()) {
fprintf(stderr, "Failed trying to listen on server socket\n"); fprintf(stderr, "Failed trying to listen on server socket\n");
return; return 0;
} }
return 1;
} }
/* this is the heart of the beast */ /* this is the heart of the beast */
...@@ -291,7 +293,12 @@ int main(int argc, char **argv) ...@@ -291,7 +293,12 @@ int main(int argc, char **argv)
/* override config file options with commandline options */ /* override config file options with commandline options */
config_parse_cmdline(argc, argv); config_parse_cmdline(argc, argv);
_server_proc_init(); /* Bind socket, before we change userid */ /* Bind socket, before we change userid */
if(!_server_proc_init()) {
fprintf(stderr, "Server startup failed. Exiting.\n");
_shutdown_subsystems();
return 1;
}
_ch_root_uid_setup(); /* Change user id and root if requested/possible */ _ch_root_uid_setup(); /* Change user id and root if requested/possible */
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment