Hello

Enum Hello 

Source
pub enum Hello {
    Anonymous,
    Krb5(Option<UserInfo>),
    Local(Option<UserInfo>),
    ResolverAuthenticate(SocketAddr),
    Tls(Option<UserInfo>),
}

Variants§

§

Anonymous

No authentication will be provided. The publisher may drop the connection at this point, if it chooses to allow this then it will return Anonymous.

§

Krb5(Option<UserInfo>)

Authenticate using kerberos 5, following the hello, the subscriber and publisher will exchange tokens to complete the authentication.

§

Local(Option<UserInfo>)

Authenticate using a local unix socket, only valid for publishers on the same machine as the subscriber.

§

ResolverAuthenticate(SocketAddr)

In order to prevent denial of service, spoofing, etc, authenticated publishers must prove that they are actually listening on the socket they claim to be listening on. To facilitate this, after a new security context has been created the resolver server will encrypt a random number with it, connect to the write address specified by the publisher, and send the encrypted token. The publisher must decrypt the token using it’s end of the security context, add 1 to the number, encrypt it again and send it back. If that round trip succeeds then the new security context will replace any old one, if it fails the new context will be thrown away and the old one will continue to be associated with the write address.

§

Tls(Option<UserInfo>)

Authenticate using transport layer security. In this case both the server AND the client must have certificates that are signed by a CA they mutually trust.

Trait Implementations§

Source§

impl Clone for Hello

Source§

fn clone(&self) -> Hello

Returns a duplicate of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for Hello

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Pack for Hello

Source§

fn encoded_len(&self) -> usize

Source§

fn encode(&self, buf: &mut impl BufMut) -> Result<(), PackError>

Source§

fn decode(buf: &mut impl Buf) -> Result<Self, PackError>

Source§

fn const_encoded_len() -> Option<usize>

Source§

fn decode_into(&mut self, buf: &mut impl Buf) -> Result<(), PackError>
where Self: Sized,

Source§

impl PartialEq for Hello

Source§

fn eq(&self, other: &Hello) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl Eq for Hello

Source§

impl StructuralPartialEq for Hello

Auto Trait Implementations§

§

impl !Freeze for Hello

§

impl RefUnwindSafe for Hello

§

impl Send for Hello

§

impl Sync for Hello

§

impl Unpin for Hello

§

impl UnwindSafe for Hello

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<Q, K> Equivalent<K> for Q
where Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,

Source§

fn equivalent(&self, key: &K) -> bool

Checks if this value is equivalent to the given key. Read more
Source§

impl<Q, K> Equivalent<K> for Q
where Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,

Source§

fn equivalent(&self, key: &K) -> bool

Compare self to key and return true if they are equal.
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

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

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.