From d8d15d8f72fe8420073a8576f5683e34b0d382ac Mon Sep 17 00:00:00 2001 From: Emi Tatsuo Date: Thu, 3 Dec 2020 08:32:06 -0500 Subject: [PATCH] Add tolerance for REMOTE_ADDR without a port --- src/lib.rs | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/src/lib.rs b/src/lib.rs index 2ce7630..882aa37 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -238,13 +238,14 @@ impl ServerInner { .ip() } #[cfg(feature = "scgi_srv")] { - SocketAddr::from_str( - request.headers() - .get("REMOTE_ADDR") - .ok_or(ParseError::Malformed("REMOTE_ADDR header not received"))? - .as_str() - ).context("Received malformed IP address from upstream")? - .ip() + let remote = request.headers() + .get("REMOTE_ADDR") + .ok_or(ParseError::Malformed("REMOTE_ADDR header not received"))? + .as_str(); + SocketAddr::from_str(remote) + .map(|a| a.ip()) + .or_else(|_| std::net::IpAddr::from_str(remote)) + .context("Received malformed IP address from upstream")? } };