3bc798bc9d
- IPv4-mapped cloud metadata (::ffff:169.254.169.254) previously fell through the IPv4-mapped IPv6 detection block and returned the generic private-IP error instead of the cloud-metadata error, making the two cases inconsistent - The IPv4-mapped error path used ip.String() (the raw ::ffff:… form) directly rather than sanitizeIPForError, potentially leaking the unsanitized IPv6 address in error messages visible to callers - Now extracts the IPv4 from the mapped address before both the cloud-metadata comparison and the sanitization call, so ::ffff:169.254.169.254 produces the same "access to cloud metadata endpoints is blocked" error as 169.254.169.254 and the error message is always sanitized through the shared helper - Updated the corresponding test to assert the cloud-metadata message and the absence of the raw IPv6 representation in the error text
Backend Service
This folder contains the Go API for CaddyProxyManager+.
Prerequisites
- Go 1.24+
Getting started
cp .env.example .env # optional
cd backend
go run ./cmd/api
Tests
cd backend
go test ./...