/// <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)); }
/// <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)); }
/// <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)); }