コード例 #1
0
        /// <summary>
        /// Returns the lowest index value for the header field name in the dynamic table.
        /// Returns -1 if the header field name is not in the dynamic table.
        /// </summary>
        /// <returns>The index.</returns>
        /// <param name="name">Name.</param>
        private int getIndex(string name)
        {
            if (length() == 0 || name == null)
            {
                return(-1);
            }

            int h     = hash(name);
            int i     = Encoder.index(h);
            int index = -1;

            for (var e = headerFields[i]; e != null; e = e.Next)
            {
                if (e.Hash == h && name.Equals(e.Name, StringComparison.OrdinalIgnoreCase))
                {
                    index = e.Index;
                    break;
                }
            }

            return(getIndex(index));
        }
コード例 #2
0
ファイル: Encoder.cs プロジェクト: xsname/Titanium-Web-Proxy
        /// <summary>
        /// Returns the lowest index value for the header field name in the dynamic table.
        /// Returns -1 if the header field name is not in the dynamic table.
        /// </summary>
        /// <returns>The index.</returns>
        /// <param name="name">Name.</param>
        private int getIndex(ByteString name)
        {
            if (length() == 0 || name.Length == 0)
            {
                return(-1);
            }

            int h     = hash(name);
            int i     = Encoder.index(h);
            int index = -1;

            for (HeaderEntry?e = headerFields[i]; e != null; e = e.Next)
            {
                if (e.Hash == h && name.Equals(e.NameData))
                {
                    index = e.Index;
                    break;
                }
            }

            return(getIndex(index));
        }
コード例 #3
0
        /// <summary>
        /// Returns the lowest index value for the header field name in the dynamic table.
        /// Returns -1 if the header field name is not in the dynamic table.
        /// </summary>
        /// <returns>The index.</returns>
        /// <param name="name">Name.</param>
        private int getIndex(string name)
        {
            if (length() == 0 || name == null)
            {
                return(-1);
            }

            int h     = hash(name);
            int i     = Encoder.index(h);
            int index = -1;

            for (var e = headerFields[i]; e != null; e = e.Next)
            {
                if (e.Hash == h && HpackUtil.Equals(name, e.Name))
                {
                    index = e.Index;
                    break;
                }
            }

            return(getIndex(index));
        }