xmpp-httpx - v0.11.0
    Preparing search index...

    Interface DestinationPolicyOptions

    Where a forward proxy (an exit) is willing to connect. An exit is an open relay to whoever it admits, so the default is the public internet on ports 80 and 443 and nothing else: no private ranges, no loopback, no link-local (which is where cloud metadata services live), no multicast or reserved space, and none of the exit's own addresses.

    The check runs where the connection is made, on the address actually dialled — as the lookup of the socket — not on a name resolved earlier. Resolving first and connecting later is a DNS-rebinding hole: the second resolution can answer differently.

    interface DestinationPolicyOptions {
        allowPorts?: readonly number[];
        allowPrivate?: boolean;
        ownAddresses?: readonly string[] | (() => readonly string[]);
        resolve?: (hostname: string) => Promise<LookupAddress[]>;
    }
    Index
    allowPorts?: readonly number[]

    Ports that may be dialled. Default 80 and 443.

    allowPrivate?: boolean

    Also allow private, shared and loopback space, and the exit's own addresses — the home-network use case. Link-local, multicast, reserved and unspecified space stay closed, and so do the cloud metadata endpoints: 169.254.169.254 is link-local anyway, and fd00:ec2::254, which sits inside the ULA range this opens, is closed by name.

    ownAddresses?: readonly string[] | (() => readonly string[])

    The exit's own addresses, which are refused even when public — an exit must not become a way to reach services bound to its own public IP. Default: every address of every local interface, read at each check — a host gains addresses while it runs (IPv6 privacy addresses, a rotated prefix, a VPN coming up). A function is likewise called at each check.

    resolve?: (hostname: string) => Promise<LookupAddress[]>

    Name resolution, for tests. Default node:dns lookup.