Loading...
Searching...
No Matches
configuration.h
Go to the documentation of this file.
1
10#ifndef IMQUIC_CONFIGURATION_H
11#define IMQUIC_CONFIGURATION_H
12
13#include <stdint.h>
14
15#include <glib.h>
16
24extern volatile int initialized;
25
27typedef struct imquic_configuration {
29 const char *name;
31 gboolean is_server;
33 const char *ip;
35 uint16_t local_port;
37 const char *remote_host;
39 uint16_t remote_port;
41 const char *sni;
43 const char *alpn;
47 gboolean raw_quic;
49 gboolean webtransport;
51 const char *h3_path;
53 const char *subprotocol;
55 const char *cert_pem;
57 const char *cert_key;
59 const char *cert_pwd;
61 gboolean early_data;
63 const char *ticket_file;
65 void *user_data;
67
68#endif
imquic_init_state
imquic initialization state
Definition configuration.h:18
@ IMQUIC_INITIALIZING
Definition configuration.h:21
@ IMQUIC_INITIALIZED
Definition configuration.h:22
@ IMQUIC_NOT_INITIALIZED
Definition configuration.h:20
@ IMQUIC_UNINITIALIZED
Definition configuration.h:19
volatile int initialized
Definition imquic.c:39
struct imquic_configuration imquic_configuration
A client/server configuration.
A client/server configuration.
Definition configuration.h:27
const char * cert_pwd
Password needed to access the certificate for TLS, if any.
Definition configuration.h:59
const char * h3_path
In case WebTransport is used, the HTTP/3 path to connect to (client-only)
Definition configuration.h:51
gboolean raw_quic
Whether raw QUIC should be offered.
Definition configuration.h:47
uint16_t remote_port
Remote port to connect to (client-only)
Definition configuration.h:39
gboolean early_data
Whether early data should be supported.
Definition configuration.h:61
gboolean is_server
Whether this is a server or a client.
Definition configuration.h:31
const char * alpn
ALPN to negotiate for raw QUIC.
Definition configuration.h:43
gboolean webtransport
Whether WebTransport should be offered.
Definition configuration.h:49
const char * cert_key
Path to the key file to use for TLS.
Definition configuration.h:57
const char * subprotocol
In case WebTransport is used, the subprotocol to negotiate (currently unused)
Definition configuration.h:53
void * user_data
Optional user data, to pass back when notifying new connections associated to this endpoint.
Definition configuration.h:65
const char * ticket_file
File to use for session tickets, when doing early data.
Definition configuration.h:63
const char * sni
SNI to force, if any (will use localhost otherwise)
Definition configuration.h:41
uint16_t local_port
Local port of the endpoint.
Definition configuration.h:35
const char * ip
Interface or IP address to bind to.
Definition configuration.h:33
const char * remote_host
Remote address to connect to (client-only)
Definition configuration.h:37
const char * name
Name of the endpoint.
Definition configuration.h:29
const char * cert_pem
Path to the certificate file to use for TLS.
Definition configuration.h:55