diff options
author | 2023-08-07 19:32:23 -0700 | |
---|---|---|
committer | 2023-08-07 19:32:23 -0700 | |
commit | 1239c9460ac1d10376e27653b4c34d789f2a8f43 (patch) | |
tree | ba51652fdd36bc07fec7e5744b2c1cddad3e9ab3 /src/bun.js/bindings/webcore/HTTPHeaderMap.h | |
parent | f2f227720b3ffe1797a0a4e500e9a9a639167dc6 (diff) | |
download | bun-1239c9460ac1d10376e27653b4c34d789f2a8f43.tar.gz bun-1239c9460ac1d10376e27653b4c34d789f2a8f43.tar.zst bun-1239c9460ac1d10376e27653b4c34d789f2a8f43.zip |
fix iterating headers with `set-cookie` (#4048)
* fix iterating headers with `set-cookie`
* a test
* move work to `HTTPHeaderMap::set`
* append set-cookie after sort
* remove compare function
Diffstat (limited to 'src/bun.js/bindings/webcore/HTTPHeaderMap.h')
-rw-r--r-- | src/bun.js/bindings/webcore/HTTPHeaderMap.h | 25 |
1 files changed, 2 insertions, 23 deletions
diff --git a/src/bun.js/bindings/webcore/HTTPHeaderMap.h b/src/bun.js/bindings/webcore/HTTPHeaderMap.h index 13fc806cb..42fdbf41a 100644 --- a/src/bun.js/bindings/webcore/HTTPHeaderMap.h +++ b/src/bun.js/bindings/webcore/HTTPHeaderMap.h @@ -69,12 +69,9 @@ public: : m_table(table) , m_commonHeadersIt(commonHeadersIt) , m_uncommonHeadersIt(uncommonHeadersIt) - , m_setCookiesIter(setCookiesIter) { if (!updateKeyValue(m_commonHeadersIt)) { - if (!updateSetCookieHeaderPosition(setCookiesIter)) { - updateKeyValue(m_uncommonHeadersIt); - } + updateKeyValue(m_uncommonHeadersIt); } } @@ -107,9 +104,6 @@ public: if (m_commonHeadersIt != m_table.m_commonHeaders.end()) { if (updateKeyValue(++m_commonHeadersIt)) return *this; - } else if (m_setCookiesIter != m_table.m_setCookieHeaders.end()) { - if (updateSetCookieHeaderPosition(++m_setCookiesIter)) - return *this; } else { ++m_uncommonHeadersIt; } @@ -122,7 +116,7 @@ public: bool operator!=(const HTTPHeaderMapConstIterator &other) const { return !(*this == other); } bool operator==(const HTTPHeaderMapConstIterator &other) const { - return m_commonHeadersIt == other.m_commonHeadersIt && m_uncommonHeadersIt == other.m_uncommonHeadersIt && m_setCookiesIter == other.m_setCookiesIter; + return m_commonHeadersIt == other.m_commonHeadersIt && m_uncommonHeadersIt == other.m_uncommonHeadersIt; } private: @@ -145,22 +139,9 @@ public: return true; } - bool updateSetCookieHeaderPosition(Vector<String, 0>::const_iterator cookieI) - { - if (cookieI == m_table.m_setCookieHeaders.end()) { - return false; - } - - m_keyValue.key = httpHeaderNameString(HTTPHeaderName::SetCookie).toStringWithoutCopying(); - m_keyValue.keyAsHTTPHeaderName = HTTPHeaderName::SetCookie; - m_keyValue.value = *cookieI; - return true; - } - const HTTPHeaderMap &m_table; CommonHeadersVector::const_iterator m_commonHeadersIt; UncommonHeadersVector::const_iterator m_uncommonHeadersIt; - Vector<String, 0>::const_iterator m_setCookiesIter; KeyValue m_keyValue; }; typedef HTTPHeaderMapConstIterator const_iterator; @@ -178,14 +159,12 @@ public: { m_commonHeaders.clear(); m_uncommonHeaders.clear(); - m_setCookieHeaders.clear(); } void shrinkToFit() { m_commonHeaders.shrinkToFit(); m_uncommonHeaders.shrinkToFit(); - m_setCookieHeaders.shrinkToFit(); } WEBCORE_EXPORT String get(const String &name) const; |