]> git.ipfire.org Git - thirdparty/haproxy.git/commitdiff
MINOR: quic: Add quic_max_int_by_size() function
authorFrédéric Lécaille <flecaille@haproxy.com>
Fri, 4 Mar 2022 14:38:51 +0000 (15:38 +0100)
committerAmaury Denoyelle <adenoyelle@haproxy.com>
Fri, 4 Mar 2022 16:47:32 +0000 (17:47 +0100)
This function returns the maximum integer which may be encoded with a number of
bytes passed as parameter. Useful to precisely compute the number of bytes which
may used to fulfill a buffer with lengths as QUIC enteger encoded prefixes for the
number of following bytes.

include/haproxy/quic_enc.h

index fad6964834a1634524a3a2153dc0e211341321a7..6f12ac3648e7243b88f6a60be96886ba788bf185 100644 (file)
@@ -88,6 +88,23 @@ static inline size_t quic_int_getsize(uint64_t val)
        }
 }
 
+/* Returns the maximum integer which may be encoded with <size> bytes */
+static inline size_t quic_max_int_by_size(int size)
+{
+       switch (size) {
+       case 1:
+               return QUIC_VARINT_1_BYTE_MAX;
+       case 2:
+               return QUIC_VARINT_2_BYTE_MAX;
+       case 4:
+               return QUIC_VARINT_4_BYTE_MAX;
+       case 8:
+               return QUIC_VARINT_8_BYTE_MAX;
+       default:
+               return 0;
+       }
+}
+
 /* Decode a QUIC variable-length integer from <buf> buffer into <val>.
  * Note that the result is a 64-bits integer but with the less significant
  * 62 bits as relevant information. The most significant 2 remaining bits encode