From 68f49c028ae164c4b1ae8ec37cfe7d6198614da4 Mon Sep 17 00:00:00 2001 From: Claude Date: Wed, 6 May 2026 23:01:21 +0000 Subject: [PATCH] fix(quic-interop): smoke target uses picoquic IP directly (macOS DNS) Even with /setup.sh skipped, the base image (martenseemann/quic-network-simulator-endpoint) ships a /etc/resolv.conf primed for the runner's sim that breaks Docker bridge name resolution inside the JVM on macOS. Bypass DNS entirely: docker inspect the picoquic container's IP and pass it directly via REQUESTS. https://claude.ai/code/session_01HcvfQq1ttPV9PkRoJb4nyT --- quic/interop/Makefile | 25 +++++++++++++++---------- 1 file changed, 15 insertions(+), 10 deletions(-) diff --git a/quic/interop/Makefile b/quic/interop/Makefile index 5e7f97ae6..264458a47 100644 --- a/quic/interop/Makefile +++ b/quic/interop/Makefile @@ -28,21 +28,26 @@ docker: dist # Stand up picoquic + our endpoint on a private Docker bridge network. This # avoids `--network host`, which on Docker Desktop for Mac is misleadingly # *not* the Mac host's network — it's the LinuxKit VM's, and port forwarding -# trickery makes 127.0.0.1 unreliable. A dedicated bridge with name-based -# DNS works the same on Mac and Linux. +# trickery makes 127.0.0.1 unreliable. +# +# We pass the resolved IP directly rather than relying on Docker's embedded +# DNS — the base image (martenseemann/quic-network-simulator-endpoint) ships +# a /etc/resolv.conf primed for the runner's sim that breaks bridge-network +# name resolution from the JVM. smoke: docker smoke-down docker network create $(SMOKE_NET) >/dev/null 2>&1 || true docker run -d --name $(SMOKE_PICOQUIC) \ --network $(SMOKE_NET) \ privateoctopus/picoquic:latest picoquicdemo -p 4433 >/dev/null - @echo "picoquic up on $(SMOKE_PICOQUIC):4433 (in $(SMOKE_NET))" - docker run --rm --name $(SMOKE_CLIENT) \ - --network $(SMOKE_NET) \ - -e SMOKE_MODE=1 \ - -e ROLE=client \ - -e TESTCASE=handshake \ - -e REQUESTS="https://$(SMOKE_PICOQUIC):4433/" \ - $(IMAGE) + @PICOQUIC_IP=$$(docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' $(SMOKE_PICOQUIC)); \ + echo "picoquic at $$PICOQUIC_IP:4433 (in $(SMOKE_NET))"; \ + docker run --rm --name $(SMOKE_CLIENT) \ + --network $(SMOKE_NET) \ + -e SMOKE_MODE=1 \ + -e ROLE=client \ + -e TESTCASE=handshake \ + -e REQUESTS="https://$$PICOQUIC_IP:4433/" \ + $(IMAGE) @$(MAKE) smoke-down smoke-down: