Skip to content

Commit 628505e

Browse files
committed
Remove additional header checks
The additional header checks were added previously while investigating another issue, but the issue has been since resolved. The additional checks were left in place to ensure the issue did not reoccur but we've had zero hits since. They can be safely removed now.
1 parent 8baaa31 commit 628505e

File tree

6 files changed

+0
-18
lines changed

6 files changed

+0
-18
lines changed

src/workerd/api/http.c++

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -163,8 +163,6 @@ Headers::Headers(jsg::Lock& js, const Headers& other): guard(Guard::NONE) {
163163
}
164164

165165
Headers::Headers(jsg::Lock& js, const kj::HttpHeaders& other, Guard guard): guard(Guard::NONE) {
166-
// TODO(soon): Remove this. Throw if the any header values are invalid.
167-
throwIfInvalidHeaderValue(other);
168166
other.forEach([this, &js](auto name, auto value) {
169167
append(js, jsg::ByteString(kj::str(name)), jsg::ByteString(kj::str(value)));
170168
});

src/workerd/io/worker-entrypoint.c++

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -248,7 +248,6 @@ kj::Promise<void> WorkerEntrypoint::request(kj::HttpMethod method,
248248
const kj::HttpHeaders& headers,
249249
kj::AsyncInputStream& requestBody,
250250
Response& response) {
251-
throwIfInvalidHeaderValue(headers);
252251
TRACE_EVENT("workerd", "WorkerEntrypoint::request()", "url", url.cStr(),
253252
PERFETTO_FLOW_FROM_POINTER(this));
254253
auto incomingRequest =

src/workerd/io/worker-interface.c++

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -27,12 +27,10 @@ class PromisedWorkerInterface final: public WorkerInterface {
2727
const kj::HttpHeaders& headers,
2828
kj::AsyncInputStream& requestBody,
2929
Response& response) override {
30-
throwIfInvalidHeaderValue(headers);
3130
KJ_IF_SOME(w, worker) {
3231
co_await w->request(method, url, headers, requestBody, response);
3332
} else {
3433
co_await promise;
35-
throwIfInvalidHeaderValue(headers);
3634
co_await KJ_ASSERT_NONNULL(worker)->request(method, url, headers, requestBody, response);
3735
}
3836
}
@@ -257,7 +255,6 @@ kj::Promise<void> RevocableWebSocketWorkerInterface::request(kj::HttpMethod meth
257255
kj::AsyncInputStream& requestBody,
258256
kj::HttpService::Response& response) {
259257
auto wrappedResponse = kj::heap<RevocableWebSocketHttpResponse>(response, revokeProm.addBranch());
260-
throwIfInvalidHeaderValue(headers);
261258
return worker.request(method, url, headers, requestBody, *wrappedResponse)
262259
.attach(kj::mv(wrappedResponse));
263260
}
@@ -369,7 +366,6 @@ kj::Promise<void> RpcWorkerInterface::request(kj::HttpMethod method,
369366
const kj::HttpHeaders& headers,
370367
kj::AsyncInputStream& requestBody,
371368
Response& response) {
372-
throwIfInvalidHeaderValue(headers);
373369
auto inner = httpOverCapnpFactory.capnpToKj(dispatcher.getHttpServiceRequest().send().getHttp());
374370
auto promise = inner->request(method, url, headers, requestBody, response);
375371
return promise.attach(kj::mv(inner));

src/workerd/io/worker-interface.h

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -186,13 +186,11 @@ class LazyWorkerInterface final: public WorkerInterface {
186186
const kj::HttpHeaders& headers,
187187
kj::AsyncInputStream& requestBody,
188188
Response& response) override {
189-
throwIfInvalidHeaderValue(headers);
190189
ensureResolve();
191190
KJ_IF_SOME(w, worker) {
192191
co_await w->request(method, url, headers, requestBody, response);
193192
} else {
194193
co_await KJ_ASSERT_NONNULL(promise);
195-
throwIfInvalidHeaderValue(headers);
196194
co_await KJ_ASSERT_NONNULL(worker)->request(method, url, headers, requestBody, response);
197195
}
198196
}

src/workerd/io/worker.c++

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4312,7 +4312,6 @@ kj::Promise<void> Worker::Isolate::SubrequestClient::request(kj::HttpMethod meth
43124312
const kj::HttpHeaders& headers,
43134313
kj::AsyncInputStream& requestBody,
43144314
kj::HttpService::Response& response) {
4315-
throwIfInvalidHeaderValue(headers);
43164315
using InspectorLock = InspectorChannelImpl::InspectorLock;
43174316

43184317
auto signalRequest = [this, method, urlCopy = kj::str(url),
@@ -4501,7 +4500,6 @@ kj::Promise<void> Worker::Isolate::SubrequestClient::request(kj::HttpMethod meth
45014500

45024501
// While we checked above that the headers are valid, let's check again
45034502
// after the co_await...
4504-
throwIfInvalidHeaderValue(headers);
45054503
KJ_IF_SOME(rid, maybeRequestId) {
45064504
ResponseWrapper wrapper(response, kj::mv(rid), kj::mv(signalResponse));
45074505
co_await inner->request(method, url, headers, requestBody, wrapper);

src/workerd/util/http-util.h

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -67,11 +67,4 @@ class SimpleResponseObserver final: public kj::HttpService::Response {
6767
kj::uint* statusCode;
6868
};
6969

70-
inline void throwIfInvalidHeaderValue(const kj::HttpHeaders& headers) {
71-
headers.forEach([](kj::StringPtr name, kj::StringPtr value) {
72-
KJ_REQUIRE(kj::HttpHeaders::isValidHeaderValue(value),
73-
"Invalid header value received from request", name, value.asBytes());
74-
});
75-
};
76-
7770
} // namespace workerd

0 commit comments

Comments
 (0)