Start upload functionality
This commit is contained in:
84
src/ginxsom.h
Normal file
84
src/ginxsom.h
Normal file
@@ -0,0 +1,84 @@
|
||||
/*
|
||||
* Ginxsom Blossom Server Header
|
||||
*
|
||||
* This header contains all function declarations and type definitions
|
||||
* organized by BUD (Blossom Unified Draft) sections.
|
||||
*/
|
||||
|
||||
#ifndef GINXSOM_H
|
||||
#define GINXSOM_H
|
||||
|
||||
#include <stddef.h>
|
||||
#include <stdint.h>
|
||||
#include <time.h>
|
||||
#include <fcgi_stdio.h>
|
||||
#include <sqlite3.h>
|
||||
#include "../nostr_core_lib/cjson/cJSON.h"
|
||||
#include "../nostr_core_lib/nostr_core/nostr_core.h"
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////////////////
|
||||
/////////////////////////////////////////////////////////////////////////////////////////
|
||||
// BUD 01 - Basic Protocol Flow
|
||||
/////////////////////////////////////////////////////////////////////////////////////////
|
||||
/////////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
// Database connection management
|
||||
extern sqlite3* db;
|
||||
int init_database(void);
|
||||
void close_database(void);
|
||||
|
||||
// SHA-256 extraction and validation
|
||||
const char* extract_sha256_from_uri(const char* uri);
|
||||
|
||||
// HEAD request handling
|
||||
void handle_head_request(const char* uri);
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////////////////
|
||||
/////////////////////////////////////////////////////////////////////////////////////////
|
||||
// BUD 02 - Upload & Authentication
|
||||
/////////////////////////////////////////////////////////////////////////////////////////
|
||||
/////////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
// Authorization header parsing
|
||||
int parse_authorization_header(const char* auth_header, char* event_json, size_t json_size);
|
||||
|
||||
// Blossom event validation (specific to kind 24242)
|
||||
int validate_blossom_event(cJSON* event, const char* expected_hash, const char* method);
|
||||
|
||||
// Main authentication orchestrator
|
||||
int authenticate_request(const char* auth_header, const char* method, const char* file_hash);
|
||||
|
||||
// Upload handling
|
||||
void handle_upload_request(void);
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////////////////
|
||||
/////////////////////////////////////////////////////////////////////////////////////////
|
||||
// BUD 06 - Upload Requirements
|
||||
/////////////////////////////////////////////////////////////////////////////////////////
|
||||
/////////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
// Upload policy management (for future implementation)
|
||||
void handle_upload_requirements_request(void);
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////////////////
|
||||
/////////////////////////////////////////////////////////////////////////////////////////
|
||||
// UTILITY FUNCTIONS
|
||||
/////////////////////////////////////////////////////////////////////////////////////////
|
||||
/////////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
// HTTP response helpers
|
||||
void send_error_response(int status_code, const char* message);
|
||||
void send_json_response(int status_code, const char* json_content);
|
||||
|
||||
// Logging utilities
|
||||
void log_request(const char* method, const char* uri, int status_code);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif // GINXSOM_H
|
||||
Reference in New Issue
Block a user