mirror of
				https://gitea.invidious.io/iv-org/litespeed-quic.git
				synced 2024-08-15 00:53:43 +00:00 
			
		
		
		
	Release 2.15.0
- [FEATURE] QUIC and HTTP/3 Internet Draft 28 support. - [BUGFIX] Ignore Retry packets after other packets are decrypted successfully. - [BUGFIX] Transport parameter decoding: CID no longer has 4-byte length minimum. - http_client: fix and optimize lsxpack_header allocator. - Drop support for Internet Draft 25.
This commit is contained in:
		
							parent
							
								
									4d221313f7
								
							
						
					
					
						commit
						fb73393fef
					
				
					 33 changed files with 1124 additions and 631 deletions
				
			
		| 
						 | 
				
			
			@ -220,6 +220,7 @@ struct lsquic_conn_ctx {
 | 
			
		|||
struct hset_elem
 | 
			
		||||
{
 | 
			
		||||
    STAILQ_ENTRY(hset_elem)     next;
 | 
			
		||||
    size_t                      nalloc;
 | 
			
		||||
    struct lsxpack_header       xhdr;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -999,16 +1000,19 @@ hset_prepare_decode (void *hset_p, struct lsxpack_header *xhdr,
 | 
			
		|||
        }
 | 
			
		||||
        STAILQ_INSERT_TAIL(hset, el, next);
 | 
			
		||||
        lsxpack_header_prepare_decode(&el->xhdr, buf, 0, req_space);
 | 
			
		||||
        el->nalloc = req_space;
 | 
			
		||||
    }
 | 
			
		||||
    else
 | 
			
		||||
    {
 | 
			
		||||
        el = (struct hset_elem *) ((char *) xhdr
 | 
			
		||||
                                        - offsetof(struct hset_elem, xhdr));
 | 
			
		||||
        if (req_space <= xhdr->val_len)
 | 
			
		||||
        if (req_space <= el->nalloc)
 | 
			
		||||
        {
 | 
			
		||||
            LSQ_ERROR("requested space is smaller than already allocated");
 | 
			
		||||
            return NULL;
 | 
			
		||||
        }
 | 
			
		||||
        if (req_space < el->nalloc * 2)
 | 
			
		||||
            req_space = el->nalloc * 2;
 | 
			
		||||
        buf = realloc(el->xhdr.buf, req_space);
 | 
			
		||||
        if (!buf)
 | 
			
		||||
        {
 | 
			
		||||
| 
						 | 
				
			
			@ -1017,6 +1021,7 @@ hset_prepare_decode (void *hset_p, struct lsxpack_header *xhdr,
 | 
			
		|||
        }
 | 
			
		||||
        el->xhdr.buf = buf;
 | 
			
		||||
        el->xhdr.val_len = req_space;
 | 
			
		||||
        el->nalloc = req_space;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    return &el->xhdr;
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -21,7 +21,7 @@ static int
 | 
			
		|||
select_alpn (SSL *ssl, const unsigned char **out, unsigned char *outlen,
 | 
			
		||||
                    const unsigned char *in, unsigned int inlen, void *arg)
 | 
			
		||||
{
 | 
			
		||||
    const unsigned char alpn[] = "\x5h3-25\x5h3-27";
 | 
			
		||||
    const unsigned char alpn[] = "\x5h3-27\x5h3-28";
 | 
			
		||||
    int r;
 | 
			
		||||
 | 
			
		||||
    r = SSL_select_next_proto((unsigned char **) out, outlen, in, inlen,
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1915,11 +1915,6 @@ set_engine_option (struct lsquic_engine_settings *settings,
 | 
			
		|||
            settings->es_qpack_dec_max_size = atoi(val);
 | 
			
		||||
            return 0;
 | 
			
		||||
        }
 | 
			
		||||
        if (0 == strncmp(name, "max_packet_size_rx", 18))
 | 
			
		||||
        {
 | 
			
		||||
            settings->es_max_packet_size_rx = atoi(val);
 | 
			
		||||
            return 0;
 | 
			
		||||
        }
 | 
			
		||||
        break;
 | 
			
		||||
    case 20:
 | 
			
		||||
        if (0 == strncmp(name, "max_header_list_size", 20))
 | 
			
		||||
| 
						 | 
				
			
			@ -1945,6 +1940,13 @@ set_engine_option (struct lsquic_engine_settings *settings,
 | 
			
		|||
            return 0;
 | 
			
		||||
        }
 | 
			
		||||
        break;
 | 
			
		||||
    case 23:
 | 
			
		||||
        if (0 == strncmp(name, "max_udp_payload_size_rx", 18))
 | 
			
		||||
        {
 | 
			
		||||
            settings->es_max_udp_payload_size_rx = atoi(val);
 | 
			
		||||
            return 0;
 | 
			
		||||
        }
 | 
			
		||||
        break;
 | 
			
		||||
    case 24:
 | 
			
		||||
        if (0 == strncmp(name, "init_max_stream_data_uni", 24))
 | 
			
		||||
        {
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue