Software /
code /
prosody
File
tools/tb2err @ 13126:d043834f15d2
mod_http: Use RFC 7239 Forwarded header to find original client IP
Prefer over X-Forwarded-* since it has an actual specification.
Main practical difference is that Forwarded may carry more properties
than only the IP address since it is a structured header.
Since we parse it into an array, it is easier to do the logical thing
and iterate backwards trough proxies until an untrusted one is
encountered. Compare the handling of X-Forwarded-For.
The 'secure' field now accounts for the full chain of proxies, which
must be secure all the way to be considered secure.
author | Kim Alvefur <zash@zash.se> |
---|---|
date | Sat, 03 Jun 2023 17:10:04 +0200 |
parent | 13066:4aa4a51a7a77 |
line wrap: on
line source
#!/usr/bin/env lua -- traceback to errors.err for vim -q -- e.g. curl https://prosody.im/paste/xxx | tb2err > errors.err && vim -q local path_sep = package.config:sub(1,1); for line in io.lines() do local src, err = line:match("%s*(%S+)(:%d+: .*)") if src then src = src:gsub("\\", path_sep); local cut = src:match("/()core/") or src:match("/()net/") or src:match("/()util/") or src:match("/()modules/") or src:match("/()prosody%-modules/") or src:match("/()plugins/") or src:match("/()prosody[ctl]*$") if cut then src = src:sub(cut); end src = src:gsub("prosody%-modules/", "../modules/") src = src:gsub("^modules/", "plugins/") io.write(src, err, "\n"); end end