50 lines
1.9 KiB
C
50 lines
1.9 KiB
C
/*
|
|
* 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 */
|