annotate src/core/ngx_md5.h @ 8027:bce9e9643444 quic

QUIC: coalesce neighbouring stream send buffers. Previously a single STREAM frame was created for each buffer in stream output chain which is wasteful with respect to memory. The following changes were made in the stream send code: - ngx_quic_stream_send_chain() no longer calls ngx_quic_stream_send() and got a separate implementation that coalesces neighbouring buffers into a single frame - the new ngx_quic_stream_send_chain() respects the limit argument, which fixes sendfile_max_chunk and limit_rate - ngx_quic_stream_send() is reimplemented to call ngx_quic_stream_send_chain() - stream frame size limit is moved out to a separate function ngx_quic_max_stream_frame() - flow control is moved out to a separate function ngx_quic_max_stream_flow() - ngx_quic_stream_send_chain() is relocated next to ngx_quic_stream_send()
author Roman Arutyunyan <arut@nginx.com>
date Tue, 18 Aug 2020 12:28:33 +0300
parents 9eefb38f0005
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
1572
a3c0b8dadc16 ngx_md5.h
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
1
a3c0b8dadc16 ngx_md5.h
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
2 /*
a3c0b8dadc16 ngx_md5.h
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
3 * Copyright (C) Igor Sysoev
4412
d620f497c50f Copyright updated.
Maxim Konovalov <maxim@nginx.com>
parents: 3927
diff changeset
4 * Copyright (C) Nginx, Inc.
1572
a3c0b8dadc16 ngx_md5.h
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
5 */
a3c0b8dadc16 ngx_md5.h
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
6
a3c0b8dadc16 ngx_md5.h
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
7
a3c0b8dadc16 ngx_md5.h
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
8 #ifndef _NGX_MD5_H_INCLUDED_
a3c0b8dadc16 ngx_md5.h
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
9 #define _NGX_MD5_H_INCLUDED_
a3c0b8dadc16 ngx_md5.h
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
10
a3c0b8dadc16 ngx_md5.h
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
11
a3c0b8dadc16 ngx_md5.h
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
12 #include <ngx_config.h>
a3c0b8dadc16 ngx_md5.h
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
13 #include <ngx_core.h>
a3c0b8dadc16 ngx_md5.h
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
14
a3c0b8dadc16 ngx_md5.h
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
15
3895
b659514a3948 an internal MD5 implemenation
Igor Sysoev <igor@sysoev.ru>
parents: 1598
diff changeset
16 typedef struct {
b659514a3948 an internal MD5 implemenation
Igor Sysoev <igor@sysoev.ru>
parents: 1598
diff changeset
17 uint64_t bytes;
b659514a3948 an internal MD5 implemenation
Igor Sysoev <igor@sysoev.ru>
parents: 1598
diff changeset
18 uint32_t a, b, c, d;
b659514a3948 an internal MD5 implemenation
Igor Sysoev <igor@sysoev.ru>
parents: 1598
diff changeset
19 u_char buffer[64];
b659514a3948 an internal MD5 implemenation
Igor Sysoev <igor@sysoev.ru>
parents: 1598
diff changeset
20 } ngx_md5_t;
b659514a3948 an internal MD5 implemenation
Igor Sysoev <igor@sysoev.ru>
parents: 1598
diff changeset
21
b659514a3948 an internal MD5 implemenation
Igor Sysoev <igor@sysoev.ru>
parents: 1598
diff changeset
22
b659514a3948 an internal MD5 implemenation
Igor Sysoev <igor@sysoev.ru>
parents: 1598
diff changeset
23 void ngx_md5_init(ngx_md5_t *ctx);
3927
38e6f45c5e3d make built-in ngx_md5_update() interface consistent with other implemenations
Igor Sysoev <igor@sysoev.ru>
parents: 3895
diff changeset
24 void ngx_md5_update(ngx_md5_t *ctx, const void *data, size_t size);
3895
b659514a3948 an internal MD5 implemenation
Igor Sysoev <igor@sysoev.ru>
parents: 1598
diff changeset
25 void ngx_md5_final(u_char result[16], ngx_md5_t *ctx);
b659514a3948 an internal MD5 implemenation
Igor Sysoev <igor@sysoev.ru>
parents: 1598
diff changeset
26
b659514a3948 an internal MD5 implemenation
Igor Sysoev <igor@sysoev.ru>
parents: 1598
diff changeset
27
1572
a3c0b8dadc16 ngx_md5.h
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
28 #endif /* _NGX_MD5_H_INCLUDED_ */