Commit graph

333 commits

Author SHA1 Message Date
George Wang
a74702c630 Release 3.1.0 2022-05-06 12:49:46 -04:00
Ryan A. Pavlik
d755d26ed2
CMake-only computation of whether librt is needed. (#374) 2022-05-06 10:47:16 -04:00
George Wang
c4854d203f Merge branch 'master' of github.com:litespeedtech/lsquic 2022-05-05 18:58:03 -04:00
George Wang
e9ea352198 Update ls-qpack to 2.3.0 2022-05-05 18:57:56 -04:00
Ryan A. Pavlik
797b40e7c2
Add an installed CMake config. (#370)
* Add an installed CMake config.

Does not perform transitive link to boringssl though.

* Install vc_compat.h header
2022-04-28 12:11:45 -04:00
George Wang
e237d77919 Release 3.0.5 2022-04-27 15:40:59 -04:00
Sam Hurst
dbc62fc9fa
Tick connection on want_datagram_write (#314)
* Tick connection on datagram write

* Check that a connection can send before marking connection tickable
2022-04-23 15:53:40 -04:00
Ryan A. Pavlik
454939cdf8
CMake improvements (#369)
* Silence CMake warning by updating minimum versions.

* Generate files to build directory, not source directory
2022-04-23 14:54:05 -04:00
George Wang
497ec21d16 Release 3.0.4 2022-01-11 11:17:44 -05:00
wangfuyu
d190ae8e66
m) fix: handshake may failed if client send too many early data (#352)
Co-authored-by: wangfuyu <ivanfywang@gmail.com>
2022-01-11 11:10:18 -05:00
Tyler Young
f07b3eae43
[WIP] use vcpkg for getopt; build windows shared lib enhancements (#350)
* fix MSVC compiler shared library issues - mostly around 'extern const'

* add vcpkg install getopt to appveyor-windows.yml

show appveyor where to get getopt from vcpkg (non-static lib to avoid LGPL violation)

* add missing else case in lsquic_shared_support.h for windows static lib path

* have cmake spit out it's version

have cmake copy dependent dlls to build dir for tests on windows (getopt.dll)

* copy getopt.dll dep for tests

added commented version that requires >= 3.21 but handles any dll deps

* try caching boringssl dir to reduce CI build time since it's always same commit specified in config file

define VCPKG_ROOT in env since I can't seem to find it by VCPKG_ROOT or VCPKG_INSTALLED_DIR in appveyor's cmake v3.16 + vcpkg

* make windows cache dependent on yml and cmd

* sync up with changes to ls-qpack
2021-12-15 11:38:20 -05:00
Sijie Yang
df67278304
Use same style of boolean checking in conn_ok_to_close() (#347) 2021-11-08 09:06:06 -05:00
George Wang
e1c20fcbee Update ls-qpack to v2.2.2 . 2021-10-27 11:41:47 -04:00
George Wang
082507cd10 Release 3.0.3 2021-09-30 11:23:56 -04:00
fastcome1985
f5bc76471f
[BUGFIX]IETF QUIC v1(RFC9000) Retry Packet Integrity use draft-ietf-quic-tls-33 (or RFC9001) (#332)
Co-authored-by: luojianxiang <luojianxiang05@gmailcom>
2021-09-29 15:50:33 -04:00
wangfuyu
843f807b95
m) fix: check if connection is out of startup phase by comparing cwnd but not cwnd_gain with target_window (#328) 2021-09-27 09:23:15 -04:00
wangweiwei
fb96e96193
[BUGFIX]add datasize to po_regen_sz which will not be retransmitted. (#327) 2021-09-24 21:24:28 -04:00
wangweiwei
4026a4b616
[BUGFIX]DATAGRAM frame can't be retransmitted (#325) 2021-09-23 22:59:54 -04:00
George Wang
01c36b79df [BUGFIX] Properly enable ACK but disable RETX of DATAGRAM frame. 2021-09-18 09:30:15 -04:00
wangfuyu
4b2a063fcf
m) correct log in func generate_ping_frame (#319) 2021-09-17 14:08:39 -04:00
wangfuyu
5684638017
m) fix: quic server may assert failed when invalid SETTINGS frame in (#317)
ref: issue #316
2021-09-15 11:47:16 -04:00
wangweiwei
ff412f2f22
Update lsquic_packet_common.h (#315) 2021-09-10 08:46:39 -04:00
George Wang
7fc1254850 Release 3.0.2 2021-06-29 16:11:29 -04:00
kenstir
0dbfd88edd
Fix #298 (#299)
Handle SSL_get_current_cipher returning NULL
2021-06-22 12:59:29 -04:00
Matt Durgavich
6464d33767
Use C99 format specifiers to properly print uint64_t (#297)
Co-authored-by: Matt Durgavich <mdurgavich@vivox.com>
2021-06-21 22:37:06 -04:00
George Wang
b2e1404ca7 [BUGFIX] lsquic_gquic_be_parse_packet_in_finish() need to make sure the packet has flag PI_GQUIC.
Fix issue #262
2021-06-15 18:16:25 -04:00
wangfuyu
ed94ac1253
m) do not try to delete stk from shi_ctx (#295)
stk never be inserted to shi_ctx, so we don't need try to delete it.

Co-authored-by: wangfuyu <ivanfywang@gmail.com>
2021-06-15 10:35:00 -04:00
George Wang
47440e4eaf Only force TICK_CLOSE flag when CONNECTION_CLOSE frame received. 2021-06-11 22:18:01 -04:00
George Wang
6f6009ab75 Release 3.0.0 2021-06-02 09:04:35 -04:00
George Wang
084338b1a2 Release 3.0.0 2021-06-02 00:39:15 -04:00
wangfuyu
3d35ba155f
Fix: connection may not be closed timely when CONNECTION_CLOSE frame in (#284)
* Fix: connection may not be closed timely when CONNECTION_CLOSE frame in

* Simplify TICK_CLOSE logic

Co-authored-by: wangfuyu <ivanfywang@gmail.com>
2021-05-31 11:24:52 -04:00
George Wang
7290fb0ce6 Update ls-hpack to 2.3.0 2021-04-20 12:20:33 -04:00
George Wang
55d69529bd Release 2.30.1 2021-04-16 14:54:30 -04:00
George Wang
293df8d66b Release 2.30.0
- [FEATURE] Added support for sending/receiving multiple headers to address the
  case related to "100 continue" header handling.
- [BUGFIX] Addressed high CPU usage for a GOAWAY connection before sending
  CONNECTION_CLOSE.
- [BUGFIX] Addressed SIGFPE due to zero pacing rate. (ISSUE #254).
- [BUGFIX] Fixed a minor issue related to multi-paths.
2021-04-12 09:52:42 -04:00
wangfuyu
ab69788e51
Fix: must take xlct into account while determine_rtt (#248)
Co-authored-by: ivanfywang <ivanfywang@gmail.com>
2021-04-01 16:09:37 -04:00
Dmitri Tikhonov
eea998962a Release 2.29.6
- Documentation: describe lsquic internals ("guts").
- Two more fixes to compliance issues found by h3spec.
- Truncate, don't abort, SCIDs larger than 16 bytes (PR #244).
- Several small internal improvements and space optimizations.
2021-03-31 09:38:32 -04:00
wangfuyu
f3690fdcbf
Compatible with 16+ Bytes scid (#244)
Co-authored-by: ivanfywang <wentaomao@tencent.com>
2021-03-29 13:38:37 -04:00
George Wang
10e0dad8a4 Release 2.29.5
- Fix a few issues detected by h3spec for better compliance with HTTP/3 standard.
2021-03-17 12:58:22 -04:00
Dmitri Tikhonov
e1b8f1a8c3 Release 2.29.4
- [BUGFIX] Infinite loop in stream: returned HQ frame can be at any
  point on the list.
- [BUGFIX] Fail push promise immediately if STREAM_NOPUSH is set.
2021-03-08 10:44:37 -05:00
Dmitri Tikhonov
99a1ad0f24 Release 2.29.3
- [BUGFIX] Do not send RESET_STREAM if writing to stream is already
  finished.
- perf_client: wait for all ACKs before exiting.
- Improve how generated RESET_STREAM is logged.
- Fix compilation in different combos of adv_tick/conn_stats flags.
- Move qpack warning disablement into src/liblsquic/CMakeLists.txt.
2021-03-03 09:41:42 -05:00
Dmitri Tikhonov
f1d5a1a4de Release 2.29.2
- Fix regression in gQUIC server: bug #234.
2021-02-23 12:18:50 -05:00
Dmitri Tikhonov
26e8f082c9 Release 2.29.0
- [FEATURE] QUIC and HTTP/3 Internet Draft 34 support and v1 support.
  The latter is turned off by default.
- Drop support for ID-28 and ID-32.
- [BUGFIX] IETF QUIC mini conn receive history (trechist): allow
  unlimited inserts by dropping smallest elements.
- [BUGFIX] gQUIC: set STTL to correct value, issue #226.
- [BUGFIX] Account for poison packet gap when MTU probe was too large.
2021-02-10 08:51:11 -05:00
Dmitri Tikhonov
ac0ce07bd0 Remove obsolete files 2021-02-10 08:47:05 -05:00
Dmitri Tikhonov
c2faf03244 Release 2.28.0
- [API] lsquic_ssl_sess_to_resume_info() is the new way to get
  session info.
- [API] Add user pointer to ea_generate_scid callback.
- [API] Add lsquic_dcid_from_packet() -- a fast function to parse
  out DCID.
- [API] Add es_max_batch_size to control outgoing packet batch size.
- [BUGFIX] Disallow sending of header while promise is being written.
- [BUGFIX] Flush stream when buffered bytes exhaust stream cap.
- [BUGFIX] Deactivate HQ frame if writing push promise fails.
- Perform sanity check on peer transport parameters and fail the
  handshake if some flow control limits are too low.  This can be
  turned off, see es_check_tp_sanity.
- http_server: fix how requests are read in "hq" mode.
2021-02-03 11:05:50 -05:00
Dmitri Tikhonov
5650ee6cd6 Release 2.27.6
- [BUGFIX] Replace dispatch read/write events assertion with a check.
- [BUGFIX] gQUIC connection close: there is no HEADERS stream without
  HTTP flag, see issue #220.
- http_client, http_server: add hq protocol support and other flags
  for use with QUIC Interop Runner.
- Fix: use IP_PMTUDISC_PROBE (not IP_PMTUDISC_DO) on Linux to set
  Don't-Fragment flag on outgoing packets.
- Fix send_packets_one_by_one on Windows platform when sending
  multiple iovs, see issue #218.
- Exit echo_client on Windows immediately, see issue #219.
2021-01-27 10:36:25 -05:00
Dmitri Tikhonov
bbee242ac0 Release 2.27.5
- [BUGFIX] Assertion in send controller when path validation fails.
- [BUGFIX] Assertion in BBR when sending out-of-order packets is
  detected.
- [BUGFIX] Drop overflow receive history ranges when cloning.
- Log correct size of the incoming packet.
- Fix internal stream function.
2021-01-18 13:26:33 -05:00
Dmitri Tikhonov
38e835983f API: add lsquic_conn_get_sni(), fixes issue #203 2021-01-11 13:52:57 -05:00
Dmitri Tikhonov
e2c4907022 Release 2.27.3
- [BUGFIX] gQUIC: do not destroy critical streams when connection is
  closed.  See issue #201.
- [BUGFIX] Drop #if LSQUIC_CONN_STATS from lsquic.h.  See issue #211.
- [BUGFIX] Challenge cancellation when path validation fails.
- [BUGFIX] Do not send FIN if RST is scheduled to be sent on a stream.
- [BUGFIX] gQUIC's is_tickable() when connection is closing.
- [BUGFIX] Q050 processing of GOAWAY frames.
2021-01-08 11:38:46 -05:00
Dmitri Tikhonov
1a0003e3b9 Release 2.27.2
- [BUGFIX] Memory corruption in receive history copy-ranges function.
2021-01-06 17:53:07 -05:00
Dmitri Tikhonov
06b2a2363e Release 2.27.1
- [API] New knob to set outgoing packet batch size.
- Aborted connection now become tickable immediately.
- Abort connection when HTTP/3 frame cannot be opened (can only happen
  when malloc fails).
2021-01-06 09:00:05 -05:00