mirror of
https://github.com/denoland/deno.git
synced 2025-08-31 15:57:53 +00:00
refactor(quic): introduce endpoint, 0rtt, cleanup (#27444)
A QUIC endpoint is a UDP socket which multiplexes QUIC sessions, which may be initiated in either direction. This PR exposes endpoints and moves things around as needed. Now that endpoints can be reused between client connections, we have a way to share tls tickets between them and allow 0rtt. This interface currently works by conditionally returning a promise. Also cleaned up the rust op names, fixed some lingering problems in the data transmission, and switched to explicit error types.
This commit is contained in:
parent
4b35ba6b13
commit
ccd375802a
8 changed files with 1128 additions and 596 deletions
|
@ -20,6 +20,7 @@ use deno_core::OpState;
|
|||
use deno_permissions::PermissionCheckError;
|
||||
use deno_tls::rustls::RootCertStore;
|
||||
use deno_tls::RootCertStoreProvider;
|
||||
pub use quic::QuicError;
|
||||
|
||||
pub const UNSTABLE_FEATURE_NAME: &str = "net";
|
||||
|
||||
|
@ -161,33 +162,42 @@ deno_core::extension!(deno_net,
|
|||
ops_unix::op_net_recv_unixpacket,
|
||||
ops_unix::op_net_send_unixpacket<P>,
|
||||
|
||||
quic::op_quic_accept,
|
||||
quic::op_quic_accept_bi,
|
||||
quic::op_quic_accept_incoming,
|
||||
quic::op_quic_accept_uni,
|
||||
quic::op_quic_close_connection,
|
||||
quic::op_quic_close_endpoint,
|
||||
quic::op_quic_connecting_0rtt,
|
||||
quic::op_quic_connecting_1rtt,
|
||||
quic::op_quic_connection_accept_bi,
|
||||
quic::op_quic_connection_accept_uni,
|
||||
quic::op_quic_connection_close,
|
||||
quic::op_quic_connection_closed,
|
||||
quic::op_quic_connection_get_protocol,
|
||||
quic::op_quic_connection_get_remote_addr,
|
||||
quic::op_quic_connect<P>,
|
||||
quic::op_quic_connection_get_server_name,
|
||||
quic::op_quic_connection_handshake,
|
||||
quic::op_quic_connection_open_bi,
|
||||
quic::op_quic_connection_open_uni,
|
||||
quic::op_quic_connection_get_max_datagram_size,
|
||||
quic::op_quic_connection_read_datagram,
|
||||
quic::op_quic_connection_send_datagram,
|
||||
quic::op_quic_endpoint_close,
|
||||
quic::op_quic_endpoint_connect<P>,
|
||||
quic::op_quic_endpoint_create<P>,
|
||||
quic::op_quic_endpoint_get_addr,
|
||||
quic::op_quic_get_send_stream_priority,
|
||||
quic::op_quic_endpoint_listen,
|
||||
quic::op_quic_incoming_accept,
|
||||
quic::op_quic_incoming_refuse,
|
||||
quic::op_quic_incoming_accept_0rtt,
|
||||
quic::op_quic_incoming_ignore,
|
||||
quic::op_quic_incoming_local_ip,
|
||||
quic::op_quic_incoming_refuse,
|
||||
quic::op_quic_incoming_remote_addr,
|
||||
quic::op_quic_incoming_remote_addr_validated,
|
||||
quic::op_quic_listen<P>,
|
||||
quic::op_quic_max_datagram_size,
|
||||
quic::op_quic_open_bi,
|
||||
quic::op_quic_open_uni,
|
||||
quic::op_quic_read_datagram,
|
||||
quic::op_quic_send_datagram,
|
||||
quic::op_quic_set_send_stream_priority,
|
||||
quic::op_quic_listener_accept,
|
||||
quic::op_quic_listener_stop,
|
||||
quic::op_quic_recv_stream_get_id,
|
||||
quic::op_quic_send_stream_get_id,
|
||||
quic::op_quic_send_stream_get_priority,
|
||||
quic::op_quic_send_stream_set_priority,
|
||||
],
|
||||
esm = [ "01_net.js", "02_tls.js", "03_quic.js" ],
|
||||
esm = [ "01_net.js", "02_tls.js" ],
|
||||
lazy_loaded_esm = [ "03_quic.js" ],
|
||||
options = {
|
||||
root_cert_store_provider: Option<Arc<dyn RootCertStoreProvider>>,
|
||||
unsafely_ignore_certificate_errors: Option<Vec<String>>,
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue