From be7ae2b580ccdb151cb68c406458c95ae59d2850 Mon Sep 17 00:00:00 2001 From: Your Name Date: Sun, 7 Sep 2025 06:15:49 -0400 Subject: [PATCH] v0.3.1 - Implement database location and extension changes - Change database extension from .nrdb to .db for standard SQLite convention - Modify make_and_restart_relay.sh to run executable from build/ directory - Database files now created in build/ directory alongside executable - Enhanced --preserve-database flag with backup/restore functionality - Updated source code references in config.c and main.c - Port auto-increment functionality remains fully functional --- .roo/commands/push.md | 5 + c-relay-x86_64 | Bin 397616 -> 0 bytes make_and_restart_relay.sh | 27 ++- relay.pid | 2 +- relay2.log | 35 ++++ relay3.log | 37 ++++ src/config.c | 393 +++++++++++++++++++++++++++++++++++++- src/main.c | 116 ++++++++++- test_port_increment.log | 47 +++++ 9 files changed, 641 insertions(+), 21 deletions(-) create mode 100644 .roo/commands/push.md delete mode 100755 c-relay-x86_64 create mode 100644 relay2.log create mode 100644 relay3.log create mode 100644 test_port_increment.log diff --git a/.roo/commands/push.md b/.roo/commands/push.md new file mode 100644 index 0000000..f01dca2 --- /dev/null +++ b/.roo/commands/push.md @@ -0,0 +1,5 @@ +--- +description: "Brief description of what this command does" +--- + +Run build_and_push.sh, and supply a good git commit message. \ No newline at end of file diff --git a/c-relay-x86_64 b/c-relay-x86_64 deleted file mode 100755 index 1c73c7617d92d1fc61a7f1f5fa5366b1caee8495..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 397616 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

!kDUcz4YI{G;(`( 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

r`Ih%Zl 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 z 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.nrdb (created automatically)" + echo " Database file: .db (created automatically)" echo "" echo "Examples:" echo " $0 # Fresh start with new keys (default)" @@ -51,15 +51,22 @@ fi # Handle database file cleanup for fresh start if [ "$PRESERVE_DATABASE" = false ]; then - if ls *.nrdb >/dev/null 2>&1; then + if ls *.db >/dev/null 2>&1 || ls build/*.db >/dev/null 2>&1; then echo "Removing existing database files to trigger fresh key generation..." - rm -f *.nrdb + rm -f *.db build/*.db echo "✓ Database files removed - will generate new keys and database" else echo "No existing database found - will generate fresh setup" fi else echo "Preserving existing database files as requested" + # Back up database files before clean build + if ls build/*.db >/dev/null 2>&1; then + echo "Backing up existing database files..." + mkdir -p /tmp/relay_backup_$$ + cp build/*.db* /tmp/relay_backup_$$/ 2>/dev/null || true + echo "Database files backed up to temporary location" + fi fi # Clean up legacy files that are no longer used @@ -70,6 +77,14 @@ rm -f db/c_nostr_relay.db* 2>/dev/null echo "Building project..." make clean all +# Restore database files if preserving +if [ "$PRESERVE_DATABASE" = true ] && [ -d "/tmp/relay_backup_$$" ]; then + echo "Restoring preserved database files..." + cp /tmp/relay_backup_$$/*.db* build/ 2>/dev/null || true + rm -rf /tmp/relay_backup_$$ + echo "Database files restored to build directory" +fi + # Check if build was successful if [ $? -ne 0 ]; then echo "ERROR: Build failed. Cannot restart relay." @@ -129,9 +144,13 @@ echo "Database will be initialized automatically on startup if needed" echo "Starting relay server..." echo "Debug: Current processes: $(ps aux | grep 'c_relay_' | grep -v grep || echo 'None')" +# Change to build directory before starting relay so database files are created there +cd build # Start relay in background and capture its PID (no command line arguments needed) -$BINARY_PATH > relay.log 2>&1 & +./$(basename $BINARY_PATH) > ../relay.log 2>&1 & RELAY_PID=$! +# Change back to original directory +cd .. echo "Started with PID: $RELAY_PID" diff --git a/relay.pid b/relay.pid index bc1ea67..eda1436 100644 --- a/relay.pid +++ b/relay.pid @@ -1 +1 @@ -1073070 +1177520 diff --git a/relay2.log b/relay2.log new file mode 100644 index 0000000..c32587d --- /dev/null +++ b/relay2.log @@ -0,0 +1,35 @@ +=== C Nostr Relay Server === +Event-based configuration system + +[INFO] Existing relay detected +[INFO] Initializing event-based configuration system... +[SUCCESS] Event-based configuration system initialized +[INFO] Starting existing relay... + Relay pubkey: 6df436471c7965d6473e89998162e6b87cc3547d71a2db12f559a39f4596059a +[SUCCESS] Existing relay startup prepared +[SUCCESS] Database connection established: 6df436471c7965d6473e89998162e6b87cc3547d71a2db12f559a39f4596059a.nrdb +[INFO] Database schema already exists, skipping initialization +[INFO] Existing database schema version: 4 +[WARNING] No configuration event found in existing database +[SUCCESS] Relay information initialized with default values +[INFO] Initializing NIP-13 Proof of Work configuration +[INFO] PoW configured in basic validation mode (default) +[INFO] PoW Configuration: enabled=true, min_difficulty=0, validation_flags=0x1, mode=full +[INFO] Initializing NIP-40 Expiration Timestamp configuration +[INFO] Expiration Configuration: enabled=true, strict_mode=true, filter_responses=true, grace_period=300 seconds +[INFO] Subscription limits: max_per_client=25, max_total=5000 +[INFO] Starting relay server... +[INFO] Starting libwebsockets-based Nostr relay server... +[INFO] Checking port availability: 8888 +[WARNING] Port 8888 is in use, trying port 8889 (attempt 2/5) +[INFO] Checking port availability: 8889 +[INFO] Attempting to bind libwebsockets to port 8889 +[WARNING] WebSocket relay started on ws://127.0.0.1:8889 (configured port 8888 was unavailable) +[SUCCESS] WebSocket relay started on ws://127.0.0.1:8889 (configured port 8888 was unavailable) +[INFO] Received shutdown signal +[INFO] Shutting down WebSocket server... +[SUCCESS] WebSocket relay shut down cleanly +[INFO] Cleaning up configuration system... +[SUCCESS] Configuration system cleaned up +[INFO] Database connection closed +[SUCCESS] Server shutdown complete diff --git a/relay3.log b/relay3.log new file mode 100644 index 0000000..9936ca1 --- /dev/null +++ b/relay3.log @@ -0,0 +1,37 @@ +=== C Nostr Relay Server === +Event-based configuration system + +[INFO] Existing relay detected +[INFO] Initializing event-based configuration system... +[SUCCESS] Event-based configuration system initialized +[INFO] Starting existing relay... + Relay pubkey: 6df436471c7965d6473e89998162e6b87cc3547d71a2db12f559a39f4596059a +[SUCCESS] Existing relay startup prepared +[SUCCESS] Database connection established: 6df436471c7965d6473e89998162e6b87cc3547d71a2db12f559a39f4596059a.nrdb +[INFO] Database schema already exists, skipping initialization +[INFO] Existing database schema version: 4 +[WARNING] No configuration event found in existing database +[SUCCESS] Relay information initialized with default values +[INFO] Initializing NIP-13 Proof of Work configuration +[INFO] PoW configured in basic validation mode (default) +[INFO] PoW Configuration: enabled=true, min_difficulty=0, validation_flags=0x1, mode=full +[INFO] Initializing NIP-40 Expiration Timestamp configuration +[INFO] Expiration Configuration: enabled=true, strict_mode=true, filter_responses=true, grace_period=300 seconds +[INFO] Subscription limits: max_per_client=25, max_total=5000 +[INFO] Starting relay server... +[INFO] Starting libwebsockets-based Nostr relay server... +[INFO] Checking port availability: 8888 +[WARNING] Port 8888 is in use, trying port 8889 (attempt 2/5) +[INFO] Checking port availability: 8889 +[WARNING] Port 8889 is in use, trying port 8890 (attempt 3/5) +[INFO] Checking port availability: 8890 +[INFO] Attempting to bind libwebsockets to port 8890 +[WARNING] WebSocket relay started on ws://127.0.0.1:8890 (configured port 8888 was unavailable) +[SUCCESS] WebSocket relay started on ws://127.0.0.1:8890 (configured port 8888 was unavailable) +[INFO] Received shutdown signal +[INFO] Shutting down WebSocket server... +[SUCCESS] WebSocket relay shut down cleanly +[INFO] Cleaning up configuration system... +[SUCCESS] Configuration system cleaned up +[INFO] Database connection closed +[SUCCESS] Server shutdown complete diff --git a/src/config.c b/src/config.c index c45074f..4651982 100644 --- a/src/config.c +++ b/src/config.c @@ -44,9 +44,9 @@ char** find_existing_nrdb_files(void) { return NULL; } - // Count .nrdb files + // Count .db files while ((entry = readdir(dir)) != NULL) { - if (strstr(entry->d_name, ".nrdb") != NULL) { + if (strstr(entry->d_name, ".db") != NULL) { count++; } } @@ -67,7 +67,7 @@ char** find_existing_nrdb_files(void) { // Store filenames int i = 0; while ((entry = readdir(dir)) != NULL && i < count) { - if (strstr(entry->d_name, ".nrdb") != NULL) { + if (strstr(entry->d_name, ".db") != NULL) { files[i] = malloc(strlen(entry->d_name) + 1); if (files[i]) { strcpy(files[i], entry->d_name); @@ -84,8 +84,8 @@ char** find_existing_nrdb_files(void) { char* extract_pubkey_from_filename(const char* filename) { if (!filename) return NULL; - // Find .nrdb extension - const char* dot = strstr(filename, ".nrdb"); + // Find .db extension + const char* dot = strstr(filename, ".db"); if (!dot) return NULL; // Calculate pubkey length @@ -107,10 +107,10 @@ char* get_database_name_from_relay_pubkey(const char* relay_pubkey) { return NULL; } - char* db_name = malloc(strlen(relay_pubkey) + 6); // +6 for ".nrdb\0" + char* db_name = malloc(strlen(relay_pubkey) + 4); // +4 for ".db\0" if (!db_name) return NULL; - - sprintf(db_name, "%s.nrdb", relay_pubkey); + + sprintf(db_name, "%s.db", relay_pubkey); return db_name; } @@ -642,6 +642,373 @@ int startup_existing_relay(const char* relay_pubkey) { return 0; } +// ================================ +// CONFIGURATION FIELD VALIDATION +// ================================ + +// Validation helper functions +static int is_valid_port(const char* port_str) { + if (!port_str) return 0; + + char* endptr; + long port = strtol(port_str, &endptr, 10); + + // Must be valid number and in valid port range + return (endptr != port_str && *endptr == '\0' && port >= 1 && port <= 65535); +} + +static int is_valid_boolean(const char* bool_str) { + if (!bool_str) return 0; + + return (strcasecmp(bool_str, "true") == 0 || + strcasecmp(bool_str, "false") == 0 || + strcasecmp(bool_str, "yes") == 0 || + strcasecmp(bool_str, "no") == 0 || + strcasecmp(bool_str, "1") == 0 || + strcasecmp(bool_str, "0") == 0); +} + +static int is_valid_positive_integer(const char* int_str) { + if (!int_str) return 0; + + char* endptr; + long val = strtol(int_str, &endptr, 10); + + return (endptr != int_str && *endptr == '\0' && val >= 0); +} + +static int is_valid_non_negative_integer(const char* int_str) { + if (!int_str) return 0; + + char* endptr; + long val = strtol(int_str, &endptr, 10); + + return (endptr != int_str && *endptr == '\0' && val >= 0); +} + +static int is_valid_string_length(const char* str, size_t max_length) { + if (!str) return 1; // NULL strings are valid (use defaults) + return strlen(str) <= max_length; +} + +static int is_valid_pow_mode(const char* mode_str) { + if (!mode_str) return 0; + + return (strcasecmp(mode_str, "basic") == 0 || + strcasecmp(mode_str, "strict") == 0 || + strcasecmp(mode_str, "disabled") == 0); +} + +static int is_valid_hex_key(const char* key_str) { + if (!key_str) return 0; + + // Must be exactly 64 hex characters + if (strlen(key_str) != 64) return 0; + + // Must contain only hex characters + for (int i = 0; i < 64; i++) { + char c = key_str[i]; + if (!((c >= '0' && c <= '9') || + (c >= 'a' && c <= 'f') || + (c >= 'A' && c <= 'F'))) { + return 0; + } + } + return 1; +} + +// Main validation function for configuration fields +static int validate_config_field(const char* key, const char* value, char* error_msg, size_t error_size) { + if (!key || !value) { + snprintf(error_msg, error_size, "key or value is NULL"); + return -1; + } + + // Port validation + if (strcmp(key, "relay_port") == 0) { + if (!is_valid_port(value)) { + snprintf(error_msg, error_size, "invalid port number '%s' (must be 1-65535)", value); + return -1; + } + return 0; + } + + // Connection limits + if (strcmp(key, "max_connections") == 0) { + if (!is_valid_positive_integer(value)) { + snprintf(error_msg, error_size, "invalid max_connections '%s' (must be positive integer)", value); + return -1; + } + int val = atoi(value); + if (val < 1 || val > 10000) { + snprintf(error_msg, error_size, "max_connections '%s' out of range (1-10000)", value); + return -1; + } + return 0; + } + + // Boolean fields + if (strcmp(key, "auth_enabled") == 0 || + strcmp(key, "nip40_expiration_enabled") == 0 || + strcmp(key, "nip40_expiration_strict") == 0 || + strcmp(key, "nip40_expiration_filter") == 0) { + if (!is_valid_boolean(value)) { + snprintf(error_msg, error_size, "invalid boolean value '%s' for %s", value, key); + return -1; + } + return 0; + } + + // String length validation + if (strcmp(key, "relay_description") == 0) { + if (!is_valid_string_length(value, RELAY_DESCRIPTION_MAX_LENGTH)) { + snprintf(error_msg, error_size, "relay_description too long (max %d characters)", RELAY_DESCRIPTION_MAX_LENGTH); + return -1; + } + return 0; + } + + if (strcmp(key, "relay_contact") == 0) { + if (!is_valid_string_length(value, RELAY_CONTACT_MAX_LENGTH)) { + snprintf(error_msg, error_size, "relay_contact too long (max %d characters)", RELAY_CONTACT_MAX_LENGTH); + return -1; + } + return 0; + } + + if (strcmp(key, "relay_software") == 0 || + strcmp(key, "relay_version") == 0) { + if (!is_valid_string_length(value, 256)) { + snprintf(error_msg, error_size, "%s too long (max 256 characters)", key); + return -1; + } + return 0; + } + + // PoW difficulty validation + if (strcmp(key, "pow_min_difficulty") == 0) { + if (!is_valid_non_negative_integer(value)) { + snprintf(error_msg, error_size, "invalid pow_min_difficulty '%s' (must be non-negative integer)", value); + return -1; + } + int val = atoi(value); + if (val > 32) { // 32 is practically impossible + snprintf(error_msg, error_size, "pow_min_difficulty '%s' too high (max 32)", value); + return -1; + } + return 0; + } + + // PoW mode validation + if (strcmp(key, "pow_mode") == 0) { + if (!is_valid_pow_mode(value)) { + snprintf(error_msg, error_size, "invalid pow_mode '%s' (must be basic, strict, or disabled)", value); + return -1; + } + return 0; + } + + // Time-based validation + if (strcmp(key, "nip40_expiration_grace_period") == 0) { + if (!is_valid_non_negative_integer(value)) { + snprintf(error_msg, error_size, "invalid grace period '%s' (must be non-negative integer)", value); + return -1; + } + int val = atoi(value); + if (val > 86400) { // Max 1 day + snprintf(error_msg, error_size, "grace period '%s' too long (max 86400 seconds)", value); + return -1; + } + return 0; + } + + // Subscription limits + if (strcmp(key, "max_subscriptions_per_client") == 0) { + if (!is_valid_positive_integer(value)) { + snprintf(error_msg, error_size, "invalid max_subscriptions_per_client '%s'", value); + return -1; + } + int val = atoi(value); + if (val < 1 || val > 1000) { + snprintf(error_msg, error_size, "max_subscriptions_per_client '%s' out of range (1-1000)", value); + return -1; + } + return 0; + } + + if (strcmp(key, "max_total_subscriptions") == 0) { + if (!is_valid_positive_integer(value)) { + snprintf(error_msg, error_size, "invalid max_total_subscriptions '%s'", value); + return -1; + } + int val = atoi(value); + if (val < 1 || val > 100000) { + snprintf(error_msg, error_size, "max_total_subscriptions '%s' out of range (1-100000)", value); + return -1; + } + return 0; + } + + if (strcmp(key, "max_filters_per_subscription") == 0) { + if (!is_valid_positive_integer(value)) { + snprintf(error_msg, error_size, "invalid max_filters_per_subscription '%s'", value); + return -1; + } + int val = atoi(value); + if (val < 1 || val > 100) { + snprintf(error_msg, error_size, "max_filters_per_subscription '%s' out of range (1-100)", value); + return -1; + } + return 0; + } + + // Event limits + if (strcmp(key, "max_event_tags") == 0) { + if (!is_valid_positive_integer(value)) { + snprintf(error_msg, error_size, "invalid max_event_tags '%s'", value); + return -1; + } + int val = atoi(value); + if (val < 1 || val > 1000) { + snprintf(error_msg, error_size, "max_event_tags '%s' out of range (1-1000)", value); + return -1; + } + return 0; + } + + if (strcmp(key, "max_content_length") == 0) { + if (!is_valid_positive_integer(value)) { + snprintf(error_msg, error_size, "invalid max_content_length '%s'", value); + return -1; + } + int val = atoi(value); + if (val < 100 || val > 1048576) { // 1MB max + snprintf(error_msg, error_size, "max_content_length '%s' out of range (100-1048576)", value); + return -1; + } + return 0; + } + + if (strcmp(key, "max_message_length") == 0) { + if (!is_valid_positive_integer(value)) { + snprintf(error_msg, error_size, "invalid max_message_length '%s'", value); + return -1; + } + int val = atoi(value); + if (val < 1024 || val > 1048576) { // 1KB to 1MB + snprintf(error_msg, error_size, "max_message_length '%s' out of range (1024-1048576)", value); + return -1; + } + return 0; + } + + // Performance limits + if (strcmp(key, "default_limit") == 0 || strcmp(key, "max_limit") == 0) { + if (!is_valid_positive_integer(value)) { + snprintf(error_msg, error_size, "invalid %s '%s'", key, value); + return -1; + } + int val = atoi(value); + if (val < 1 || val > 50000) { + snprintf(error_msg, error_size, "%s '%s' out of range (1-50000)", key, value); + return -1; + } + return 0; + } + + // Key validation for relay keys + if (strcmp(key, "relay_pubkey") == 0 || strcmp(key, "relay_privkey") == 0) { + if (!is_valid_hex_key(value)) { + snprintf(error_msg, error_size, "invalid %s format (must be 64-character hex)", key); + return -1; + } + return 0; + } + + // Special validation for d tag (relay identifier) + if (strcmp(key, "d") == 0) { + if (!is_valid_hex_key(value)) { + snprintf(error_msg, error_size, "invalid relay identifier 'd' format (must be 64-character hex)"); + return -1; + } + return 0; + } + + // Unknown field - log warning but allow + log_warning("Unknown configuration field"); + printf(" Field: %s = %s\n", key, value); + return 0; +} + +// Validate all fields in a configuration event +static int validate_configuration_event_fields(const cJSON* event, char* error_msg, size_t error_size) { + if (!event) { + snprintf(error_msg, error_size, "null configuration event"); + return -1; + } + + log_info("Validating configuration event fields..."); + + cJSON* tags = cJSON_GetObjectItem(event, "tags"); + if (!tags || !cJSON_IsArray(tags)) { + snprintf(error_msg, error_size, "missing or invalid tags array"); + return -1; + } + + int validated_fields = 0; + int validation_errors = 0; + char field_error[512]; + + cJSON* tag = NULL; + cJSON_ArrayForEach(tag, tags) { + if (cJSON_IsArray(tag) && cJSON_GetArraySize(tag) >= 2) { + cJSON* tag_key = cJSON_GetArrayItem(tag, 0); + cJSON* tag_value = cJSON_GetArrayItem(tag, 1); + + if (tag_key && tag_value && + cJSON_IsString(tag_key) && cJSON_IsString(tag_value)) { + + const char* key = cJSON_GetStringValue(tag_key); + const char* value = cJSON_GetStringValue(tag_value); + + if (validate_config_field(key, value, field_error, sizeof(field_error)) != 0) { + // Safely truncate the error message if needed + size_t prefix_len = strlen("field validation failed: "); + size_t available_space = error_size > prefix_len ? error_size - prefix_len - 1 : 0; + + if (available_space > 0) { + snprintf(error_msg, error_size, "field validation failed: %.*s", + (int)available_space, field_error); + } else { + strncpy(error_msg, "field validation failed", error_size - 1); + error_msg[error_size - 1] = '\0'; + } + + log_error("Configuration field validation failed"); + printf(" Field: %s = %s\n", key, value); + printf(" Error: %s\n", field_error); + validation_errors++; + return -1; // Stop on first error + } else { + validated_fields++; + } + } + } + } + + if (validation_errors > 0) { + char summary[256]; + snprintf(summary, sizeof(summary), "%d configuration fields failed validation", validation_errors); + log_error(summary); + return -1; + } + + char success_msg[256]; + snprintf(success_msg, sizeof(success_msg), "%d configuration fields validated successfully", validated_fields); + log_success(success_msg); + return 0; +} + int process_configuration_event(const cJSON* event) { if (!event) { log_error("Invalid configuration event"); @@ -690,6 +1057,14 @@ int process_configuration_event(const cJSON* event) { log_success("Configuration event structure and signature validated successfully"); + // NEW: Validate configuration field values + char validation_error[512]; + if (validate_configuration_event_fields(event, validation_error, sizeof(validation_error)) != 0) { + log_error("Configuration field validation failed"); + printf(" Validation error: %s\n", validation_error); + return -1; + } + // Store in database if (store_config_event_in_database(event) != 0) { log_error("Failed to store configuration event"); @@ -702,7 +1077,7 @@ int process_configuration_event(const cJSON* event) { return -1; } - log_success("Configuration event processed successfully"); + log_success("Configuration event processed successfully with field validation"); return 0; } diff --git a/src/main.c b/src/main.c index e30b4c3..d3b3e41 100644 --- a/src/main.c +++ b/src/main.c @@ -10,6 +10,10 @@ #include #include #include +#include +#include +#include +#include // Include nostr_core_lib for Nostr functionality #include "../nostr_core_lib/cjson/cJSON.h" @@ -2956,6 +2960,34 @@ static struct lws_protocols protocols[] = { { NULL, NULL, 0, 0, 0, NULL, 0 } // terminator }; +// Check if a port is available for binding +int check_port_available(int port) { + int sockfd; + struct sockaddr_in addr; + int result; + + // Create a socket + sockfd = socket(AF_INET, SOCK_STREAM, 0); + if (sockfd < 0) { + return 0; // Cannot create socket, assume port unavailable + } + + // Set up the address structure + memset(&addr, 0, sizeof(addr)); + addr.sin_family = AF_INET; + addr.sin_addr.s_addr = INADDR_ANY; + addr.sin_port = htons(port); + + // Try to bind to the port + result = bind(sockfd, (struct sockaddr*)&addr, sizeof(addr)); + + // Close the socket + close(sockfd); + + // Return 1 if bind succeeded (port available), 0 if failed (port in use) + return (result == 0) ? 1 : 0; +} + // Start libwebsockets-based WebSocket Nostr relay server int start_websocket_relay(int port_override) { struct lws_context_creation_info info; @@ -2964,12 +2996,15 @@ int start_websocket_relay(int port_override) { memset(&info, 0, sizeof(info)); // Use port override if provided, otherwise use configuration - info.port = (port_override > 0) ? port_override : get_config_int("relay_port", DEFAULT_PORT); + int configured_port = (port_override > 0) ? port_override : get_config_int("relay_port", DEFAULT_PORT); + int actual_port = configured_port; + int port_attempts = 0; + const int max_port_attempts = 5; + + // Minimal libwebsockets configuration info.protocols = protocols; info.gid = -1; info.uid = -1; - - // Minimal libwebsockets configuration info.options = LWS_SERVER_OPTION_VALIDATE_UTF8; // Remove interface restrictions - let system choose @@ -2983,15 +3018,82 @@ int start_websocket_relay(int port_override) { // Max payload size for Nostr events info.max_http_header_data = 4096; - ws_context = lws_create_context(&info); + // Find an available port with pre-checking + while (port_attempts < max_port_attempts) { + char attempt_msg[256]; + snprintf(attempt_msg, sizeof(attempt_msg), "Checking port availability: %d", actual_port); + log_info(attempt_msg); + + // Pre-check if port is available + if (!check_port_available(actual_port)) { + port_attempts++; + if (port_attempts < max_port_attempts) { + char retry_msg[256]; + snprintf(retry_msg, sizeof(retry_msg), "Port %d is in use, trying port %d (attempt %d/%d)", + actual_port, actual_port + 1, port_attempts + 1, max_port_attempts); + log_warning(retry_msg); + actual_port++; + continue; + } else { + char error_msg[512]; + snprintf(error_msg, sizeof(error_msg), + "Failed to find available port after %d attempts (tried ports %d-%d)", + max_port_attempts, configured_port, actual_port); + log_error(error_msg); + return -1; + } + } + + // Port appears available, try creating libwebsockets context + info.port = actual_port; + + char binding_msg[256]; + snprintf(binding_msg, sizeof(binding_msg), "Attempting to bind libwebsockets to port %d", actual_port); + log_info(binding_msg); + + ws_context = lws_create_context(&info); + if (ws_context) { + // Success! Port binding worked + break; + } + + // libwebsockets failed even though port check passed + // This could be due to timing or different socket options + int errno_saved = errno; + char lws_error_msg[256]; + snprintf(lws_error_msg, sizeof(lws_error_msg), + "libwebsockets failed to bind to port %d (errno: %d)", actual_port, errno_saved); + log_warning(lws_error_msg); + + port_attempts++; + if (port_attempts < max_port_attempts) { + actual_port++; + continue; + } + + // If we get here, we've exhausted attempts + break; + } + if (!ws_context) { - log_error("Failed to create libwebsockets context"); + char error_msg[512]; + snprintf(error_msg, sizeof(error_msg), + "Failed to create libwebsockets context after %d attempts. Last attempted port: %d", + port_attempts, actual_port); + log_error(error_msg); perror("libwebsockets creation error"); return -1; } char startup_msg[256]; - snprintf(startup_msg, sizeof(startup_msg), "WebSocket relay started on ws://127.0.0.1:%d", info.port); + if (actual_port != configured_port) { + snprintf(startup_msg, sizeof(startup_msg), + "WebSocket relay started on ws://127.0.0.1:%d (configured port %d was unavailable)", + actual_port, configured_port); + log_warning(startup_msg); + } else { + snprintf(startup_msg, sizeof(startup_msg), "WebSocket relay started on ws://127.0.0.1:%d", actual_port); + } log_success(startup_msg); // Main event loop with proper signal handling @@ -3034,7 +3136,7 @@ void print_usage(const char* program_name) { printf("Configuration:\n"); printf(" This relay uses event-based configuration stored in the database.\n"); printf(" On first startup, keys are automatically generated and printed once.\n"); - printf(" Database file: .nrdb (created automatically)\n"); + printf(" Database file: .db (created automatically)\n"); printf("\n"); printf("Examples:\n"); printf(" %s # Start relay (auto-configure on first run)\n", program_name); diff --git a/test_port_increment.log b/test_port_increment.log new file mode 100644 index 0000000..9a24255 --- /dev/null +++ b/test_port_increment.log @@ -0,0 +1,47 @@ +=== C Nostr Relay Server === +Event-based configuration system + +[INFO] Existing relay detected +[INFO] Initializing event-based configuration system... +[SUCCESS] Event-based configuration system initialized +[INFO] Starting existing relay... + Relay pubkey: 6df436471c7965d6473e89998162e6b87cc3547d71a2db12f559a39f4596059a +[SUCCESS] Existing relay startup prepared +[SUCCESS] Database connection established: 6df436471c7965d6473e89998162e6b87cc3547d71a2db12f559a39f4596059a.nrdb +[INFO] Database schema already exists, skipping initialization +[INFO] Existing database schema version: 4 +[INFO] Applying configuration from event... +[INFO] Checking for runtime configuration changes... +[INFO] Subscription limits changed - updating subscription manager +[INFO] Subscription limits: max_per_client=25, max_total=5000 +[INFO] PoW configuration changed - reinitializing PoW system +[INFO] Initializing NIP-13 Proof of Work configuration +[INFO] PoW configured in basic validation mode +[INFO] PoW Configuration: enabled=true, min_difficulty=0, validation_flags=0x1, mode=full +[INFO] Expiration configuration changed - reinitializing expiration system +[INFO] Initializing NIP-40 Expiration Timestamp configuration +[INFO] Expiration Configuration: enabled=true, strict_mode=true, filter_responses=true, grace_period=300 seconds +[INFO] Relay information changed - reinitializing relay info +[SUCCESS] Relay information initialized with default values +[SUCCESS] Configuration updated via kind 33334 event - 4 system components reinitialized +[SUCCESS] Configuration applied from event (4 handlers executed) +[SUCCESS] Configuration loaded from database +[SUCCESS] Relay information initialized with default values +[INFO] Initializing NIP-13 Proof of Work configuration +[INFO] PoW configured in basic validation mode +[INFO] PoW Configuration: enabled=true, min_difficulty=0, validation_flags=0x1, mode=full +[INFO] Initializing NIP-40 Expiration Timestamp configuration +[INFO] Expiration Configuration: enabled=true, strict_mode=true, filter_responses=true, grace_period=300 seconds +[INFO] Subscription limits: max_per_client=25, max_total=5000 +[INFO] Starting relay server... +[INFO] Starting libwebsockets-based Nostr relay server... +[INFO] Attempting to bind to port 8888 +[2025/09/06 20:34:16:8170] E: ERROR on binding fd 8 to port 8888 (-1 98) +[2025/09/06 20:34:16:8172] E: init server failed +[2025/09/06 20:34:16:8172] E: Failed to create default vhost +[ERROR] Failed to create libwebsockets context after 1 attempts. Last attempted port: 8888 +libwebsockets creation error: Inappropriate ioctl for device +[INFO] Cleaning up configuration system... +[SUCCESS] Configuration system cleaned up +[INFO] Database connection closed +[ERROR] Server shutdown with errors