#[non_exhaustive]pub enum Error {
Show 36 variants
CredentialRead {
path: PathBuf,
source: Error,
},
InvalidCertificate {
path: PathBuf,
reason: &'static str,
},
InvalidPrivateKey {
path: PathBuf,
reason: &'static str,
},
Transport(Error),
GrpcStatus(Status),
InvalidGatewayAddress,
InvalidDeviceUrl,
UnsupportedAuthSigningKey,
AuthSigning,
MissingTokenDeadline,
InvalidTokenDeadline,
InvalidAuthTokenMetadata,
ServiceStatusUnsupported,
InvalidRemoteSocksEndpoint,
ServiceAddressLookup {
source: Error,
},
ServiceAddressNoRoute {
source: Option<Error>,
},
InvalidSocksAddress,
SocksAddressTooLong,
UnsupportedSocksAddressType {
address_type: u8,
},
RemoteSocksIo(Error),
RemoteSocksTimeout,
UnexpectedSocksVersion {
version: u8,
},
SocksNoAcceptableAuthentication,
UnsupportedSocksAuthentication {
method: u8,
},
InvalidSocksReservedByte {
reserved: u8,
},
SocksReply {
code: u8,
},
InvalidSocksUdpHeader,
UnsupportedSocksUdpFragment {
fragment: u8,
},
SocksUdpPayloadTooLarge,
SocksUdpNotConnected,
RemoteSocksControlClosed,
InvalidSocksUdpAddress,
InvalidMetadataValue(InvalidMetadataValue),
UnauthenticatedPeer,
InvalidPeerCertificateCount {
count: usize,
},
InvalidPeerCertificate,
}Expand description
Errors returned by the LazyCat SDK compatibility layer.
Variants (Non-exhaustive)§
This enum is marked as non-exhaustive
CredentialRead
A runtime credential could not be read.
InvalidCertificate
A certificate file was empty, malformed, or unsupported.
Fields
InvalidPrivateKey
A private key file was empty, malformed, unsupported, or mismatched.
Fields
Transport(Error)
A tonic channel could not be configured or connected.
GrpcStatus(Status)
A gRPC method returned a status response.
InvalidGatewayAddress
The runtime gateway override is not a host or HTTP(S) URI.
InvalidDeviceUrl
A device API URL is malformed or uses an unsupported scheme.
UnsupportedAuthSigningKey
The application private key cannot produce Go-compatible auth signatures.
AuthSigning
Signing the application identity failed.
MissingTokenDeadline
The device returned a token without an expiry deadline.
InvalidTokenDeadline
The device returned an invalid token expiry deadline.
InvalidAuthTokenMetadata
An auth token cannot be encoded as gRPC metadata.
ServiceStatusUnsupported
The device does not implement the optional service-status API.
InvalidRemoteSocksEndpoint
HPortalSys returned a malformed or unsupported RemoteSocks URL.
ServiceAddressLookup
Resolving the LazyCat host-service address failed.
ServiceAddressNoRoute
No resolved host-service candidate had a usable local route.
InvalidSocksAddress
A SOCKS address is malformed or cannot be represented on the wire.
SocksAddressTooLong
A SOCKS domain or custom address exceeds the one-byte wire length.
UnsupportedSocksAddressType
A SOCKS peer used an address type not defined by RFC 1928.
RemoteSocksIo(Error)
A network operation used by RemoteSocks failed.
RemoteSocksTimeout
Connecting to the RemoteSocks proxy exceeded the configured deadline.
UnexpectedSocksVersion
A SOCKS peer replied with an unexpected protocol version.
SocksNoAcceptableAuthentication
A SOCKS peer rejected every offered authentication method.
UnsupportedSocksAuthentication
A SOCKS peer selected an authentication method this SDK does not support.
InvalidSocksReservedByte
A SOCKS reply used a non-zero reserved byte.
SocksReply
A SOCKS command failed with the provided RFC 1928 reply code.
InvalidSocksUdpHeader
A SOCKS UDP datagram had invalid reserved or framing bytes.
UnsupportedSocksUdpFragment
SOCKS UDP fragmentation is not supported by this SDK.
SocksUdpPayloadTooLarge
A UDP payload cannot fit in one transport frame.
SocksUdpNotConnected
An operation requiring a fixed UDP peer was used on a bound socket.
RemoteSocksControlClosed
The RemoteSocks TCP control stream has closed.
InvalidSocksUdpAddress
A SOCKS address cannot be used as a concrete UDP socket address.
InvalidMetadataValue(InvalidMetadataValue)
A value cannot be represented as gRPC metadata.
UnauthenticatedPeer
The request was not received over authenticated TLS.
InvalidPeerCertificateCount
LazyCat application identity requires exactly one peer certificate.
InvalidPeerCertificate
The peer certificate could not be decoded as X.509.
Trait Implementations§
Source§impl Error for Error
impl Error for Error
Source§fn source(&self) -> Option<&(dyn Error + 'static)>
fn source(&self) -> Option<&(dyn Error + 'static)>
1.0.0 · Source§fn description(&self) -> &str
fn description(&self) -> &str
use the Display impl or to_string()
Auto Trait Implementations§
impl !RefUnwindSafe for Error
impl !UnwindSafe for Error
impl Freeze for Error
impl Send for Error
impl Sync for Error
impl Unpin for Error
impl UnsafeUnpin for Error
Blanket Implementations§
Source§impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
Source§impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
Source§fn in_current_span(self) -> Instrumented<Self> ⓘ
fn in_current_span(self) -> Instrumented<Self> ⓘ
Source§impl<T> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
Source§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
T in a tonic::Request