Skip to content
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion library/kotlin/io/envoyproxy/envoymobile/HeadersBuilder.kt
Original file line number Diff line number Diff line change
Expand Up @@ -77,5 +77,5 @@ open class HeadersBuilder {
}

private fun isRestrictedHeader(name: String) = name.startsWith(":") ||
name.startsWith("x-envoy-mobile")
name.startsWith("x-envoy-mobile") || name == "host"
}
2 changes: 1 addition & 1 deletion library/swift/HeadersBuilder.swift
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ import Foundation
private let kRestrictedPrefixes = [":", "x-envoy-mobile"]

private func isRestrictedHeader(name: String) -> Bool {
return kRestrictedPrefixes.contains { name.hasPrefix($0) }
return name == "host" || kRestrictedPrefixes.contains { name.hasPrefix($0) }
}

/// Base builder class used to construct `Headers` instances.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -99,10 +99,12 @@ class RequestHeadersBuilderTest {
)
.add(":x-foo", "123")
.add("x-envoy-mobile-foo", "abc")
.add("host", "example.com")
.build()

assertThat(headers.allHeaders()).doesNotContainKey(":x-foo")
assertThat(headers.allHeaders()).doesNotContainKey("x-envoy-mobile-foo")
assertThat(headers.allHeaders()).doesNotContainKey("host")
}

@Test
Expand Down
9 changes: 9 additions & 0 deletions test/swift/HeadersBuilderTests.swift
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,15 @@ final class HeadersBuilderTests: XCTestCase {
XCTAssertEqual(["x-foo": ["abc"]], headers)
}

func testRestrictedHeadersAreNotSettable() {
let builder = RequestHeadersBuilder(method: .get, authority: "example.com", path: "/")
builder.add("host", "example.com")
builder.set(":scheme", "http")
builder.set(":path", "nope")
let headers = builder.build()
XCTAssertEqual([":method": ["get"], ":authority": ["example.com"], ":path": ["/"])
}

func testBuildersAreEqualIfUnderlyingHeadersAreEqual() {
let builder1 = RequestHeadersBuilder(headers: ["x-foo": ["123"], "x-bar": ["abc"]])
let builder2 = RequestHeadersBuilder(headers: ["x-foo": ["123"], "x-bar": ["abc"]])
Expand Down