Commit Graph

3440 Commits

Author SHA1 Message Date
0e02af99f7 Cleanup libwget/streams.c 2024-04-21 19:58:40 +02:00
ed4bc81365 Cleanup libwget/http3.c 2024-04-21 18:08:35 +02:00
bc870d2dbf Removed remaining trailing blank(s) 2024-04-21 17:12:37 +02:00
1b1041acec Removed trailing blank(s) 2024-04-21 17:12:37 +02:00
0ad9bf9160 SPACE-TAB sequence removed 2024-04-21 17:12:37 +02:00
4fb993d40e Conditional directives removed and the buff of context's response made free in wget_http3_get_response 2024-04-21 17:12:37 +02:00
6a50be33aa Progress bar functional while using the --http3-only option [skip ci] 2024-04-21 17:12:37 +02:00
b3e5938f64 Issue related to wget_http3_close resolved [skip ci]
Multiple calls to wget_http3_close happen which resulted in Segmentation Faults
Resolved it by setting downloader->conn to NULL
2024-04-21 17:12:37 +02:00
a478a1478e Changes made as per suggestions [skip ci]
* Changes made to remove all the warnings
2024-04-21 17:12:37 +02:00
8f067bb434 Removed wget_queue completely. [skip ci] 2024-04-21 17:12:37 +02:00
a2cecb3597 Replaced wget_queue with wget_list as suggested [skip ci]
* Removal of wget_queue is pending
2024-04-21 17:12:37 +02:00
c5d133ba9b Reformat libwget/queue.c 2024-04-21 17:12:37 +02:00
398348e11b * libwget/queue.c: Format file to fix indentation 2024-04-21 17:12:37 +02:00
2bd19ddf2a Cleanup libwget/bytes.c code
* include/wget/wget.h: Remove wget_byte_get_struct_size().
* libwget/bytes.c: Remove wget_byte_get_struct_size,
  code cleanup.
* libwget/queue.c: Remove size parameter from wget_queue_enqueue().
* libwget/streams.c (libwget/streams.c): Remove using wget_byte_get_struct_size().
2024-04-21 17:12:37 +02:00
24541ec91a Added libnghttp3 and libngtcp2 with their versions in build requirements of README.md 2024-04-21 17:12:37 +02:00
eaaaa30700 Remove ngtcp2 logs 2024-04-21 17:12:37 +02:00
0562ed57e4 Fix segfault 2024-04-21 17:12:37 +02:00
16960dc837 Makefile.am: Add header file ssl.h 2024-04-21 17:12:37 +02:00
8b4e20828b Undo previous wrong refactoring 2024-04-21 17:12:37 +02:00
b3a27c8ddf Document --http3-only 2024-04-21 17:12:37 +02:00
72e885796a Fix spell 2024-04-21 17:12:37 +02:00
c9f98292dc Remove old examples 2024-04-21 17:12:37 +02:00
ca5a84a5ff Fix compiler warnings & misspellings 2024-04-21 17:12:37 +02:00
1f5b4c7073 Exclude QUIC files from normal build 2024-04-21 17:12:37 +02:00
838df796e1 Fix warnings 2024-04-21 17:12:37 +02:00
cf68e9f153 Guard --http3-only flag 2024-04-21 17:12:37 +02:00
09ff32ca50 Fix syntax errors 2024-04-21 17:12:37 +02:00
ab42cec03d Add empty line 2024-04-21 17:12:37 +02:00
d35a9a27cf Remove unused header file 2024-04-21 17:12:37 +02:00
8b53cc5454 Remove unused header file 2024-04-21 17:12:37 +02:00
31bfdcd68b Add new translatable files 2024-04-21 17:12:36 +02:00
4dc030ff90 Add translated strings 2024-04-21 17:12:36 +02:00
cf4b2e535e Add translated strings 2024-04-21 17:12:36 +02:00
001c63b5e9 quic: increase flow control limits 2024-04-21 17:12:36 +02:00
748c49ed23 fix: read from uninitialized memory 2024-04-21 17:12:36 +02:00
309885e392 fix: Close stream instead of full connection
When we receive a fin flag on a stream, close that individual stream.

Only when the HTTP/3 control stream is closed should the connection be
closed.
2024-04-21 17:12:36 +02:00
4ff78b024f Fix headers loop 2024-04-21 17:12:36 +02:00
4384bb3526 queue: Make sure we don't enqueue null items 2024-04-21 17:12:36 +02:00
b3b24b8054 Fix memory leaks
* libwget/ssl_quic_gnutls.c (wget_ssl_close_quic): new function:
   deinit gnutls_session_t object.
 * libwget/quic.c (quic_stream_mark_acked): free node after dequeue.
   (wget_quic_deinit): deinit gnutls_session_t object.
 * libwget/queue.c (wget_queue_free): remove unused function.
   (wget_queue_free_node): new function: remove a node and its inner
   contents.
   (wget_queue_dequeue_transmitted_node, wget_queue_dequeue_data_node):
   return outer node object, instead of inner data. This makes it easier
   to free the full node & its contents after inspection.
   (wget_queue_enqueue): fix: unnecessary allocation.
 * libwget/http3.c (wget_http3_send_request): fix: free vector after
   use.
   (wget_http3_get_response): free full node after use.
   (wget_http3_get_response_cb): new function.
 * libwget/bytes.c (wget_byte_new): free bytes struct on error.
 * include/wget/wget.h (wget_queue_free): remove unused function.
   (wget_queue_free_node): new function.
   (wget_queue_dequeue_transmitted_node): change return value.
   (wget_queue_dequeue_data_node): change return value.

In addition, create new function wget_queue_free_node.

Introduce a new function that will free the node and its contents all at once.
2024-04-21 17:12:36 +02:00
0feec758da Implement --http3-only
Let wget2 call http3_*-specific functions when passed --http3-only.
2024-04-21 17:12:36 +02:00
106f488e68 QUIC: GnuTLS: set ALPN always 2024-04-21 17:12:36 +02:00
08140a3b2b Add end_headers callback 2024-04-21 17:12:36 +02:00
78f2ef3c92 Read the HTTP/3 response in wget_http3_get_response
Instead of reading it in wget_http3_send_request, we'd rather do it in
wget_http3_get_response. We do this to fit into wget2's flow, where
wget_http_get_response_cb is called to retrieve the response.
2024-04-21 17:12:36 +02:00
ab9afe40e2 Do not pass along "Host" header
Some QUIC servers don't like the old-style "Host" header, because in
HTTP/3 the target hostname should be provided in the :authority header.
2024-04-21 17:12:36 +02:00
2fd585708f Parse HTTP3 headers in recv_header_cb using wget_http_parse_header_line() function [skip ci]
* Implemented http3_stream_context and passed it while sending the request.
2024-04-21 17:12:36 +02:00
63a4c07511 Fix coding style & examples 2024-04-21 17:12:36 +02:00
8e847b4524 Fix code guards: allow compiling without QUIC or HTTP/3 2024-04-21 17:12:36 +02:00
75b4276c70 GnuTLS: Set proper defaults for ALPN 2024-04-21 17:12:36 +02:00
0d9e69a7cc Make write_stream more flexible 2024-04-21 17:12:36 +02:00
9a6aa561b1 Set fin flag on a per-stream basis 2024-04-21 17:12:36 +02:00