(request: IncomingMessage, settings: Settings)
| 96 | } |
| 97 | |
| 98 | const getTrustedForwardedPathPrefix = (request: IncomingMessage, settings: Settings): string => { |
| 99 | const socketAddress = request.socket?.remoteAddress |
| 100 | if (typeof socketAddress !== 'string' || !isTrustedProxy(socketAddress, settings)) { |
| 101 | return '' |
| 102 | } |
| 103 | |
| 104 | const rawHeader = request.headers?.['x-forwarded-prefix'] |
| 105 | const rawPrefix = Array.isArray(rawHeader) ? rawHeader[0] : rawHeader |
| 106 | |
| 107 | return normalizePathPrefix(rawPrefix) |
| 108 | } |
| 109 | |
| 110 | export const getPublicPathPrefix = (request: IncomingMessage, settings: Settings): string => { |
| 111 | return getTrustedForwardedPathPrefix(request, settings) || getRelayUrlPathPrefix(settings.info?.relay_url) |
no test coverage detected