From 5729c1845818de7803ea9d3d648a1bba8a80e35f Mon Sep 17 00:00:00 2001 From: Markus Armbruster Date: Sun, 29 Apr 2012 12:36:54 +0200 Subject: [PATCH] Journal login before changing the player thread's name The journal logs a thread name for each event. The player thread name changes on entry to the playing phase. Connecting old and new name isn't as easy as it should be: Sun Apr 29 12:13:39 2012 Conn29 input coun POGO Sun Apr 29 12:13:39 2012 Conn29 input pass peter Sun Apr 29 12:13:39 2012 Conn29 input play Sun Apr 29 12:13:39 2012 Play#0 login 0 127.0.0.1 armbru Sun Apr 29 12:15:39 2012 Play#0 logout 0 To connect Conn29 with Play#0, you have to know that country#0 is named POGO. Fix that by logging login before the thread name change: Sun Apr 29 12:17:41 2012 Conn29 input coun POGO Sun Apr 29 12:17:41 2012 Conn29 input pass peter Sun Apr 29 12:17:41 2012 Conn29 input play Sun Apr 29 12:17:41 2012 Conn29 login 0 127.0.0.1 armbru Sun Apr 29 12:19:41 2012 Play#0 logout 0 Now "Conn29 login 0" makes the connection obvious. This involves moving journal_login() from player_main() before empth_set_name() in its caller play_cmd(). Move journal_logout() as well, for symmetry. If player_main() fails, we now log login/logout instead of nothing in the journal. That's okay. Note that before commit c9f21c0e (v4.3.8), we logged just login then. --- src/lib/player/login.c | 4 +++- src/lib/player/player.c | 3 --- 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/src/lib/player/login.c b/src/lib/player/login.c index 04d7ab917..8b7439f94 100644 --- a/src/lib/player/login.c +++ b/src/lib/player/login.c @@ -356,12 +356,14 @@ play_cmd(void) return RET_FAIL; } snprintf(buf, sizeof(buf), "Play#%d", player->cnum); - empth_set_name(empth_self(), buf); logerror("%s logged in as country #%d", praddr(player), player->cnum); + journal_login(); + empth_set_name(empth_self(), buf); pr_id(player, C_INIT, "%d\n", CLIENTPROTO); empth_rwlock_rdlock(shutdown_lock); player->state = PS_PLAYING; player_main(player); + journal_logout(); logerror("%s logged out, country #%d", praddr(player), player->cnum); if (!io_eof(player->iop) && !io_error(player->iop)) io_set_eof(player->iop); diff --git a/src/lib/player/player.c b/src/lib/player/player.c index 98e642edd..000593685 100644 --- a/src/lib/player/player.c +++ b/src/lib/player/player.c @@ -37,7 +37,6 @@ #include "empio.h" #include "empthread.h" #include "file.h" -#include "journal.h" #include "misc.h" #include "nat.h" #include "optlist.h" @@ -84,7 +83,6 @@ player_main(struct player *p) strcpy(natp->nat_hostaddr, player->hostaddr); natp->nat_last_login = player->curup; putnat(natp); - journal_login(); if (natp->nat_flags & NF_INFORM && natp->nat_tgms > 0) { if (natp->nat_tgms == 1) pr("You have a new telegram waiting ...\n"); @@ -107,7 +105,6 @@ player_main(struct player *p) update_timeused(natp->nat_last_logout); enforce_minimum_session_time(); pr("Bye-bye\n"); - journal_logout(); } static int -- 2.43.0