mirror of
https://github.com/hoytech/strfry.git
synced 2025-06-20 09:50:28 +00:00
hack to workaround uWebsockets issue preventing parsing of some IPv6 addresses (reported by Petr Kracík)
This commit is contained in:
@ -197,6 +197,11 @@ void RelayServer::runWebsocket(ThreadPool<MsgWebsocket>::Thread &thr) {
|
||||
|
||||
if (cfg().relay__realIpHeader.size()) {
|
||||
auto header = req.getHeader(cfg().relay__realIpHeader.c_str()).toString(); // not string_view: parseIP needs trailing 0 byte
|
||||
|
||||
// HACK: uWebSockets strips leading : characters, which interferes with IPv6 parsing.
|
||||
// This fixes it for the common ::1 and ::ffff:1.2.3.4 cases. FIXME: fix the underlying library.
|
||||
if (header == "1" || header.starts_with("ffff:")) header = std::string("::") + header;
|
||||
|
||||
c->ipAddr = parseIP(header);
|
||||
if (c->ipAddr.size() == 0) LW << "Couldn't parse IP from header " << cfg().relay__realIpHeader << ": " << header;
|
||||
}
|
||||
|
Reference in New Issue
Block a user