X-Git-Url: https://plomlompom.com/repos/foo.html?a=blobdiff_plain;f=src%2Fserver%2Fcleanup.c;h=08e3bb6057027637850b348380f2ad21fa99091b;hb=0438f2fc5df337e4264103a86c1765ace9c6565a;hp=4ad970ceaf44365e6b16202b00b4ce8ba3fa6ed2;hpb=dd9d65ee727ac7e95801da0f8b5bae7009811802;p=plomrogue
diff --git a/src/server/cleanup.c b/src/server/cleanup.c
index 4ad970c..08e3bb6 100644
--- a/src/server/cleanup.c
+++ b/src/server/cleanup.c
@@ -4,12 +4,14 @@
#include /* uint32_t */
#include /* free() */
#include /* unlink() */
+#include "../common/readwrite.h" /* try_fclose() */
#include "map_object_actions.h" /* free_map_object_actions() */
#include "map_objects.h" /* free_map_objects(), free_map_object_defs() */
#include "world.h" /* global world */
+
/* The clean-up flags set by set_cleanup_flag(). */
static uint32_t cleanup_flags = 0x0000;
@@ -17,12 +19,13 @@ static uint32_t cleanup_flags = 0x0000;
extern void cleanup()
{
+ char * f_name = "cleanup()";
free(world.queue);
free(world.log);
free(world.map.cells);
- if (cleanup_flags & CLEANUP_OUTFILE)
+ if (cleanup_flags & CLEANUP_WORLDSTATE)
{
- unlink(world.path_out);
+ unlink(world.path_worldstate);
}
if (cleanup_flags & CLEANUP_MAP_OBJECTS)
{
@@ -36,10 +39,17 @@ extern void cleanup()
{
free_map_object_actions(world.map_obj_acts);
}
- if (cleanup_flags & CLEANUP_FIFO) /* Fifo also serves as lockfile that */
- { /* affirms the running of a server */
- unlink(world.path_in); /* instance. Therefore it should be */
- } /* the last thing to be deleted. */
+ if (cleanup_flags & CLEANUP_IN)
+ {
+ try_fclose(world.file_in, f_name);
+ unlink(world.path_in);
+ }
+ if (cleanup_flags & CLEANUP_OUT)
+ {
+ try_fclose(world.file_out, f_name);
+ free(world.server_test);
+ unlink(world.path_out);
+ }
}
@@ -47,3 +57,10 @@ extern void set_cleanup_flag(enum cleanup_flag flag)
{
cleanup_flags = cleanup_flags | flag;
}
+
+
+
+extern void unset_cleanup_flag(enum cleanup_flag flag)
+{
+ cleanup_flags = cleanup_flags ^ flag;
+}