comparison src/http/v3/ngx_http_v3.c @ 8349:b13176e717ba quic

HTTP/3: fixed encoding variable-length integers.
author Roman Arutyunyan <arut@nginx.com>
date Tue, 21 Apr 2020 17:11:49 +0300
parents 268f4389130d
children b0e81f49d7c0
comparison
equal deleted inserted replaced
8348:d42b50d239f4 8349:b13176e717ba
32 return (uintptr_t) p; 32 return (uintptr_t) p;
33 } 33 }
34 34
35 if (value <= 1073741823) { 35 if (value <= 1073741823) {
36 if (p == NULL) { 36 if (p == NULL) {
37 return 3; 37 return 4;
38 } 38 }
39 39
40 *p++ = 0x80 | (value >> 16); 40 *p++ = 0x80 | (value >> 24);
41 *p++ = (value >> 16);
41 *p++ = (value >> 8); 42 *p++ = (value >> 8);
42 *p++ = value; 43 *p++ = value;
43 return (uintptr_t) p; 44 return (uintptr_t) p;
44
45 } 45 }
46 46
47 if (p == NULL) { 47 if (p == NULL) {
48 return 4; 48 return 8;
49 } 49 }
50 50
51 *p++ = 0xc0 | (value >> 24); 51 *p++ = 0xc0 | (value >> 56);
52 *p++ = (value >> 48);
53 *p++ = (value >> 40);
54 *p++ = (value >> 32);
55 *p++ = (value >> 24);
52 *p++ = (value >> 16); 56 *p++ = (value >> 16);
53 *p++ = (value >> 8); 57 *p++ = (value >> 8);
54 *p++ = value; 58 *p++ = value;
55 return (uintptr_t) p; 59 return (uintptr_t) p;
56 } 60 }