aboutsummaryrefslogtreecommitdiff
path: root/src/server.c
diff options
context:
space:
mode:
authorFranklin Wei <git@fwei.tk>2016-03-24 21:45:47 -0400
committerFranklin Wei <git@fwei.tk>2016-03-24 21:45:47 -0400
commiteb8b5907df2cf3c4b593197d40d10e83e6943ee3 (patch)
treee19b5d3ee90e7d29b5975ad05496b2ab1385ad15 /src/server.c
parenta91f858ebaea0f403b2c59773e619086b9198a39 (diff)
downloadnetcosm-eb8b5907df2cf3c4b593197d40d10e83e6943ee3.zip
netcosm-eb8b5907df2cf3c4b593197d40d10e83e6943ee3.tar.gz
netcosm-eb8b5907df2cf3c4b593197d40d10e83e6943ee3.tar.bz2
netcosm-eb8b5907df2cf3c4b593197d40d10e83e6943ee3.tar.xz
fix for drop bug
Diffstat (limited to 'src/server.c')
-rw-r--r--src/server.c19
1 files changed, 13 insertions, 6 deletions
diff --git a/src/server.c b/src/server.c
index 9e2e465..e42483c 100644
--- a/src/server.c
+++ b/src/server.c
@@ -45,12 +45,15 @@ static int server_socket;
/* saves state periodically */
void server_save_state(bool force)
{
- static int n = 0;
- n = (n + 1) % SAVE_INTERVAL;
- if(!n || force)
+ if(!are_child)
{
- world_save(WORLDFILE);
- userdb_write(USERFILE);
+ static int n = 0;
+ n = (n + 1) % SAVE_INTERVAL;
+ if(!n || force)
+ {
+ world_save(WORLDFILE);
+ userdb_write(USERFILE);
+ }
}
}
@@ -119,6 +122,10 @@ static void __attribute__((noreturn)) server_cleanup(void)
close(server_socket);
+ /* save state */
+ if(!are_child)
+ server_save_state(true);
+
/* shut down modules */
client_shutdown();
obj_shutdown();
@@ -152,7 +159,7 @@ static void __attribute__((noreturn)) sigint_handler(int s)
}
static bool autoconfig = false;
-const char *autouser, *autopass;
+static const char *autouser, *autopass;
static void check_userfile(void)
{