Loading...
Searching...
No Matches
configuration.h
Go to the documentation of this file.
1
9
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 *wt_protocols;
55 const char *qlog_path;
63 const char *cert_pem;
65 const char *cert_key;
69 gboolean early_data;
71 const char *ticket_file;
73 uint32_t moq_version;
75 void *user_data;
77
78#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:40
A client/server configuration.
Definition configuration.h:27
const char * h3_path
In case WebTransport is used, the HTTP/3 path to connect to (client-only)
Definition configuration.h:51
uint32_t moq_version
MoQ version to negotiate, if any.
Definition configuration.h:73
const char * wt_protocols
In case WebTransport is used, a comma separated list of the protocol(s) to negotiate.
Definition configuration.h:53
gboolean qlog_moq
Definition configuration.h:61
gboolean raw_quic
Whether raw QUIC should be offered.
Definition configuration.h:47
gboolean qlog_roq_packets
Definition configuration.h:60
gboolean qlog_quic
Whether QUIC and/or HTTP/3 and/or RoQ and/or MoQT events should be saved to QLOG, if supported.
Definition configuration.h:59
uint16_t remote_port
Remote port to connect to (client-only)
Definition configuration.h:39
gboolean qlog_moq_objects
Definition configuration.h:61
gboolean early_data
Whether early data should be supported.
Definition configuration.h:69
gboolean qlog_moq_messages
Definition configuration.h:61
gboolean is_server
Whether this is a server or a client.
Definition configuration.h:31
const char * alpn
Comma separated list of ALPN(s) to negotiate for raw QUIC.
Definition configuration.h:43
gboolean webtransport
Whether WebTransport should be offered.
Definition configuration.h:49
gboolean qlog_sequential
Whether sequential JSON should be used for the QLOG file, instead of regular JSON.
Definition configuration.h:57
const char * cert_key
Path to the key file to use for TLS.
Definition configuration.h:65
const char * qlog_path
Path to save QLOG files to, if needed/supported: a filename for clients, a folder for servers.
Definition configuration.h:55
void * user_data
Optional user data, to pass back when notifying new connections associated to this endpoint.
Definition configuration.h:75
const char * ticket_file
File to use for session tickets, when doing early data.
Definition configuration.h:71
const char * sni
SNI to force, if any (will use localhost otherwise)
Definition configuration.h:41
gboolean qlog_roq
Definition configuration.h:60
uint16_t local_port
Local port of the endpoint.
Definition configuration.h:35
gboolean cert_no_verify
Whether we should disable verification of the remote certificate.
Definition configuration.h:67
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
gboolean qlog_http3
Definition configuration.h:59
const char * cert_pem
Path to the certificate file to use for TLS.
Definition configuration.h:63