You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
列表本轮变化:.web 新增 RDAP 服务器,.circle、.got、.jot 从 Nominet 迁至 Identity Digital,.safety 移出 WHOIS 表——IANA 未登记它的服务器,而此前手工记录的那台实测回 "TLD is not supported"
依赖:prometheus/client_golang 1.24.0
Added memory-only mode: leaving redis.addr empty now disables Redis outright — no client, no connection attempts, and /health reports the memory backend. WHOIS_REDIS_ADDR distinguishes unset (keep the config-file value) from explicitly empty (disable Redis), so containers can opt in without mounting a config file; cache.requireRedis: true with an empty address is rejected at startup as contradictory
Fixed: a domain whose TLD has neither a WHOIS nor an RDAP server answers 404 (not-found) instead of 500 — having no server is an answer about the resource, not a server-side failure, and reporting it as one put junk requests like /favicon.ico into the 5xx metrics
Fixed: equivalent spellings of one IP address or prefix now share a single cache entry and a single upstream query (2001:0db8:0:0:0:0:0:1 → 2001:db8::1), and a prefix's host bits are masked off (192.0.2.5/24 → 192.0.2.0/24) — the network RFC 9082 defines the ip query to name
Fixed: ?refresh no longer attaches to a regular deduplicated query already in flight; a refresh also owns the cache entry while it runs, so an overlapping ordinary query cannot land its older result — or its not-found marker — on top of the refreshed one
Fixed: a deduplicated query whose waiters all disconnect holds exactly one concurrency slot, no matter how many waiters canceled; previously each one transferred its own, so clients querying a slow resource and disconnecting could occupy all of server.rateLimit
Fixed: detached upstream queries are covered by the graceful-shutdown drain, so shutdown waits for their fetch and cache writes instead of possibly closing the cache and Redis client underneath them
Changed: /openapi.json reflects the instance's authentication mode — with auth.keys configured, the anonymous alternative is dropped from the document's security requirements
Changed: the compiled-in IANA lists are regenerated monthly in CI by tools/genserverlist, which opens a pull request whenever they drift. Both files are strict mirrors of what IANA publishes: entries IANA no longer reports are dropped, and nothing is written unless every fetch and all ~1400 whois.iana.org lookups succeeded
This refresh: .web gained an RDAP server, .circle/.got/.jot moved from Nominet to Identity Digital, and .safety left the WHOIS map — IANA lists no server for it, and the one recorded by hand answers "TLD is not supported"