[][src]Enum srt_protocol::packet::ShakeType

pub enum ShakeType {
    Induction,
    Waveahand,
    Conclusion,
    Agreement,
    Rejection(RejectReason),
}

See https://tools.ietf.org/html/draft-gg-udt-03#page-10

More applicably,

Note: the client-server connection uses: --> INDUCTION (empty) <-- INDUCTION (cookie) --> CONCLUSION (cookie) <-- CONCLUSION (ok)

The rendezvous HSv4 (legacy): --> WAVEAHAND (effective only if peer is also connecting) <-- CONCLUSION (empty) (consider yourself connected upon reception) --> AGREEMENT (sent as a response for conclusion, requires no response)

The rendezvous HSv5 (using SRT extensions): --> WAVEAHAND (with cookie) --- (selecting INITIATOR/RESPONDER by cookie contest - comparing one another's cookie) <-- CONCLUSION (without extensions, if RESPONDER, with extensions, if INITIATOR) --> CONCLUSION (with response extensions, if RESPONDER) <-- AGREEMENT (sent exclusively by INITIATOR upon reception of CONCLUSIOn with response extensions)

Variants

Induction

First handshake exchange in client-server connection

Waveahand

A rendezvous connection, initial connect request, 0

Conclusion

A rendezvous connection, response to initial connect request, -1 Also a regular connection client response to the second handshake

Agreement

Final rendezvous check, -2

Rejection(RejectReason)

Reject

Trait Implementations

impl Clone for ShakeType[src]

impl Copy for ShakeType[src]

impl Debug for ShakeType[src]

impl Eq for ShakeType[src]

impl Into<i32> for ShakeType[src]

impl PartialEq<ShakeType> for ShakeType[src]

impl StructuralEq for ShakeType[src]

impl StructuralPartialEq for ShakeType[src]

impl TryFrom<i32> for ShakeType[src]

type Error = i32

Turns an i32 into a ConnectionType, returning Err(num) if no valid one was passed.

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> Same<T> for T

type Output = T

Should always be Self

impl<T> ToOwned for T where
    T: Clone
[src]

type Owned = T

The resulting type after obtaining ownership.

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.

impl<V, T> VZip<V> for T where
    V: MultiLane<T>,