Пример #1
0
 private System.Net.Http.QPack.HeaderField GetHeader(int index)
 {
     try
     {
         return(_s ? H3StaticTable.GetHeaderFieldAt(index) : _dynamicTable[index]);
     }
     catch (IndexOutOfRangeException ex)
     {
         throw new QPackDecodingException("" /*CoreStrings.FormatQPackErrorIndexOutOfRange(index)*/, ex);
     }
 }
Пример #2
0
    private static int EncodeStatusCode(int statusCode, Span <byte> buffer)
    {
        if (H3StaticTable.TryGetStatusIndex(statusCode, out var index))
        {
            QPackEncoder.EncodeStaticIndexedHeaderField(index, buffer, out var bytesWritten);
            return(bytesWritten);
        }
        else
        {
            // https://tools.ietf.org/html/draft-ietf-quic-qpack-21#section-4.5.4
            // Index is 63 - :status
            buffer[0] = 0b01011111;
            buffer[1] = 0b00110000;

            ReadOnlySpan <byte> statusBytes = System.Net.Http.HPack.StatusCodes.ToStatusBytes(statusCode);
            buffer[2] = (byte)statusBytes.Length;
            statusBytes.CopyTo(buffer.Slice(3));

            return(3 + statusBytes.Length);
        }
    }
Пример #3
0
        public void OnStaticIndexedHeader(int index, ReadOnlySpan <byte> value)
        {
            var knownHeader = H3StaticTable.GetHeaderFieldAt(index);

            OnHeader(knownHeader.Name, value);
        }
Пример #4
0
        public void OnStaticIndexedHeader(int index)
        {
            var knownHeader = H3StaticTable.GetHeaderFieldAt(index);

            OnHeader(knownHeader.Name, knownHeader.Value);
        }
Пример #5
0
 public void OnStaticIndexedHeader(int index, ReadOnlySpan <byte> value)
 {
     _headerHandler.DecodedHeaders[((Span <byte>)H3StaticTable.GetHeaderFieldAt(index).Name).GetAsciiStringNonNullCharacters()] = value.GetAsciiOrUTF8StringNonNullCharacters();
 }
Пример #6
0
        public void OnStaticIndexedHeader(int index)
        {
            var knownHeader = H3StaticTable.GetHeaderFieldAt(index);

            _headerHandler.DecodedHeaders[((Span <byte>)knownHeader.Name).GetAsciiStringNonNullCharacters()] = HttpUtilities.GetAsciiOrUTF8StringNonNullCharacters((ReadOnlySpan <byte>)knownHeader.Value);
        }