35 lines
1.1 KiB
Rust
35 lines
1.1 KiB
Rust
|
|
mod policy;
|
||
|
|
mod resolver;
|
||
|
|
mod transport;
|
||
|
|
mod url;
|
||
|
|
|
||
|
|
pub use policy::{AllowedEndpoint, OutboundPolicy, OutboundPolicyBuilder};
|
||
|
|
pub use resolver::{Resolver, SystemResolver};
|
||
|
|
pub use transport::{OutboundClient, OutboundClientBuilder, OutboundRequest, OutboundResponse};
|
||
|
|
pub use url::{CanonicalUrl, Origin};
|
||
|
|
|
||
|
|
use thiserror::Error;
|
||
|
|
|
||
|
|
#[derive(Clone, Copy, Debug, Eq, Error, PartialEq)]
|
||
|
|
pub enum OutboundError {
|
||
|
|
#[error("outbound URL is invalid")]
|
||
|
|
InvalidUrl,
|
||
|
|
#[error("outbound scheme and port are denied")]
|
||
|
|
SchemePortDenied,
|
||
|
|
#[error("outbound name resolution failed")]
|
||
|
|
ResolutionFailed,
|
||
|
|
#[error("outbound name resolution returned no addresses")]
|
||
|
|
EmptyResolution,
|
||
|
|
#[error("outbound name resolution contains a denied address")]
|
||
|
|
AddressDenied,
|
||
|
|
#[error("outbound request headers are invalid")]
|
||
|
|
InvalidHeaders,
|
||
|
|
#[error("outbound redirect is invalid")]
|
||
|
|
InvalidRedirect,
|
||
|
|
#[error("outbound redirect limit exceeded")]
|
||
|
|
RedirectLimit,
|
||
|
|
#[error("outbound HTTPS downgrade is denied")]
|
||
|
|
HttpsDowngrade,
|
||
|
|
#[error("outbound transport failed")]
|
||
|
|
Transport,
|
||
|
|
}
|