pub enum Error {
DataTooBig,
NotUndead,
SameIdentity,
NotConnected,
IncompleteProbeCycle,
DataFromOurselves,
IndirectForOurselves,
MalformedPacket,
Encode(Error),
Decode(Error),
CustomBroadcast(Error),
InvalidConfig,
}
Expand description
This type represents all possible errors operating a Foca instance.
Variants§
DataTooBig
Emitted whenever Foca receives a byte slice larger than
the configured limit (crate::Config::max_packet_size
).
Doesn’t affect Foca’s state.
NotUndead
Attempt to crate::Foca::reuse_down_identity
when not needed.
Doesn’t affect Foca’s state.
SameIdentity
Attempt to crate::Foca::change_identity
with the same identity.
Doesn’t affect Foca’s state.
NotConnected
Expected to be connected when reaching this point. Sentinel error to detect integration bugs.
Must not happen under normal circumstances.
IncompleteProbeCycle
Reached the end of the probe cycle but expected steps didn’t happen. Bug in the runtime/scheduling mechanism most likely.
Foca tries to resume normal operations after emitting this error, but any occurance of it is a sign that something is not behaving as expected
Must not happen under normal circumstances.
DataFromOurselves
Received data where the sender has the same id as ourselves.
There’s likely a member submitting wrong/manually-crafted packets.
IndirectForOurselves
Data contains a message supposed to reach us via indirect means.
There’s likely a member submitting wrong/manually-crafted packets.
MalformedPacket
Data is in an unexpected format.
Doesn’t affect Foca’s state.
Encode(Error)
Wraps crate::Codec
’s encode_*
failures.
Shouldn’t happen under normal circumstances unless using a broken
codec.
Might have left Foca in a inconsistent state.
Decode(Error)
Wraps crate::Codec
’s decode_*
failures.
Can happen during normal operation when receiving junk data.
CustomBroadcast(Error)
Wraps crate::BroadcastHandler
failures.
Doesn’t affect Foca’s state.