/* * C-Relay Main Header - Version and Metadata Information * * This header contains version information and relay metadata. * Version macros are auto-updated by the build system. * Relay metadata should be manually maintained. */ #ifndef MAIN_H #define MAIN_H // Version information (auto-updated by build system) // Using CRELAY_ prefix to avoid conflicts with nostr_core_lib VERSION macros #define CRELAY_VERSION_MAJOR 2 #define CRELAY_VERSION_MINOR 1 #define CRELAY_VERSION_PATCH 9 #define CRELAY_VERSION "v2.1.9" // Relay metadata (authoritative source for NIP-11 information) #define RELAY_NAME "C-Relay" #define RELAY_DESCRIPTION "High-performance C Nostr relay with SQLite storage" #define RELAY_CONTACT "" #define RELAY_SOFTWARE "https://git.laantungir.net/laantungir/c-relay.git" #define RELAY_VERSION CRELAY_VERSION // Use the same version as the build #define SUPPORTED_NIPS "1,2,4,9,11,12,13,15,16,20,22,33,40,42,50,70" #define LANGUAGE_TAGS "" #define RELAY_COUNTRIES "" #define POSTING_POLICY "" #define PAYMENTS_URL "" // Forward declaration to avoid pulling cJSON headers into all includers. typedef struct cJSON cJSON; // Async REQ handler status used by websocket callback to defer EOSE until worker completion #define HANDLE_REQ_ASYNC_PENDING (-2) // Async EVENT storage split: // - store_event_core(): worker-safe core DB write path // returns 0 when inserted, 1 when handled without insert (duplicate/ephemeral), -1 on error // - store_event_post_actions(): main-thread-only follow-up actions (monitoring/tags/WoT sync) // - store_event(): legacy wrapper preserving original behavior for synchronous call sites int store_event_core(cJSON* event); void store_event_post_actions(cJSON* event); int store_event(cJSON* event); // Drains completed async REQ jobs and queues EVENT/EOSE on the lws service thread. void process_req_async_completions(void); #endif /* MAIN_H */