From 580aec7d57cc08a73a30bba00b58d27e5106f338 Mon Sep 17 00:00:00 2001 From: Your Name Date: Sat, 6 Sep 2025 10:07:28 -0400 Subject: [PATCH] v0.2.15 - Add --database-path command line parameter for database location override - Added -D/--database-path parameter to specify custom database file location - Fixed port override timing to apply after configuration system initialization - Updated help message with examples showing database path usage - Supports both absolute and relative paths for database location - Enables running multiple relay instances with separate databases - Resolves database path issues when running from /usr/local/bin --- src/main.c | 18 ++++++++++++------ test_combined.db | Bin 0 -> 167936 bytes 2 files changed, 12 insertions(+), 6 deletions(-) create mode 100644 test_combined.db diff --git a/src/main.c b/src/main.c index df78133..7c07d54 100644 --- a/src/main.c +++ b/src/main.c @@ -3052,12 +3052,7 @@ int main(int argc, char* argv[]) { log_error("Invalid port number"); return 1; } - // Store port in configuration system - char port_str[16]; - snprintf(port_str, sizeof(port_str), "%d", port); - set_database_config("relay_port", port_str, "command_line"); - // Re-apply configuration to make sure global variables are updated - apply_configuration_to_globals(); + // Port will be stored in configuration system after it's initialized } else { log_error("Port argument requires a value"); return 1; @@ -3141,6 +3136,17 @@ int main(int argc, char* argv[]) { return 1; } + // Apply command line overrides AFTER configuration system is initialized + if (port != DEFAULT_PORT) { + log_info("Applying port override from command line"); + printf(" Port: %d\n", port); + char port_str[16]; + snprintf(port_str, sizeof(port_str), "%d", port); + if (set_database_config("relay_port", port_str, "command_line") != 0) { + log_warning("Failed to set port override in configuration"); + } + } + // Initialize NIP-11 relay information init_relay_info(); diff --git a/test_combined.db b/test_combined.db new file mode 100644 index 0000000000000000000000000000000000000000..b6477f11b28b72f3d8212f07061b1e2e890f7490 GIT binary patch literal 167936 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