Mercurial > hg > nginx
comparison src/event/ngx_event_quic_transport.c @ 8285:f85749b60e58 quic
Removed memory allocations from encryption code.
+ ngx_quic_encrypt():
- no longer accepts pool as argument
- pkt is 1st arg
- payload is passed as pkt->payload
- performs encryption to the specified static buffer
+ ngx_quic_create_long/short_packet() functions:
- single buffer for everything, allocated by caller
- buffer layout is: [ ad | payload | TAG ]
the result is in the beginning of buffer with proper length
- nonce is calculated on stack
- log is passed explicitly, pkt is 1st arg
- no more allocations inside
+ ngx_quic_create_long_header():
- args changed: no need to pass str_t
+ added ngx_quic_create_short_header()
author | Vladimir Homutov <vl@nginx.com> |
---|---|
date | Thu, 26 Mar 2020 12:11:50 +0300 |
parents | 50db7ce374b7 |
children | dc7ac778aafe |
comparison
equal
deleted
inserted
replaced
8284:2935a11c55b6 | 8285:f85749b60e58 |
---|---|
339 return NGX_OK; | 339 return NGX_OK; |
340 } | 340 } |
341 | 341 |
342 | 342 |
343 size_t | 343 size_t |
344 ngx_quic_create_long_header(ngx_quic_header_t *pkt, ngx_str_t *out, | 344 ngx_quic_create_long_header(ngx_quic_header_t *pkt, u_char *out, |
345 size_t pkt_len, u_char **pnp) | 345 size_t pkt_len, u_char **pnp) |
346 { | 346 { |
347 u_char *p, *start; | 347 u_char *p, *start; |
348 | 348 |
349 p = start = out->data; | 349 p = start = out; |
350 | 350 |
351 *p++ = pkt->flags; | 351 *p++ = pkt->flags; |
352 | 352 |
353 p = ngx_quic_write_uint32(p, NGX_QUIC_VERSION); | 353 p = ngx_quic_write_uint32(p, NGX_QUIC_VERSION); |
354 | 354 |
365 ngx_quic_build_int(&p, pkt_len + 1); // length (inc. pnl) | 365 ngx_quic_build_int(&p, pkt_len + 1); // length (inc. pnl) |
366 | 366 |
367 *pnp = p; | 367 *pnp = p; |
368 | 368 |
369 *p++ = (uint64_t) (*pkt->number); | 369 *p++ = (uint64_t) (*pkt->number); |
370 | |
371 return p - start; | |
372 } | |
373 | |
374 | |
375 size_t | |
376 ngx_quic_create_short_header(ngx_quic_header_t *pkt, u_char *out, | |
377 size_t pkt_len, u_char **pnp) | |
378 { | |
379 u_char *p, *start; | |
380 | |
381 p = start = out; | |
382 | |
383 *p++ = 0x40; | |
384 | |
385 p = ngx_cpymem(p, pkt->scid.data, pkt->scid.len); | |
386 | |
387 *pnp = p; | |
388 | |
389 *p++ = (*pkt->number); | |
370 | 390 |
371 return p - start; | 391 return p - start; |
372 } | 392 } |
373 | 393 |
374 | 394 |