[][src]Enum onc_rpc::Error

#[non_exhaustive]pub enum Error {
    IncompleteMessage {
        buffer_len: usize,
        expected: usize,
    },
    IncompleteHeader,
    Fragmented,
    InvalidMessageType(u32),
    InvalidReplyType(u32),
    InvalidReplyStatus(u32),
    InvalidAuthData,
    InvalidAuthError(u32),
    InvalidRejectedReplyType(u32),
    InvalidLength,
    InvalidRpcVersion(u32),
    InvalidMachineName(Utf8Error),
    IOError(ErrorKindString),
}

Error types returned by this crate.

Variants (Non-exhaustive)

Non-exhaustive enums could have additional variants added in future. Therefore, when matching against variants of non-exhaustive enums, an extra wildcard arm must be added to account for any future variants.
IncompleteMessage

The message header indicates the RPC message is longer than the amount of data in the buffer, or the buffer contains more than one message.

This error may also be returned if the RPC message parsed from the buffer is unexpectedly shorter than the header length indicates - in this case, buffer_len will be more than expected and may indicate a parsing error.

Fields of IncompleteMessage

buffer_len: usize

The length of the buffer provided.

expected: usize

The length expected for this message type.

IncompleteHeader

The buffer is too small to contain the RPC header.

Fragmented

The RPC message is fragmented and needs to be reassembled.

This library doesn't currently support fragmented messages and this error will be returned when parsing any message with the "last fragment" bit unset in the header.

InvalidMessageType(u32)

The message type in the RPC request is neither Call or Reply.

This is a violation of the spec.

InvalidReplyType(u32)

The message type in the RPC request is neither Accepted or Denied.

This is a violation of the spec.

InvalidReplyStatus(u32)

The reply status code is not one of the specified status codes.

This is a violation of the spec.

InvalidAuthData

The auth or verifier is invalid or malformed.

InvalidAuthError(u32)

The auth error code is not one of the specified error codes.

This is a violation of the spec.

InvalidRejectedReplyType(u32)

The rejected reply status code is not one of the specified status codes.

This is a violation of the spec.

InvalidLength

A variable length type has a malformed length value which would exceed the length of the buffer.

InvalidRpcVersion(u32)

The message contains a rpc protocol identifier that is not 2.

InvalidMachineName(Utf8Error)

The machine name contains non-UTF8 characters.

IOError(ErrorKindString)

An I/O error occured when trying to parse the buffer.

Trait Implementations

impl Debug for Error[src]

impl Display for Error[src]

impl Error for Error[src]

impl From<Error> for Error[src]

impl From<Utf8Error> for Error[src]

impl PartialEq<Error> for Error[src]

impl StructuralPartialEq for Error[src]

Auto Trait Implementations

Blanket Implementations

impl<T> Any for T where
    T: 'static + ?Sized
[src]

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

impl<T> From<T> for T[src]

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<T> ToString for T where
    T: Display + ?Sized
[src]

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.