summaryrefslogtreecommitdiff
path: root/ext/http/00_serve.js
diff options
context:
space:
mode:
Diffstat (limited to 'ext/http/00_serve.js')
-rw-r--r--ext/http/00_serve.js19
1 files changed, 14 insertions, 5 deletions
diff --git a/ext/http/00_serve.js b/ext/http/00_serve.js
index af4353e0e..3447f48e2 100644
--- a/ext/http/00_serve.js
+++ b/ext/http/00_serve.js
@@ -369,6 +369,16 @@ class CallbackContext {
}
}
+class ServeHandlerInfo {
+ #inner = null;
+ constructor(inner) {
+ this.#inner = inner;
+ }
+ get remoteAddr() {
+ return this.#inner.remoteAddr;
+ }
+}
+
function fastSyncResponseOrStream(req, respBody) {
if (respBody === null || respBody === undefined) {
// Don't set the body
@@ -535,11 +545,10 @@ function mapToCallback(context, callback, onError) {
if (hasOneCallback) {
response = await callback(request);
} else {
- response = await callback(request, {
- get remoteAddr() {
- return innerRequest.remoteAddr;
- },
- });
+ response = await callback(
+ request,
+ new ServeHandlerInfo(innerRequest),
+ );
}
} else {
response = await callback();