home · contact · privacy
Server: Only fflush() via send_to_outfile() when messages are finished.
authorChristian Heller <c.heller@plomlompom.de>
Thu, 20 Nov 2014 21:53:35 +0000 (22:53 +0100)
committerChristian Heller <c.heller@plomlompom.de>
Thu, 20 Nov 2014 21:53:35 +0000 (22:53 +0100)
src/server/init.c
src/server/run.c
src/server/run.h
src/server/thing_actions.c

index f4c191b8c72ff52d8a6bbe05d509ac33fa14a341..fefe3f3a27cba083ccfb9a763b0bd08a55cf2f05 100644 (file)
@@ -226,7 +226,7 @@ extern uint8_t remake_world()
     world.turn = 1;
     world.do_update = 1;
     world.exists = 1;
-    send_to_outfile("NEW_WORLD\n");
+    send_to_outfile("NEW_WORLD\n", 1);
     return 0;
 }
 
index ba48d8ce3690392dacd39bcb4de5ee9bbd1888a7..55376313e99a347d596b43e83012916deac958c6 100644 (file)
@@ -300,13 +300,13 @@ static uint8_t meta_commands(char * msg)
     if (!strcmp("PING", msg))
     {
         free(msg);
-        send_to_outfile("PONG\n");
+        send_to_outfile("PONG\n", 1);
         return 1;
     }
     if (!strcmp("STACK", msg))
     {
         free(msg);
-        send_to_outfile("THINGS_BELOW_PLAYER START\n");
+        send_to_outfile("THINGS_BELOW_PLAYER START\n", 1);
         struct Thing * player = get_player();
         struct Thing * t;
         for (t = world.things; t; t = t->next)
@@ -315,11 +315,11 @@ static uint8_t meta_commands(char * msg)
                 && t != player)
             {
                 struct ThingType * tt = get_thing_type(t->type);
-                send_to_outfile(tt->name);
-                send_to_outfile("\n");
+                send_to_outfile(tt->name, 0);
+                send_to_outfile("\n", 1);
             }
         }
-        send_to_outfile("THINGS_BELOW_PLAYER END\n");
+        send_to_outfile("THINGS_BELOW_PLAYER END\n", 1);
         return 1;
     }
     return 0;
@@ -327,10 +327,13 @@ static uint8_t meta_commands(char * msg)
 
 
 
-extern void send_to_outfile(char * answer)
+extern void send_to_outfile(char * answer, uint8_t flush)
 {
     try_fwrite(answer, strlen(answer), 1, world.file_out, __func__);
-    fflush(world.file_out);
+    if (flush)
+    {
+        fflush(world.file_out);
+    }
 }
 
 
index bd13d1dde788d7a370d0c08aaeca1888167280eb..26a0c2f7108ae8390897a8e0301ccd173f0d0b37 100644 (file)
@@ -14,8 +14,8 @@
 
 
 
-/* Append "answer" to server output file, with instant fflush(). */
-extern void send_to_outfile(char * answer);
+/* Append "answer" to server output file, with instant fflush() if "flush". */
+extern void send_to_outfile(char * answer, uint8_t flush);
 
 /* Record save and record file data. Both are only written if "force" is set, or
  * on the first run with unset "force", or if 15 seconds have passed since the
index 4889e5fea2cc5d221d53d006244dc2986d00a22d..3542254b7d79082268cca727c65f3679a5f8511e 100644 (file)
@@ -48,9 +48,9 @@ static void playerbonus_use(uint8_t no_thing, uint8_t wrong_thing);
 
 static void update_log(char * text)
 {
-    send_to_outfile("LOG ");
-    send_to_outfile(text);
-    send_to_outfile("\n");
+    send_to_outfile("LOG ", 0);
+    send_to_outfile(text, 0);
+    send_to_outfile("\n", 1);
 }