Annotation of embedaddon/curl/lib/vquic/ngtcp2.h, revision 1.1.1.1
1.1 misho 1: #ifndef HEADER_CURL_VQUIC_NGTCP2_H
2: #define HEADER_CURL_VQUIC_NGTCP2_H
3: /***************************************************************************
4: * _ _ ____ _
5: * Project ___| | | | _ \| |
6: * / __| | | | |_) | |
7: * | (__| |_| | _ <| |___
8: * \___|\___/|_| \_\_____|
9: *
10: * Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al.
11: *
12: * This software is licensed as described in the file COPYING, which
13: * you should have received as part of this distribution. The terms
14: * are also available at https://curl.haxx.se/docs/copyright.html.
15: *
16: * You may opt to use, copy, modify, merge, publish, distribute and/or sell
17: * copies of the Software, and permit persons to whom the Software is
18: * furnished to do so, under the terms of the COPYING file.
19: *
20: * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
21: * KIND, either express or implied.
22: *
23: ***************************************************************************/
24:
25: #include "curl_setup.h"
26:
27: #ifdef USE_NGTCP2
28:
29: #include <ngtcp2/ngtcp2.h>
30: #include <nghttp3/nghttp3.h>
31: #ifdef USE_OPENSSL
32: #include <openssl/ssl.h>
33: #elif defined(USE_GNUTLS)
34: #include <gnutls/gnutls.h>
35: #endif
36:
37: struct quic_handshake {
38: char *buf; /* pointer to the buffer */
39: size_t alloclen; /* size of allocation */
40: size_t len; /* size of content in buffer */
41: size_t nread; /* how many bytes have been read */
42: };
43:
44: struct quicsocket {
45: struct connectdata *conn; /* point back to the connection */
46: ngtcp2_conn *qconn;
47: ngtcp2_cid dcid;
48: ngtcp2_cid scid;
49: uint32_t version;
50: ngtcp2_settings settings;
51: #ifdef USE_OPENSSL
52: SSL_CTX *sslctx;
53: SSL *ssl;
54: #elif defined(USE_GNUTLS)
55: gnutls_certificate_credentials_t cred;
56: gnutls_session_t ssl;
57: #endif
58: struct quic_handshake crypto_data[3];
59: /* the last TLS alert description generated by the local endpoint */
60: uint8_t tls_alert;
61: struct sockaddr_storage local_addr;
62: socklen_t local_addrlen;
63:
64: nghttp3_conn *h3conn;
65: nghttp3_conn_settings h3settings;
66: };
67:
68: #include "urldata.h"
69:
70: #endif
71:
72: #endif /* HEADER_CURL_VQUIC_NGTCP2_H */
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>