Download superlog/apps/api/src/net.ts from smlflg/Experimente: direct link, hf CLI and curl.
- Browser
- Download file 1.69 kB
-
https://huggingface.co/smlflg/Experimente/resolve/main/superlog/apps/api/src/net.ts
- Command line
-
hf download hf://smlflg/Experimente/superlog/apps/api/src/net.ts
-
curl -L -o net.ts https://huggingface.co/smlflg/Experimente/resolve/main/superlog/apps/api/src/net.ts
1.69 kB
| import dns from "node:dns"; | |
| // Bypass Railway's in-container resolver, which returns stale/mis-routed | |
| // answers for api.anthropic.com that land on CF anycast IPs not | |
| // authorized for Anthropic's zone — Cloudflare then rejects the TLS | |
| // handshake with Error 1000 ("DNS points to prohibited IP"). Pinning the | |
| // resolver to Cloudflare + Google fixes the A record, and the lookup | |
| // patch below forces IPv4 so undici can't prefer an AAAA with the same | |
| // problem. | |
| dns.setServers(["1.1.1.1", "8.8.8.8"]); | |
| // Prefer IPv4 via c-ares `resolve4` over getaddrinfo. Also matters on local | |
| // networks where getaddrinfo returns AAAA-only for hosts with no global v6 route. | |
| // biome-ignore lint/suspicious/noExplicitAny: matches Node's overloaded lookup signature | |
| const origLookup = dns.lookup as any; | |
| // biome-ignore lint/suspicious/noExplicitAny: matches Node's overloaded lookup signature | |
| (dns as any).lookup = function patchedLookup( | |
| hostname: string, | |
| optsOrCb: unknown, | |
| maybeCb?: unknown, | |
| ) { | |
| const cb = (typeof optsOrCb === "function" ? optsOrCb : maybeCb) as ( | |
| err: NodeJS.ErrnoException | null, | |
| address?: string | { address: string; family: number }[], | |
| family?: number, | |
| ) => void; | |
| const opts = (typeof optsOrCb === "function" ? {} : optsOrCb) as { | |
| all?: boolean; | |
| family?: number; | |
| }; | |
| if (opts.family === 6) { | |
| return origLookup(hostname, opts, cb); | |
| } | |
| dns.resolve4(hostname, (err, addrs) => { | |
| if (!err && addrs?.length) { | |
| if (opts.all) { | |
| return cb( | |
| null, | |
| addrs.map((a) => ({ address: a, family: 4 })), | |
| ); | |
| } | |
| return cb(null, addrs[0], 4); | |
| } | |
| origLookup(hostname, opts, cb); | |
| }); | |
| }; | |