annotate src/http/v3/ngx_http_v3_uni.h @ 9045:c6580dce98a8 quic

QUIC: fixed triggering stream read event (ticket #2409). If a client packet carrying a stream data frame is not acked due to packet loss, the stream data is retransmitted later by client. It's also possible that the retransmitted range is bigger than before due to more stream data being available by then. If the original data was read out by the application, there would be no read event triggered by the retransmitted frame, even though it contains new data.
author Roman Arutyunyan <arut@nginx.com>
date Wed, 23 Nov 2022 18:50:26 +0400
parents 18d23ed15eef
children f742b1b46901
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
8773
b43e50f47b2e HTTP/3: separate header files for existing source files.
Roman Arutyunyan <arut@nginx.com>
parents:
diff changeset
1
b43e50f47b2e HTTP/3: separate header files for existing source files.
Roman Arutyunyan <arut@nginx.com>
parents:
diff changeset
2 /*
b43e50f47b2e HTTP/3: separate header files for existing source files.
Roman Arutyunyan <arut@nginx.com>
parents:
diff changeset
3 * Copyright (C) Roman Arutyunyan
b43e50f47b2e HTTP/3: separate header files for existing source files.
Roman Arutyunyan <arut@nginx.com>
parents:
diff changeset
4 * Copyright (C) Nginx, Inc.
b43e50f47b2e HTTP/3: separate header files for existing source files.
Roman Arutyunyan <arut@nginx.com>
parents:
diff changeset
5 */
b43e50f47b2e HTTP/3: separate header files for existing source files.
Roman Arutyunyan <arut@nginx.com>
parents:
diff changeset
6
b43e50f47b2e HTTP/3: separate header files for existing source files.
Roman Arutyunyan <arut@nginx.com>
parents:
diff changeset
7
8925
18d23ed15eef HTTP/3: renamed files.
Roman Arutyunyan <arut@nginx.com>
parents: 8879
diff changeset
8 #ifndef _NGX_HTTP_V3_UNI_H_INCLUDED_
18d23ed15eef HTTP/3: renamed files.
Roman Arutyunyan <arut@nginx.com>
parents: 8879
diff changeset
9 #define _NGX_HTTP_V3_UNI_H_INCLUDED_
8773
b43e50f47b2e HTTP/3: separate header files for existing source files.
Roman Arutyunyan <arut@nginx.com>
parents:
diff changeset
10
b43e50f47b2e HTTP/3: separate header files for existing source files.
Roman Arutyunyan <arut@nginx.com>
parents:
diff changeset
11
b43e50f47b2e HTTP/3: separate header files for existing source files.
Roman Arutyunyan <arut@nginx.com>
parents:
diff changeset
12 #include <ngx_config.h>
b43e50f47b2e HTTP/3: separate header files for existing source files.
Roman Arutyunyan <arut@nginx.com>
parents:
diff changeset
13 #include <ngx_core.h>
b43e50f47b2e HTTP/3: separate header files for existing source files.
Roman Arutyunyan <arut@nginx.com>
parents:
diff changeset
14 #include <ngx_http.h>
b43e50f47b2e HTTP/3: separate header files for existing source files.
Roman Arutyunyan <arut@nginx.com>
parents:
diff changeset
15
b43e50f47b2e HTTP/3: separate header files for existing source files.
Roman Arutyunyan <arut@nginx.com>
parents:
diff changeset
16
b43e50f47b2e HTTP/3: separate header files for existing source files.
Roman Arutyunyan <arut@nginx.com>
parents:
diff changeset
17 void ngx_http_v3_init_uni_stream(ngx_connection_t *c);
b43e50f47b2e HTTP/3: separate header files for existing source files.
Roman Arutyunyan <arut@nginx.com>
parents:
diff changeset
18 ngx_int_t ngx_http_v3_register_uni_stream(ngx_connection_t *c, uint64_t type);
b43e50f47b2e HTTP/3: separate header files for existing source files.
Roman Arutyunyan <arut@nginx.com>
parents:
diff changeset
19
b43e50f47b2e HTTP/3: separate header files for existing source files.
Roman Arutyunyan <arut@nginx.com>
parents:
diff changeset
20 ngx_connection_t *ngx_http_v3_create_push_stream(ngx_connection_t *c,
b43e50f47b2e HTTP/3: separate header files for existing source files.
Roman Arutyunyan <arut@nginx.com>
parents:
diff changeset
21 uint64_t push_id);
b43e50f47b2e HTTP/3: separate header files for existing source files.
Roman Arutyunyan <arut@nginx.com>
parents:
diff changeset
22 ngx_int_t ngx_http_v3_set_max_push_id(ngx_connection_t *c,
b43e50f47b2e HTTP/3: separate header files for existing source files.
Roman Arutyunyan <arut@nginx.com>
parents:
diff changeset
23 uint64_t max_push_id);
8796
1fec68e322d0 HTTP/3: client GOAWAY support.
Roman Arutyunyan <arut@nginx.com>
parents: 8774
diff changeset
24 ngx_int_t ngx_http_v3_goaway(ngx_connection_t *c, uint64_t push_id);
8773
b43e50f47b2e HTTP/3: separate header files for existing source files.
Roman Arutyunyan <arut@nginx.com>
parents:
diff changeset
25 ngx_int_t ngx_http_v3_cancel_push(ngx_connection_t *c, uint64_t push_id);
b43e50f47b2e HTTP/3: separate header files for existing source files.
Roman Arutyunyan <arut@nginx.com>
parents:
diff changeset
26 ngx_int_t ngx_http_v3_cancel_stream(ngx_connection_t *c, ngx_uint_t stream_id);
b43e50f47b2e HTTP/3: separate header files for existing source files.
Roman Arutyunyan <arut@nginx.com>
parents:
diff changeset
27
8774
f4d3f5d93a82 HTTP/3: moved session initialization to a separate file.
Roman Arutyunyan <arut@nginx.com>
parents: 8773
diff changeset
28 ngx_int_t ngx_http_v3_send_settings(ngx_connection_t *c);
8773
b43e50f47b2e HTTP/3: separate header files for existing source files.
Roman Arutyunyan <arut@nginx.com>
parents:
diff changeset
29 ngx_int_t ngx_http_v3_send_goaway(ngx_connection_t *c, uint64_t id);
8807
0ac25efb2da3 HTTP/3: quic-qpack term updates.
Sergey Kandaurov <pluknet@nginx.com>
parents: 8796
diff changeset
30 ngx_int_t ngx_http_v3_send_ack_section(ngx_connection_t *c,
8773
b43e50f47b2e HTTP/3: separate header files for existing source files.
Roman Arutyunyan <arut@nginx.com>
parents:
diff changeset
31 ngx_uint_t stream_id);
b43e50f47b2e HTTP/3: separate header files for existing source files.
Roman Arutyunyan <arut@nginx.com>
parents:
diff changeset
32 ngx_int_t ngx_http_v3_send_cancel_stream(ngx_connection_t *c,
b43e50f47b2e HTTP/3: separate header files for existing source files.
Roman Arutyunyan <arut@nginx.com>
parents:
diff changeset
33 ngx_uint_t stream_id);
b43e50f47b2e HTTP/3: separate header files for existing source files.
Roman Arutyunyan <arut@nginx.com>
parents:
diff changeset
34 ngx_int_t ngx_http_v3_send_inc_insert_count(ngx_connection_t *c,
b43e50f47b2e HTTP/3: separate header files for existing source files.
Roman Arutyunyan <arut@nginx.com>
parents:
diff changeset
35 ngx_uint_t inc);
b43e50f47b2e HTTP/3: separate header files for existing source files.
Roman Arutyunyan <arut@nginx.com>
parents:
diff changeset
36
b43e50f47b2e HTTP/3: separate header files for existing source files.
Roman Arutyunyan <arut@nginx.com>
parents:
diff changeset
37
8925
18d23ed15eef HTTP/3: renamed files.
Roman Arutyunyan <arut@nginx.com>
parents: 8879
diff changeset
38 #endif /* _NGX_HTTP_V3_UNI_H_INCLUDED_ */