in src/request.rs [115:143]
fn get_page_request_url(server: &ZArr) -> crate::Result<Url> {
let scheme = if [Some("1"), Some("on")]
.contains(&server.get("HTTPS").and_then(z_val_to_string).as_deref())
{
"https"
} else {
"http"
};
let addr = server
.get("HTTP_HOST")
.and_then(z_val_to_string)
.or_else(|| {
server
.get("SERVER_PORT")
.and_then(z_val_to_string)
.map(|port| format!("localhost:{}", port))
})
.unwrap_or_else(|| "unknown:0".to_string());
let uri = server
.get("REQUEST_URI")
.and_then(z_val_to_string)
.or_else(|| server.get("PHP_SELF").and_then(z_val_to_string))
.or_else(|| server.get("SCRIPT_NAME").and_then(z_val_to_string))
.unwrap_or_else(|| "/unknown".to_string());
Ok(Url::parse(&format!("{}://{}{}", scheme, addr, uri))?)
}