VirtualBox

source: vbox/trunk/src/libs/curl-7.87.0/lib/vquic/ngtcp2.h@ 98341

最後變更 在這個檔案從98341是 98326,由 vboxsync 提交於 2 年 前

curl-7.87.0: Applied and adjusted our curl changes to 7.83.1. bugref:10356

  • 屬性 svn:eol-style 設為 native
檔案大小: 2.5 KB
 
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 - 2022, Daniel Stenberg, <[email protected]>, 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.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 * SPDX-License-Identifier: curl
24 *
25 ***************************************************************************/
26
27#include "curl_setup.h"
28
29#ifdef USE_NGTCP2
30
31#ifdef HAVE_NETINET_UDP_H
32#include <netinet/udp.h>
33#endif
34
35#include <ngtcp2/ngtcp2_crypto.h>
36#include <nghttp3/nghttp3.h>
37#ifdef USE_OPENSSL
38#include <openssl/ssl.h>
39#elif defined(USE_WOLFSSL)
40#include <wolfssl/options.h>
41#include <wolfssl/ssl.h>
42#include <wolfssl/quic.h>
43#endif
44
45struct gtls_instance;
46
47struct blocked_pkt {
48 const uint8_t *pkt;
49 size_t pktlen;
50 size_t gsolen;
51};
52
53struct quicsocket {
54 struct connectdata *conn; /* point back to the connection */
55 ngtcp2_conn *qconn;
56 ngtcp2_cid dcid;
57 ngtcp2_cid scid;
58 uint32_t version;
59 ngtcp2_settings settings;
60 ngtcp2_transport_params transport_params;
61 ngtcp2_connection_close_error last_error;
62 ngtcp2_crypto_conn_ref conn_ref;
63#ifdef USE_OPENSSL
64 SSL_CTX *sslctx;
65 SSL *ssl;
66#elif defined(USE_GNUTLS)
67 struct gtls_instance *gtls;
68#elif defined(USE_WOLFSSL)
69 WOLFSSL_CTX *sslctx;
70 WOLFSSL *ssl;
71#endif
72 struct sockaddr_storage local_addr;
73 socklen_t local_addrlen;
74 bool no_gso;
75 uint8_t *pktbuf;
76 size_t pktbuflen;
77 /* the number of entries in blocked_pkt */
78 size_t num_blocked_pkt;
79 /* the number of processed entries in blocked_pkt */
80 size_t num_blocked_pkt_sent;
81 /* the packets blocked by sendmsg (EAGAIN or EWOULDBLOCK) */
82 struct blocked_pkt blocked_pkt[2];
83
84 nghttp3_conn *h3conn;
85 nghttp3_settings h3settings;
86 int qlogfd;
87};
88
89#include "urldata.h"
90
91#endif
92
93#endif /* HEADER_CURL_VQUIC_NGTCP2_H */
注意: 瀏覽 TracBrowser 來幫助您使用儲存庫瀏覽器

© 2025 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette