https://github.com/libsdl-org/Maelstrom/commit/aaf66f0d760c31a08363cef119b6fb3243fe90bc
From aaf66f0d760c31a08363cef119b6fb3243fe90bc Mon Sep 17 00:00:00 2001
From: Sam Lantinga <[EMAIL REDACTED]>
Date: Sun, 27 Nov 2011 00:51:39 -0500
Subject: [PATCH] Flush the output when outputting to a log file.
---
MaelstromLobby.cpp | 21 ++++++++++++++++-----
1 file changed, 16 insertions(+), 5 deletions(-)
diff --git a/MaelstromLobby.cpp b/MaelstromLobby.cpp
index e8cdafff..47bfcabd 100644
--- a/MaelstromLobby.cpp
+++ b/MaelstromLobby.cpp
@@ -20,6 +20,9 @@
slouken@libsdl.org
*/
+#include <stdio.h>
+#include <stdarg.h>
+
#include "SDL_net.h"
#include "game/packet.h"
@@ -30,6 +33,14 @@
// We'll let games stick around for 10 seconds before aging them out
#define GAME_LIFETIME 10000
+static void log(const char *fmt, ...)
+{
+ va_list ap;
+
+ va_start(ap, fmt);
+ vfprintf(stdout, fmt, ap);
+ fflush(stdout);
+}
class AddressList : public array<IPaddress>
{
@@ -194,7 +205,7 @@ class GameList
while (game) {
next = game->Next();
if (game->TimedOut(now)) {
- printf("Expiring game from %s:%d\n",
+ log("Expiring game from %s:%d\n",
SDLNet_ResolveIP(game->Address()),
SDL_SwapBE16(game->Address()->port));
game->Link(m_free);
@@ -238,7 +249,7 @@ class GameList
newGame = new Game;
}
if (!newGame->ReadFromPacket(packet)) {
- printf("Invalid game from %s:%d\n",
+ log("Invalid game from %s:%d\n",
SDLNet_ResolveIP(&packet.address),
SDL_SwapBE16(packet.address.port));
@@ -248,7 +259,7 @@ class GameList
for (Game *game = m_list; game; game = game->Next()) {
if (*game == *newGame) {
- //printf("Refreshing game from %s:%d\n",
+ //log("Refreshing game from %s:%d\n",
// SDLNet_ResolveIP(&packet.address),
// SDL_SwapBE16(packet.address.port));
@@ -258,7 +269,7 @@ class GameList
}
}
- printf("Adding game from %s:%d\n",
+ log("Adding game from %s:%d\n",
SDLNet_ResolveIP(&packet.address),
SDL_SwapBE16(packet.address.port));
@@ -281,7 +292,7 @@ class GameList
for (Game *game = m_list; game; game = game->Next()) {
if (*game == *newGame) {
- printf("Removing game from %s:%d\n",
+ log("Removing game from %s:%d\n",
SDLNet_ResolveIP(&packet.address),
SDL_SwapBE16(packet.address.port));
game->Link(m_free);