Commit Graph

120 Commits

Author SHA1 Message Date
George Wang f416a13afe Release 4.0.7 2024-02-28 19:05:41 -05:00
George Wang c8cb6aa3e2 Release 4.0.6 2024-02-23 18:40:48 -05:00
George Wang 9c877a4177 Release 4.0.5 2024-02-07 12:32:13 -05:00
George Wang 515f453556 Release 4.0.4 2024-01-09 17:42:07 -05:00
George Wang 46c448d865 Release 4.0.4 2024-01-08 22:43:47 -05:00
George Wang 1163af9c41 Release 4.0.3 2023-12-26 10:23:22 -05:00
George Wang a18ccca39e Release 4.0.2 2023-12-19 22:48:06 -05:00
Mickael Cerisier b81a3fb15f
Fix spam of ping network frames. (#478)
After some time without activity (only keepalive), the ping frame was send in loop.
2023-10-07 10:04:01 -04:00
George Wang 2fb39e3567 Release 4.0.1 2023-05-15 00:27:34 -04:00
George Wang 79880b469a Release 4.0.0 2023-03-14 13:29:13 -04:00
George Wang 48365d5741 Release 3.3.0 2023-01-04 15:21:42 -05:00
wangfuyu b5efa50a5a
m) optimize new conn logic (#443)
1) on_new_conn only be called after handshake_ok
2) on_conn_closed only be called by ietf_full_conn_ci_destroy

Co-authored-by: wangfuyu <ivanfywang@gmail.com>
2022-12-14 11:30:34 -05:00
linsichen206 850b0a3d10
fix potential memory leak (#441)
Co-authored-by: linsc <linsc@wangus.com>
2022-12-07 14:23:43 -05:00
Pluto a5b89b62b5
[fix] assertion failure if poison packet was acked (#416)
Description:
- Error may occur while processing ack frame, e.g. poison packet was
acked by hostile attack. and then conn is supposed to be aborted,
shortly but not immediately;
- if ack frame processing failed while calling lsquic_engine_packet_in,
and IFC_HAVE_SAVED_ACK had been set, then saved ack frame will be
processed while ticking connection before it is aborted, that may
lead to assert failure;

Solution:
- close connection if neccessary before processing ack while ci_tick.
2022-09-20 13:44:39 -04:00
wangfuyu a4aac39013
m) Fix: ietf connection maybe abort if ack for hsk lost (#422)
1) After handshake done, handshake packets should not be sent or received.
2) IFC_ACK_QUED_HSK will be cancelled from conn->ifc_flags after handshake done, but it maybe set again if ACKs for handshake lost(Function: should_generate_ack).

Co-authored-by: ivanfywang <ivanfywang@gmail.com>
2022-09-20 10:29:10 -04:00
George Wang 6efb8c5235 Release 3.1.2 2022-08-16 12:16:46 -04:00
George Wang a74702c630 Release 3.1.0 2022-05-06 12:49:46 -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
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 082507cd10 Release 3.0.3 2021-09-30 11:23:56 -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
George Wang 7fc1254850 Release 3.0.2 2021-06-29 16:11: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 47440e4eaf Only force TICK_CLOSE flag when CONNECTION_CLOSE frame received. 2021-06-11 22:18:01 -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 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
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
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 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 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 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 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 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
Paul Sheer 123f116488 Support new lsquic_stream_if callback on_conncloseframe_received() to notify application of CONNECTION_CLOSE frame 2020-12-18 14:23:41 -05:00
Dmitri Tikhonov 71eb4000ac Release 2.26.1
- [BUGFIX] Migration corner cases: drop or pad over path challenge
  and response frames when necessary.
- Fix stream unit test.
2020-12-17 14:39:51 -05:00
Dmitri Tikhonov 7f96c7c7f3 Release 2.25.0
- [API, FEATURE] Add es_delay_onclose option to delay on_close until all
  data is ACKed.  Use new function lsquic_stream_has_unacked_data() to
  learn whether peer acknowledged all data written to stream.
- [API] Add optional on_reset() stream callback to get notifications
  when RESET or STOP_SENDING frames are received.
- [BUGFIX] On STOP_SENDING, make conn tickable is _writeable_, not
  readable.
2020-12-04 11:29:14 -05:00
Dmitri Tikhonov 57fe5a13ac Fix Windows build 2020-11-24 09:09:13 -05:00
Dmitri Tikhonov f38b395a31 Release 2.24.5
- [FEATURE] Improve Delayed ACKs extension and turn it on by default.
- Limit receive history to a finite amount of memory.
2020-11-24 08:51:36 -05:00
Dmitri Tikhonov 4580fab747 Release 2.24.4
- [BUGFIX] Check whether ECN counts are set in ACK struct before using them.
- [BUGFIX] Calculate TLP timer correctly when only one packet is in flight.
- [BUGFIX] Min RTO delay is 200 milliseconds, not 1 second.
- [BUGFIX] Memory leak in QPACK decoder handler: discard hset when necessary.
- Allow retired and drained CIDs to be reused after a timeout.
2020-11-18 09:05:15 -05:00
Dmitri Tikhonov 2ed07212e5 Release 2.24.3
- [BUGFIX] Get rough RTT estimate on receipt of Handshake packet.
  This prevents BBR on the client from miscalculating pacing rate,
  slowing down sending of ACK packets.
- [BUGFIX] Packets sent during handshake are app-limited.
- [BUGFIX] Bandwidth sampler starts in app-limited mode.
- [BUGFIX] Memory leak: free QPACK handler context in stream dtor.
- Logging improvements.
2020-11-11 07:50:03 -05:00
Dmitri Tikhonov ee4d393028 Release 2.24.2
- [BUGFIX] Allow peer to migrate when its SCID is zero-length.
- [BUGFIX] PADDING size calculation: only one Short packet can be
  coalesced.  (This should have been part of the fix in 2.24.1).
- Abort connect if received NEW_CONNECTION_ID but current DCID is
  zero-length.
- Improve log messages
2020-11-05 11:01:46 -05:00
Dmitri Tikhonov e85d2854d3 Release 2.24.1
- [API] Allow use of ea_get_ssl_ctx() on the client (optional).  PR #186.
- [BUGFIX] Expand datagram with ack-eliciting Initial to 1200 bytes
  after connection promotion.
- [BUGFIX] Discard CRYPTO frames from lower encryption levels after
  connection promotion.
- [BUGFIX] Cancel path response if path could not be initialized.
2020-11-04 10:27:50 -05:00
sumasrao 21bcad8707 Support get_ssl_ctx callback for client 2020-10-28 18:26:57 -05:00
Dmitri Tikhonov 4429f8ea1e Release 2.24.0
- [FEATURE] QUIC and HTTP/3 Internet Draft 31 support.  Drop ID-30
  and ID-31 support.
- [BUGFIX] Divide-by-zero in newly enabled conn stats code when no
  packets were sent.
- [BUGFIX] Memory leak in gQUIC client when server hello cannot be
  parsed.
- [BUGFIX] Server Initial packet size calculation.
- Log user-agent and CONN_CLOSE reason when peer reports error.
- Example programs: Specify ALPN for echo and md5 clients and servers
  (issue #184).
- Example programs: Don't add "QUIC_" prefix to lines in keylog file
  (issue #185).
- http_server: Fix fd leak in preadv mode; fix preadv() usage when
  reading from disk.
2020-10-28 08:10:17 -04:00
Dmitri Tikhonov 758aff32b9 Release 2.23.2
- Add QPACK stats collection and experimentation mode, see the new
  es_qpack_experiment setting.
- Log busy connection stats every second using the new "conn-stats"
  log module.
- Log about skipping only once.
- Update HTTP/3 greased frame type formula.
- Use ls-qpack v2.2.1.
2020-10-21 09:05:26 -04:00