diff options
| author | Franklin Wei <git@fwei.tk> | 2016-02-20 20:37:06 -0500 |
|---|---|---|
| committer | Franklin Wei <git@fwei.tk> | 2016-02-28 16:30:21 -0500 |
| commit | 2c687e77cd9ae3fd01010d7b36c8d0082bb76315 (patch) | |
| tree | b8cd58cea075a3c94cb2f1417e6eaea27865b827 /src/server.c | |
| parent | 02de31c48c021742c6245b711790f6d853866c36 (diff) | |
| download | netcosm-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.c | 21 |
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) |