Release 2.23.0

- [FEATURE] IETF Client 0-RTT support.
- [BUGFIX] Do not schedule MTU probe on first tick.
- [BUGFIX] Parsing DATAGRAM frame.
- [BUGFIX] If push promise fails, do not invoke hset destructor.
- [BUGFIX] Client: When connections are IDed by port number, check DCID.
  Fixes issue #176.
- Revert the 2.22.1 lsquic_is_valid_hs_packet change.  All that was
  necessary is a change to the way we call it in lsquic_engine.  No
  change to the function itself is required.
This commit is contained in:
Dmitri Tikhonov 2020-10-13 08:20:25 -04:00
parent f3d781aa59
commit 04f8f447b2
24 changed files with 808 additions and 309 deletions

View file

@ -1506,8 +1506,14 @@ idle_on_write (lsquic_stream_t *stream, lsquic_stream_ctx_t *st_h)
headers.count = sizeof(header_arr) / sizeof(header_arr[0]);
req = new_req(GET, push_path->path, st_h->req->authority_str);
if (req)
(void) lsquic_conn_push_stream(lsquic_stream_conn(stream),
req, stream, &headers);
{
if (0 != lsquic_conn_push_stream(lsquic_stream_conn(stream),
req, stream, &headers))
{
LSQ_WARN("stream push failed");
interop_server_hset_destroy(req);
}
}
else
LSQ_WARN("cannot allocate req for push");
free(push_path);

View file

@ -93,7 +93,11 @@ load_cert (struct lsquic_hash *certs, const char *optarg)
SSL_CTX_set_max_proto_version(cert->ce_ssl_ctx, TLS1_3_VERSION);
SSL_CTX_set_default_verify_paths(cert->ce_ssl_ctx);
SSL_CTX_set_alpn_select_cb(cert->ce_ssl_ctx, select_alpn, NULL);
SSL_CTX_set_early_data_enabled(cert->ce_ssl_ctx, 1); /* XXX */
{
const char *const s = getenv("LSQUIC_ENABLE_EARLY_DATA");
if (!s || atoi(s))
SSL_CTX_set_early_data_enabled(cert->ce_ssl_ctx, 1); /* XXX */
}
if (1 != SSL_CTX_use_certificate_chain_file(cert->ce_ssl_ctx, cert_file))
{
LSQ_ERROR("SSL_CTX_use_certificate_chain_file failed: %s", cert_file);

View file

@ -1993,6 +1993,11 @@ set_engine_option (struct lsquic_engine_settings *settings,
settings->es_qpack_dec_max_blocked = atoi(val);
return 0;
}
if (0 == strncmp(name, "init_max_streams_bidi", 21))
{
settings->es_init_max_streams_bidi = atoi(val);
return 0;
}
break;
case 23:
if (0 == strncmp(name, "max_udp_payload_size_rx", 23))