SIGN IN SIGN UP
denoland / deno UNCLAIMED

A modern runtime for JavaScript and TypeScript.

0 0 16 Rust

feat(ext/node): support DENO_SERVE_ADDRESS override in node:http servers (#34662)

The top-level `Deno.serve()` already honors the process-wide
`DENO_SERVE_ADDRESS` override, but node:http servers ignored it, so an
application using the Node compatibility layer could not be
transparently rebound to a unix/vsock/tunnel control plane the way native Deno servers
can. This matters for environments like Deno Deploy and the desktop
runtime where the serve address is injected via the environment.

This adds a `listen()` override on `http.Server` and `https.Server` that
consumes the same override the first time a server binds. TCP overrides
rewrite the listen address in place. For unix/vsock/tunnel overrides the
server either listens on the override address only (default) or on both
the app-supplied address and the override (`duplicate`). Non-TCP
override connections are wrapped in a lightweight Duplex around `Deno.Conn` and
fed into the normal connection listener, so the llhttp parser and the rest
of the node:http pipeline handle them exactly like a native TCP connection.
B
Bartek Iwańczuk committed
7ab8ca98b8689d38c2a57c0a6234025dd2919ac6
Parent: 5fc1a60
Committed by GitHub <noreply@github.com> on 6/1/2026, 12:53:49 PM