Skip to content

Commit

Permalink
Change dev registry and inspector server to use 127.0.0.1 instead of …
Browse files Browse the repository at this point in the history
…all interfaces
  • Loading branch information
jspspike committed Nov 14, 2023
1 parent be36619 commit ea22145
Show file tree
Hide file tree
Showing 4 changed files with 26 additions and 14 deletions.
5 changes: 5 additions & 0 deletions .changeset/warm-dryers-double.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
"wrangler": patch
---

Change dev registry and inspector server to listen on 127.0.0.1 instead of all interfaces
6 changes: 3 additions & 3 deletions packages/wrangler/src/__tests__/unstableDev.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ describe("unstable devRegistry testing", () => {
mode: "local",
durableObjects: [{ name: "testing", className: "testing" }],
});
const resp = await fetch("http://localhost:6284/workers");
const resp = await fetch("http://127.0.0.1:6284/workers");
if (resp) {
const parsedResp = (await resp.json()) as {
test: unknown;
Expand All @@ -35,7 +35,7 @@ describe("unstable devRegistry testing", () => {
it("should not restart the devRegistry if the devRegistry already start", async () => {
await startWorkerRegistry();

await fetch("http://localhost:6284/workers/init", {
await fetch("http://127.0.0.1:6284/workers/init", {
method: "POST",
body: JSON.stringify({}),
});
Expand All @@ -48,7 +48,7 @@ describe("unstable devRegistry testing", () => {
durableObjects: [{ name: "testing", className: "testing" }],
});

const resp = await fetch("http://localhost:6284/workers");
const resp = await fetch("http://127.0.0.1:6284/workers");
if (resp) {
const parsedResp = (await resp.json()) as {
test: unknown;
Expand Down
14 changes: 7 additions & 7 deletions packages/wrangler/src/dev-registry.ts
Original file line number Diff line number Diff line change
@@ -1,17 +1,17 @@
import http from "http";
import net from "net";
import { createServer } from "node:http";
import bodyParser from "body-parser";
import express from "express";
import { createHttpTerminator } from "http-terminator";
import { fetch } from "undici";
import { logger } from "./logger";

import type { Config } from "./config";
import type { Server } from "http";
import type { HttpTerminator } from "http-terminator";
import type { Server } from "node:http";

const DEV_REGISTRY_PORT = "6284";
const DEV_REGISTRY_HOST = `http://localhost:${DEV_REGISTRY_PORT}`;
const DEV_REGISTRY_PORT = 6284;
const DEV_REGISTRY_HOST = `http://127.0.0.1:${DEV_REGISTRY_PORT}`;

let server: Server | null;
let terminator: HttpTerminator;
Expand Down Expand Up @@ -48,7 +48,7 @@ async function isPortAvailable() {
netServer.close();
resolve(true);
});
netServer.listen(DEV_REGISTRY_PORT);
netServer.listen(DEV_REGISTRY_PORT, "127.0.0.1");
});
}

Expand Down Expand Up @@ -80,9 +80,9 @@ export async function startWorkerRegistry() {
workers = {};
res.json(null);
});
server = http.createServer(app);
server = createServer(app);
terminator = createHttpTerminator({ server });
server.listen(DEV_REGISTRY_PORT);
server.listen(DEV_REGISTRY_PORT, "127.0.0.1");

/**
* The registry server may have already been started by another wrangler process.
Expand Down
15 changes: 11 additions & 4 deletions packages/wrangler/src/dev/inspect.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ import { readFileSync } from "fs";
import assert from "node:assert";
import crypto from "node:crypto";
import { createServer } from "node:http";
import { createHttpTerminator } from "http-terminator";

Check failure on line 5 in packages/wrangler/src/dev/inspect.ts

View workflow job for this annotation

GitHub Actions / Checks

`http-terminator` import should occur after import of `node:url`
import os from "node:os";
import path from "node:path";
import { URL, fileURLToPath, pathToFileURL } from "node:url";
Expand Down Expand Up @@ -125,7 +126,7 @@ export default function useInspector(props: InspectorProps) {
case "/json/list":
{
res.setHeader("Content-Type", "application/json");
const localHost = `localhost:${props.port}/ws`;
const localHost = `127.0.0.1:${props.port}/ws`;
const devtoolsFrontendUrl = `devtools://devtools/bundled/js_app.html?experiments=true&v8only=true&ws=${localHost}`;
const devtoolsFrontendUrlCompat = `devtools://devtools/bundled/inspector.html?experiments=true&v8only=true&ws=${localHost}`;
res.end(
Expand Down Expand Up @@ -252,19 +253,25 @@ export default function useInspector(props: InspectorProps) {
timeout: 2000,
abortSignal: abortController.signal,
});
server.listen(props.port);
server.listen(props.port, "127.0.0.1");
}
startInspectorProxy().catch((err) => {
if ((err as { code: string }).code !== "ABORT_ERR") {
logger.error("Failed to start inspector:", err);
}
});
return () => {
server.close();
//server.close();
// Also disconnect any open websockets/devtools connections
wsServer.clients.forEach((ws) => ws.close());
wsServer.close();
abortController.abort();
createHttpTerminator({
server,
gracefulTerminationTimeout: 0,
})
.terminate()
.catch(() => logger.error("Failed to terminate the inspector server."));
};
}, [props.port, server, wsServer]);

Expand Down Expand Up @@ -862,7 +869,7 @@ export const openInspector = async (
) => {
const query = new URLSearchParams();
query.set("theme", "systemPreferred");
query.set("ws", `localhost:${inspectorPort}/ws`);
query.set("ws", `127.0.0.1:${inspectorPort}/ws`);
if (worker) query.set("domain", worker);
query.set("debugger", "true");
const url = `https://devtools.devprod.cloudflare.dev/js_app?${query.toString()}`;
Expand Down

0 comments on commit ea22145

Please sign in to comment.