cwist
Modern C web framework with libttak runtime
Loading...
Searching...
No Matches
https.h
Go to the documentation of this file.
1
6
#ifndef __CWIST_HTTPS_H__
7
#define __CWIST_HTTPS_H__
8
9
#include <
cwist/http.h
>
10
#include <
cwist/err/cwist_err.h
>
11
#include <
openssl/ssl.h
>
12
#include <
openssl/err.h
>
13
14
/* --- SSL Structures --- */
15
16
typedef
struct
cwist_https_context
{
17
SSL_CTX
*
ctx
;
18
void
*
ticket_key
;
19
}
cwist_https_context
;
20
21
typedef
struct
cwist_https_connection
{
22
int
fd
;
23
SSL
*
ssl
;
24
}
cwist_https_connection
;
25
26
/* --- API Functions --- */
27
32
cwist_error_t
cwist_https_init_context
(
cwist_https_context
**ctx,
const
char
*cert_path,
33
const
char
*key_path);
34
38
void
cwist_https_destroy_context
(
cwist_https_context
*ctx);
39
44
cwist_error_t
cwist_https_accept
(
cwist_https_context
*ctx,
int
client_fd,
45
cwist_https_connection
**conn);
46
50
void
cwist_https_close_connection
(
cwist_https_connection
*conn);
51
56
cwist_http_request
*
cwist_https_receive_request
(
cwist_https_connection
*conn);
57
63
cwist_error_t
cwist_https_send_response
(
cwist_https_connection
*conn,
cwist_http_response
*res);
64
69
cwist_error_t
cwist_https_server_loop
(
int
server_fd,
cwist_https_context
*ctx,
70
void
(*handler)(
cwist_https_connection
*conn,
void
*),
71
void
*user_ctx);
72
73
/* --- Error Codes --- */
74
// Defined as constants to be used with cwist_error_t (err_i16) or err_json
75
// We will use standard errno-like negative values or specific error codes.
76
77
#endif
cwist_err.h
cwist_err.h interface.
err.h
mbedTLS TLS backend: error queue subset.
http.h
http.h interface.
cwist_https_receive_request
cwist_http_request * cwist_https_receive_request(cwist_https_connection *conn)
Read from the TLS stream until a full HTTP request has been assembled.
Definition
https.c:1887
cwist_https_accept
cwist_error_t cwist_https_accept(cwist_https_context *ctx, int client_fd, cwist_https_connection **conn)
Definition
https.c:1756
cwist_https_server_loop
cwist_error_t cwist_https_server_loop(int server_fd, cwist_https_context *ctx, void(*handler)(cwist_https_connection *conn, void *), void *user_ctx)
cwist_https_send_response
cwist_error_t cwist_https_send_response(cwist_https_connection *conn, cwist_http_response *res)
Serialize an HTTP response and send it over an active TLS connection.
Definition
https.c:2102
cwist_https_init_context
cwist_error_t cwist_https_init_context(cwist_https_context **ctx, const char *cert_path, const char *key_path)
Definition
https.c:1369
cwist_https_connection
struct cwist_https_connection cwist_https_connection
cwist_https_close_connection
void cwist_https_close_connection(cwist_https_connection *conn)
Definition
https.c:1875
cwist_https_destroy_context
void cwist_https_destroy_context(cwist_https_context *ctx)
Free an HTTPS context and release its OpenSSL resources.
Definition
https.c:1558
cwist_https_context
struct cwist_https_context cwist_https_context
ssl.h
mbedTLS TLS backend: OpenSSL-shaped seam over the CWIST TLS subset.
SSL
struct cwist_mtls_ssl SSL
Definition
ssl.h:44
SSL_CTX
struct cwist_mtls_ctx SSL_CTX
Definition
ssl.h:43
cwist_error_t
Integrated error structure used throughout the system.
Definition
cwist_err.h:72
cwist_http_request
Definition
http.h:65
cwist_http_response
HTTP Response Object. Supports standard string body or Zero-Copy pointer body.
Definition
http.h:82
cwist_https_connection
Definition
https.h:21
cwist_https_connection::ssl
SSL * ssl
Definition
https.h:23
cwist_https_connection::fd
int fd
Definition
https.h:22
cwist_https_context
Definition
https.h:16
cwist_https_context::ticket_key
void * ticket_key
Shared session-ticket key material (forked workers inherit it)
Definition
https.h:18
cwist_https_context::ctx
SSL_CTX * ctx
Definition
https.h:17
include
cwist
https.h
Generated by
1.9.8