Tilde Friends
httpd.js.h
1#pragma once
2
14#include <stdbool.h>
15#include <stddef.h>
16#include <stdint.h>
17
18#include "quickjs.h"
19
20static const int64_t k_httpd_auth_refresh_interval = 1ULL * 7 * 24 * 60 * 60 * 1000;
21
23typedef struct JSContext JSContext;
24
28typedef struct _tf_http_t tf_http_t;
29
34
38typedef struct _tf_ssb_t tf_ssb_t;
39
44{
46 const char* user;
48 const char* app;
50
58
64
70
77const char* tf_httpd_ext_to_content_type(const char* ext, bool use_fallback);
78
85const char* tf_httpd_magic_bytes_to_content_type(const uint8_t* bytes, size_t size);
86
93
100tf_httpd_user_app_t* tf_httpd_parse_user_app_from_path(const char* path, const char* expected_suffix);
101
108const char** tf_httpd_form_data_decode(const char* data, int length);
109
116const char* tf_httpd_form_data_get(const char** form_data, const char* key);
117
125JSValue tf_httpd_authenticate_jwt(tf_ssb_t* ssb, JSContext* context, const char* jwt);
126;
127
135
141bool tf_httpd_is_name_valid(const char* name);
142
149const char* tf_httpd_make_set_session_cookie_header(tf_http_request_t* request, const char* session_cookie);
150
158const char* tf_httpd_make_session_jwt(JSContext* context, tf_ssb_t* ssb, const char* name);
159
165
171
177
183
189
195
201
207
213
219
struct JSContext JSContext
Definition: api.js.h:10
struct _tf_http_t tf_http_t
Definition: http.h:24
void tf_httpd_register(JSContext *context)
void tf_httpd_endpoint_view(tf_http_request_t *request)
JSValue tf_httpd_authenticate_jwt(tf_ssb_t *ssb, JSContext *context, const char *jwt)
void tf_httpd_endpoint_static(tf_http_request_t *request)
void tf_httpd_endpoint_app(tf_http_request_t *request)
bool tf_httpd_redirect(tf_http_request_t *request)
JSValue tf_httpd_make_response_object(JSContext *context, tf_http_request_t *request)
const char * tf_httpd_ext_to_content_type(const char *ext, bool use_fallback)
void tf_httpd_endpoint_logout(tf_http_request_t *request)
const char * tf_httpd_make_set_session_cookie_header(tf_http_request_t *request, const char *session_cookie)
const char * tf_httpd_form_data_get(const char **form_data, const char *key)
void tf_httpd_endpoint_save(tf_http_request_t *request)
struct _tf_httpd_user_app_t tf_httpd_user_app_t
void tf_httpd_destroy(tf_http_t *http)
void tf_httpd_endpoint_app_index(tf_http_request_t *request)
const char ** tf_httpd_form_data_decode(const char *data, int length)
struct _tf_ssb_t tf_ssb_t
Definition: httpd.js.h:38
void tf_httpd_endpoint_login_auto(tf_http_request_t *request)
const char * tf_httpd_magic_bytes_to_content_type(const uint8_t *bytes, size_t size)
tf_http_t * tf_httpd_create(JSContext *context)
void tf_httpd_endpoint_login(tf_http_request_t *request)
const char * tf_httpd_make_session_jwt(JSContext *context, tf_ssb_t *ssb, const char *name)
tf_httpd_user_app_t * tf_httpd_parse_user_app_from_path(const char *path, const char *expected_suffix)
bool tf_httpd_is_name_valid(const char *name)
void tf_httpd_endpoint_app_socket(tf_http_request_t *request)
void tf_httpd_endpoint_delete(tf_http_request_t *request)
Definition: http.h:66
Definition: httpd.js.h:44
const char * user
Definition: httpd.js.h:46
const char * app
Definition: httpd.js.h:48