async fn response(
name: String,
validator: Validator,
remote: Option<SocketAddr>,
) -> Result<impl warp::Reply, warp::Rejection> {
if let Some(addr) = remote {
let ip_string = addr.ip().to_string();
if validator.is_valid(ip_string.clone()).await {
Ok(format!("Hello, {} from {}!", name, &ip_string))
} else {
Ok(format!("No key for {}!", &ip_string))
}
} else {
Ok("No remote address!".to_string())
}
}
Comments