* 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.
* wget_http3_get_response returns the data that the http3 client stream has read
* all fprintf converted into debug_printf and error_printf
* fixed issues mentioned in the thread
* implementated very basic callback functions for http3
* implemented wget_http3_send_request to create a http3 requests
* reimplemented the internal working of wget_queue_peak_untransmitted
* example code for sending http3 request implemented
* Added a bool in wget_byte struct named transmitted
* Implemented function wget_queue_peak_untransmitted_data
* This function will return first untransmitted byte
* Implemented wget_http3_deinit
* created http3.c and http3.h and implemented wget_http3_connection_st
* implemented http3 initialisation function to intialise the http3_connection struct
* shifted stream functions to a seperate stream.c file
* quic_write_read.c file created to demonstrate the working of wget_quic_read
and wget_quic_write hand in hand while configuring it to the QUIC ECHO server
* quic_write.c file created to make provide a example of write.
* A sample string initially pushed into the stream and then the stream
structure further utilised for sending the data over socket.
* Simplified the implementation of wget_quic_connect() and wget_ssl_quic_connect()
* Segregated the function wget_quic_connect into wget_quic_connect and wget_quic_handshake
* Restored signatures of wget_ssl_open and wget_ssl_init and created new functions for quic related SSL set up.
* Moved all the quic related file to a new file named quic.c from net.c
* net.c : wget_quic_connect edited to use DNS for resolving
* dns.c : resolve and wget_dns_resolve edited to resolve for SOCK_DGRAM as well as SOCK_STREAM
*net.c : wget_quic_connet function implemented
*ssl_gnutls.c : wget_ssl_quic_open and wget_ssl_quic_open functions implemented
*queue.c: Implementation of queue using linked list
* libwget/http.c: Add function wget_http_cidr_match to support
CIDR IP method for no_proxy
* unit-tests/test.c: Add testcases to verify the functionality
of the above function
Fixes#615