return specific public error

This commit is contained in:
Rob Ede 2021-06-22 16:06:15 +01:00
parent af36861095
commit d0771d4b68
No known key found for this signature in database
GPG Key ID: 97C636207D3EF933
1 changed files with 6 additions and 5 deletions

View File

@ -6,7 +6,7 @@ use derive_more::{Display, Error};
use crate::{ use crate::{
dev::{AppConfig, Payload, RequestHead}, dev::{AppConfig, Payload, RequestHead},
http::header::{self, HeaderName}, http::header::{self, HeaderName},
Error, FromRequest, HttpRequest, ResponseError, FromRequest, HttpRequest, ResponseError,
}; };
const X_FORWARDED_FOR: &[u8] = b"x-forwarded-for"; const X_FORWARDED_FOR: &[u8] = b"x-forwarded-for";
@ -216,6 +216,7 @@ impl FromRequest for ConnectionInfo {
/// let socket_addr = peer_addr.0; /// let socket_addr = peer_addr.0;
/// socket_addr.to_string() /// socket_addr.to_string()
/// } /// }
/// # let _svc = actix_web::web::to(handler);
/// ``` /// ```
#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash, PartialOrd, Ord, Display)] #[derive(Debug, Clone, Copy, PartialEq, Eq, Hash, PartialOrd, Ord, Display)]
#[display(fmt = "{}", _0)] #[display(fmt = "{}", _0)]
@ -230,13 +231,13 @@ impl PeerAddr {
#[derive(Debug, Display, Error)] #[derive(Debug, Display, Error)]
#[display(fmt = "Missing peer address")] #[display(fmt = "Missing peer address")]
struct MissingPeerAddr; pub struct MissingPeerAddr;
impl ResponseError for MissingPeerAddr {} impl ResponseError for MissingPeerAddr {}
impl FromRequest for PeerAddr { impl FromRequest for PeerAddr {
type Error = Error; type Error = MissingPeerAddr;
type Future = Ready<Result<PeerAddr, Error>>; type Future = Ready<Result<Self, Self::Error>>;
type Config = (); type Config = ();
fn from_request(req: &HttpRequest, _: &mut Payload) -> Self::Future { fn from_request(req: &HttpRequest, _: &mut Payload) -> Self::Future {
@ -244,7 +245,7 @@ impl FromRequest for PeerAddr {
Some(addr) => ok(PeerAddr(addr)), Some(addr) => ok(PeerAddr(addr)),
None => { None => {
log::error!("Missing peer address."); log::error!("Missing peer address.");
err(MissingPeerAddr.into()) err(MissingPeerAddr)
} }
} }
} }