Line data Source code
1 : #ifndef HEADER_fd_src_discof_rpcserver_fd_webserver_h 2 : #define HEADER_fd_src_discof_rpcserver_fd_webserver_h 3 : 4 : #include "fd_methods.h" 5 : #include "../../waltz/http/fd_http_server.h" 6 : 7 : // #define FD_RPC_VERBOSE 1 8 : 9 : struct fd_webserver { 10 : fd_http_server_t * server; 11 : fd_spad_t * spad; 12 : void * cb_arg; 13 : unsigned int status_code; 14 : ulong prev_reply_len; 15 : ulong quick_size; 16 0 : #define FD_WEBSERVER_QUICK_MAX (1U<<14U) 17 : char quick_buf[FD_WEBSERVER_QUICK_MAX]; 18 : }; 19 : typedef struct fd_webserver fd_webserver_t; 20 : 21 : int fd_webserver_start(ushort portno, fd_http_server_params_t params, fd_spad_t * spadc, fd_webserver_t * ws, void * cb_arg); 22 : 23 : int fd_webserver_poll(fd_webserver_t * ws); 24 : 25 : int fd_webserver_fd(fd_webserver_t * ws); 26 : 27 : #ifndef KEYW_UNKNOWN 28 0 : #define KEYW_UNKNOWN -1L 29 : #endif 30 : long fd_webserver_json_keyword(const char* keyw, size_t keyw_sz); 31 : const char* un_fd_webserver_json_keyword(long id); 32 : 33 : void fd_webserver_method_generic(struct json_values* values, void * cb_arg); 34 : 35 : int fd_webserver_ws_subscribe(struct json_values* values, ulong conn_id, void * cb_arg); 36 : 37 : void fd_webserver_ws_closed(ulong conn_id, void * cb_arg); 38 : 39 : void fd_web_ws_send( fd_webserver_t * ws, ulong conn_id ); 40 : 41 : void fd_web_reply_new( fd_webserver_t * ws ); 42 : 43 : void fd_web_reply_error( fd_webserver_t * ws, int errcode, const char * text, const char * call_id ); 44 : 45 : int fd_web_reply_append( fd_webserver_t * ws, 46 : const char * text, 47 : ulong text_sz ); 48 : 49 : int fd_web_reply_encode_base58( fd_webserver_t * ws, 50 : const void * data, 51 : ulong data_sz ); 52 : 53 : int fd_web_reply_encode_base64( fd_webserver_t * ws, 54 : const void * data, 55 : ulong data_sz ); 56 : 57 : int fd_web_reply_encode_hex( fd_webserver_t * ws, 58 : const void * data, 59 : ulong data_sz ); 60 : 61 : int fd_web_reply_sprintf( fd_webserver_t * ws, const char* format, ... ) 62 : __attribute__ ((format (printf, 2, 3))); 63 : 64 : int fd_web_reply_encode_json_string( fd_webserver_t * ws, const char* str ); 65 : 66 : #endif /* HEADER_fd_src_discof_rpcserver_fd_webserver_h */