diff --git a/src/lib/record-picker.js b/src/lib/record-picker.js index e2f6260..1f9071b 100644 --- a/src/lib/record-picker.js +++ b/src/lib/record-picker.js @@ -26,11 +26,21 @@ /** * Decide which record wins. + * + * `p` semantics — added 2026-08-31. "Reverse-proxy this name to the URL in + * the `p` record; address bar stays on the BNS name." Complementary to `ip` + * (which pins the upstream to a raw IP + on-chain TLS fingerprint): `p` uses + * the upstream's own DNS + public CA cert. Placed AFTER `ip` in the apex chain + * so a name carrying both keeps its pre-existing pinned-IP behavior; names + * that ONLY carry `p` get honored instead of falling through to `u` and 302-ing + * away. Not applied to subdomain inheritance — `p` is single-URL by intent, so + * inheriting it through a subdomain query would silently mangle the target. + * * @param {object} records `entry.records` from the resolver * @param {object} opts * @param {boolean} opts.isSubdomain true iff the requested name has labels * above the registered `