From 8fc0a5cafcd45db8a6c1adc342b23987446a558a Mon Sep 17 00:00:00 2001 From: JP Dillingham Date: Wed, 25 Mar 2026 22:25:04 -0500 Subject: [PATCH 1/3] add log_bytes_rx define --- src/defines.d | 1 + src/server/messages.d | 2 +- src/server/package.d | 4 ++-- 3 files changed, 4 insertions(+), 3 deletions(-) diff --git a/src/defines.d b/src/defines.d index f59e9e1..742fd2f 100644 --- a/src/defines.d +++ b/src/defines.d @@ -101,3 +101,4 @@ enum red = "\033[01;91m"; // foreground red bool log_db; bool log_conn; bool log_msg; +bool log_bytes_rx; diff --git a/src/server/messages.d b/src/server/messages.d index 1b63740..af3dbdf 100644 --- a/src/server/messages.d +++ b/src/server/messages.d @@ -6,7 +6,7 @@ module soulfind.server.messages; @safe: -import soulfind.defines : blue, log_msg, norm, RoomTicker; +import soulfind.defines : blue, log_bytes_rx, log_msg, norm, RoomTicker; import soulfind.server.room : Room; import soulfind.server.user : User; import std.array : Appender; diff --git a/src/server/package.d b/src/server/package.d index 48f714e..0c7eb28 100644 --- a/src/server/package.d +++ b/src/server/package.d @@ -7,8 +7,8 @@ module soulfind.server; @safe: import soulfind.cli : CommandOption, parse_args, print_help, print_version; -import soulfind.defines : default_db_filename, exit_message, log_conn, log_db, - log_msg; +import soulfind.defines : default_db_filename, exit_message, log_bytes_rx, + log_conn, log_db, log_msg; import soulfind.server.server : Server; import std.conv : text, to; import std.stdio : writeln; From 6479188f368fb2c1e5d8a75c501559ce6fe47c1a Mon Sep 17 00:00:00 2001 From: JP Dillingham Date: Wed, 25 Mar 2026 22:25:30 -0500 Subject: [PATCH 2/3] log received bytes in hex when log_bytes_rx = true --- src/server/messages.d | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/server/messages.d b/src/server/messages.d index af3dbdf..b354da9 100644 --- a/src/server/messages.d +++ b/src/server/messages.d @@ -13,6 +13,7 @@ import std.array : Appender; import std.bitmanip : Endian, nativeToLittleEndian, peek; import std.conv : text; import std.datetime : days, Duration, SysTime; +import std.format : format; import std.stdio : writeln; import std.utf : UTFException, validate; @@ -188,7 +189,8 @@ class UMessage if (log_msg) writeln( "[Msg] Receive <- ", blue, this.name, norm, " (code ", code, - ") <- from user ", blue, in_username, norm + ") <- from user ", blue, in_username, norm, + log_bytes_rx ? " (" ~ format!"%-(%02x %)"(in_buf) ~ ")" : "" ); } From 2b2998b2038aa2913f010204f5522688d2cc77d5 Mon Sep 17 00:00:00 2001 From: JP Dillingham Date: Wed, 25 Mar 2026 22:25:51 -0500 Subject: [PATCH 3/3] add --rx-bytes flag to turn on received bytes logging --- src/server/package.d | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/src/server/package.d b/src/server/package.d index 0c7eb28..ef6258c 100644 --- a/src/server/package.d +++ b/src/server/package.d @@ -18,6 +18,7 @@ int run(string[] args) string db_filename = default_db_filename; ushort port; bool enable_debug; + bool enable_debug_rx_bytes; bool show_version; bool show_help; @@ -36,6 +37,10 @@ int run(string[] args) "", "debug", "Enable debug logging.", null, (_) { enable_debug = true; } ), + CommandOption( + "", "rx-bytes", "Enable debug logging of received bytes.", null, + (_) { enable_debug_rx_bytes = true; } + ), CommandOption( "v", "version", "Show version.", null, (_) { show_version = true; } @@ -65,6 +70,15 @@ int run(string[] args) if (enable_debug) log_db = log_conn = log_msg = true; + if (enable_debug_rx_bytes) { + if (!enable_debug) { + writeln("Warning: '--rx-bytes' flag requires '--debug'"); + } + else { + log_bytes_rx = true; + } + } + auto server = new Server(db_filename); const success = server.listen(port); const exit_code = success ? 0 : 1;