mirror of
https://gitea.invidious.io/iv-org/litespeed-quic.git
synced 2024-08-15 00:53:43 +00:00
Release 2.12.0
- [FEATURE] QUIC timestamps extension. - [API] New: ea_alpn that is used when not in HTTP mode. - [BUGFIX] SNI is mandatory only for HTTP/3 and gQUIC. - [BUGFIX] Benign double-free -- issue #110. - [BUGFIX] Printing of transport parameters.
This commit is contained in:
parent
fa4561dcea
commit
afe3d36359
24 changed files with 279 additions and 34 deletions
|
@ -239,7 +239,7 @@ optional members.
|
|||
.. member:: struct ssl_ctx_st * (*ea_get_ssl_ctx)(void *peer_ctx)
|
||||
|
||||
Get SSL_CTX associated with a peer context. Mandatory in server
|
||||
mode.
|
||||
mode. This is use for default values for SSL instantiation.
|
||||
|
||||
.. member:: const struct lsquic_hset_if *ea_hsi_if
|
||||
.. member:: void *ea_hsi_ctx
|
||||
|
@ -268,6 +268,8 @@ optional members.
|
|||
In a multi-process setup, it may be useful to observe the CID
|
||||
lifecycle. This optional set of callbacks makes it possible.
|
||||
|
||||
.. _apiref-engine-settings:
|
||||
|
||||
Engine Settings
|
||||
---------------
|
||||
|
||||
|
@ -348,7 +350,7 @@ settings structure:
|
|||
.. member:: unsigned es_max_header_list_size
|
||||
|
||||
This corresponds to SETTINGS_MAX_HEADER_LIST_SIZE
|
||||
(RFC 7540, Section 6.5.2). 0 means no limit. Defaults
|
||||
(:rfc:`7540#section-6.5.2`). 0 means no limit. Defaults
|
||||
to :func:`LSQUIC_DF_MAX_HEADER_LIST_SIZE`.
|
||||
|
||||
.. member:: const char *es_ua
|
||||
|
@ -685,6 +687,12 @@ settings structure:
|
|||
|
||||
Default value is :macro:`LSQUIC_DF_DELAYED_ACKS`
|
||||
|
||||
.. member:: int es_timestamps
|
||||
|
||||
Enable timestamps extension. Allowed values are 0 and 1.
|
||||
|
||||
Default value is @ref LSQUIC_DF_TIMESTAMPS
|
||||
|
||||
To initialize the settings structure to library defaults, use the following
|
||||
convenience function:
|
||||
|
||||
|
@ -940,7 +948,7 @@ that the library uses to send packets.
|
|||
|
||||
.. member:: int ecn
|
||||
|
||||
ECN: Valid values are 0 - 3. See RFC 3168.
|
||||
ECN: Valid values are 0 - 3. See :rfc:`3168`.
|
||||
|
||||
ECN may be set by IETF QUIC connections if ``es_ecn`` is set.
|
||||
|
||||
|
@ -1465,7 +1473,7 @@ fields yourself. In that case, the header set must be "read" from the stream vi
|
|||
|
||||
Get header set associated with the stream. The header set is created by
|
||||
``hsi_create_header_set()`` callback. After this call, the ownership of
|
||||
the header set is trasnferred to the caller.
|
||||
the header set is transferred to the caller.
|
||||
|
||||
This call must precede calls to :func:`lsquic_stream_read()`,
|
||||
:func:`lsquic_stream_readv()`, and :func:`lsquic_stream_readf()`.
|
||||
|
|
|
@ -24,9 +24,9 @@ copyright = u'2020, LiteSpeed Technologies'
|
|||
author = u'LiteSpeed Technologies'
|
||||
|
||||
# The short X.Y version
|
||||
version = u'2.11'
|
||||
version = u'2.12'
|
||||
# The full version, including alpha/beta/rc tags
|
||||
release = u'2.11.1'
|
||||
release = u'2.12.0'
|
||||
|
||||
|
||||
# -- General configuration ---------------------------------------------------
|
||||
|
|
|
@ -1,2 +1,71 @@
|
|||
Getting Started with LSQUIC
|
||||
===========================
|
||||
Getting Started
|
||||
===============
|
||||
|
||||
Supported Platforms
|
||||
-------------------
|
||||
|
||||
LSQUIC compiles and runs on Linux, FreeBSD, and Mac OS. It has been
|
||||
tested on i386, x86_64, as well as Raspberry Pi.
|
||||
|
||||
Windows support is on the TODO list.
|
||||
|
||||
Dependencies
|
||||
------------
|
||||
|
||||
LSQUIC library uses:
|
||||
|
||||
- zlib_;
|
||||
- BoringSSL_; and
|
||||
- `ls-qpack`_ (as a Git submodule).
|
||||
|
||||
The accompanying demo command-line tools use libevent_.
|
||||
|
||||
What's in the box
|
||||
-----------------
|
||||
|
||||
- ``src/liblsquic`` -- the library
|
||||
- ``test`` -- demo client and server programs
|
||||
- ``test/unittests`` -- unit tests
|
||||
|
||||
Building
|
||||
--------
|
||||
|
||||
To build the library, follow instructions in the README_ file.
|
||||
|
||||
Demo Examples
|
||||
-------------
|
||||
|
||||
Fetch Google home page:
|
||||
|
||||
::
|
||||
|
||||
./http_client -s www.google.com -p / -o version=Q050
|
||||
|
||||
Run your own server (it does not touch the filesystem, don't worry):
|
||||
|
||||
::
|
||||
|
||||
./http_server -c www.example.com,fullchain.pem,privkey.pem -s 0.0.0.0:4433
|
||||
|
||||
Grab a page from your server:
|
||||
|
||||
::
|
||||
|
||||
./http_client -H www.example.com -s 127.0.0.1:4433 -p /
|
||||
|
||||
You can play with various options, of which there are many. Use
|
||||
the ``-h`` command-line flag to see them.
|
||||
|
||||
Next steps
|
||||
----------
|
||||
|
||||
If you want to use LSQUIC in your program, check out the :doc:`tutorial` and
|
||||
the :doc:`apiref`.
|
||||
|
||||
:doc:`internals` covers some library internals.
|
||||
|
||||
.. _zlib: https://www.zlib.net/
|
||||
.. _BoringSSL: https://boringssl.googlesource.com/boringssl/
|
||||
.. _`ls-qpack`: https://github.com/litespeedtech/ls-qpack
|
||||
.. _libevent: https://libevent.org/
|
||||
.. _README: https://github.com/litespeedtech/lsquic/blob/master/README.md
|
||||
|
|
|
@ -3,9 +3,6 @@ LSQUIC Documentation
|
|||
|
||||
This is the documentation for LSQUIC_ |release|, last updated |today|.
|
||||
|
||||
Introduction
|
||||
------------
|
||||
|
||||
LiteSpeed QUIC (LSQUIC) Library is an open-source implementation of QUIC
|
||||
and HTTP/3 functionality for servers and clients. LSQUIC is:
|
||||
|
||||
|
@ -38,7 +35,9 @@ Contents
|
|||
:maxdepth: 2
|
||||
|
||||
gettingstarted
|
||||
tutorial
|
||||
apiref
|
||||
internals
|
||||
|
||||
Indices and tables
|
||||
==================
|
||||
|
|
11
docs/internals.rst
Normal file
11
docs/internals.rst
Normal file
|
@ -0,0 +1,11 @@
|
|||
*********
|
||||
Internals
|
||||
*********
|
||||
|
||||
Connection Management
|
||||
=====================
|
||||
|
||||
References to connections can exist in six different places in an
|
||||
engine.
|
||||
|
||||
.. image:: lsquic-engine-conns.png
|
1
docs/lsquic-engine-conns.drawio
Normal file
1
docs/lsquic-engine-conns.drawio
Normal file
|
@ -0,0 +1 @@
|
|||
<mxfile host="www.draw.io" modified="2020-02-21T20:56:15.366Z" agent="Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:73.0) Gecko/20100101 Firefox/73.0" etag="X7KTg7RjNxutHAnzRWEE" version="12.7.3"><diagram id="g-XUBOnqw-Le0S7dI5B8" name="Page-1">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</diagram></mxfile>
|
BIN
docs/lsquic-engine-conns.png
Normal file
BIN
docs/lsquic-engine-conns.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 95 KiB |
Loading…
Add table
Add a link
Reference in a new issue