aboutsummaryrefslogtreecommitdiff
path: root/src/server.c
diff options
context:
space:
mode:
authorFranklin Wei <git@fwei.tk>2016-02-20 20:37:06 -0500
committerFranklin Wei <git@fwei.tk>2016-02-28 16:30:21 -0500
commit2c687e77cd9ae3fd01010d7b36c8d0082bb76315 (patch)
treeb8cd58cea075a3c94cb2f1417e6eaea27865b827 /src/server.c
parent02de31c48c021742c6245b711790f6d853866c36 (diff)
downloadnetcosm-2c687e77cd9ae3fd01010d7b36c8d0082bb76315.zip
netcosm-2c687e77cd9ae3fd01010d7b36c8d0082bb76315.tar.gz
netcosm-2c687e77cd9ae3fd01010d7b36c8d0082bb76315.tar.bz2
netcosm-2c687e77cd9ae3fd01010d7b36c8d0082bb76315.tar.xz
implements aliases and other assorted features/enhancements
Diffstat (limited to 'src/server.c')
-rw-r--r--src/server.c21
1 files changed, 11 insertions, 10 deletions
diff --git a/src/server.c b/src/server.c
index 5f2478a..9e2e465 100644
--- a/src/server.c
+++ b/src/server.c
@@ -40,17 +40,18 @@ static uint16_t port = DEFAULT_PORT;
static int server_socket;
-void __attribute__((noreturn)) error(const char *fmt, ...)
+#define SAVE_INTERVAL 8
+
+/* saves state periodically */
+void server_save_state(bool force)
{
- char buf[128];
- memset(buf, 0, sizeof(buf));
- va_list ap;
- va_start(ap, fmt);
- vsnprintf(buf, sizeof(buf), fmt, ap);
- va_end(ap);
- perror(buf);
- abort();
- exit(EXIT_FAILURE);
+ static int n = 0;
+ n = (n + 1) % SAVE_INTERVAL;
+ if(!n || force)
+ {
+ world_save(WORLDFILE);
+ userdb_write(USERFILE);
+ }
}
static void free_child_data(void *ptr)