(start_server, main, service_main): Call emp_config() earlier.

(main): Call loginit() later, after emp_config().  Previously, the
program logged to the default datadir until emp_config().
(init_server, start_sever): Split start_server() into initialization
and actual startup.  Move initialization before disassoc().
(main, init_server): Log server startup only after initialization is
complete.
This commit is contained in:
Markus Armbruster 2005-03-05 20:38:01 +00:00
parent e215af5ac5
commit 830c171dd2
3 changed files with 30 additions and 15 deletions

View file

@ -48,7 +48,8 @@
extern void close_files(void);
extern void panic(int sig);
extern void shutdwn(int sig);
extern void start_server(int, char *);
extern void init_server(int);
extern void start_server(int);
#if defined(_WIN32)
extern void loc_NTTerm(void);
#endif

View file

@ -237,6 +237,7 @@ service_main(DWORD argc, LPTSTR *argv)
sprintf(tbuf, "%s/econfig", datadir);
config_file = tbuf;
}
emp_config(config_file);
service_status.dwServiceType = SERVICE_WIN32;
service_status.dwCurrentState = SERVICE_START_PENDING;
@ -255,7 +256,8 @@ service_main(DWORD argc, LPTSTR *argv)
}
/* Initialization code goes here. */
start_server(0, config_file);
init_server(0);
start_server(0);
/* Initialization complete - report running status. */
service_status.dwCurrentState = SERVICE_RUNNING;

View file

@ -166,8 +166,6 @@ main(int argc, char **argv)
}
}
loginit("server");
#if defined(_WIN32)
if ((debug || datadir_set || config_file != NULL) &&
remove_service_set) {
@ -190,6 +188,15 @@ main(int argc, char **argv)
printf("Can't use both -r or -R and -i or -I options\n");
exit(EXIT_FAILURE);
}
#endif /* _WIN32 */
if (config_file == NULL) {
sprintf(tbuf, "%s/econfig", datadir);
config_file = tbuf;
}
emp_config(config_file);
#if defined(_WIN32)
if (install_service_set)
return install_service(argv[0], service_name, datadir_set);
if (remove_service_set)
@ -201,9 +208,6 @@ main(int argc, char **argv)
config_file = tbuf;
}
logerror("------------------------------------------------------");
logerror("Empire server (pid %d) started", (int)getpid());
#if defined(_WIN32)
if (debug == 0) {
SERVICE_TABLE_ENTRY DispatchTable[]={{"Empire Server", service_main},{NULL, NULL}};
@ -217,13 +221,14 @@ main(int argc, char **argv)
} else /* start in the foreground */
debug = 1;
}
#else
if (debug == 0 && flags == 0) {
disassoc();
}
#endif
#endif /* _WIN32 */
start_server(flags, config_file);
init_server(flags);
#ifndef _WIN32
if (debug == 0 && flags == 0)
disassoc();
#endif
start_server(flags);
#if defined(__linux__) && defined(_EMPTH_POSIX)
strcpy(tbuf, argv[0]);
@ -247,7 +252,7 @@ main(int argc, char **argv)
void
start_server(int flags, char *config_file)
init_server(int flags)
{
#ifdef POSIXSIGNALS
struct sigaction act;
@ -256,7 +261,6 @@ start_server(int flags, char *config_file)
#if defined(_WIN32)
loc_NTInit();
#endif
emp_config(config_file);
update_policy_check();
nullify_objects();
@ -316,6 +320,14 @@ start_server(int flags, char *config_file)
mobility_init();
}
loginit("server");
logerror("------------------------------------------------------");
logerror("Empire server (pid %d) started", (int)getpid());
}
void
start_server(int flags)
{
empth_create(PP_ACCEPT, player_accept, (50 * 1024), flags,
"AcceptPlayers", "Accept network connections", 0);
empth_create(PP_KILLIDLE, player_kill_idle, (50 * 1024), flags,