Class AuthTimeoutException
- Namespace
- DatabentoDotNet.Live
- Assembly
- DatabentoDotNet.Live.dll
The CRAM handshake did not complete within AuthTimeout.
public sealed class AuthTimeoutException : LiveException, ISerializable
- Inheritance
-
AuthTimeoutException
- Implements
- Inherited Members
Remarks
Upstream has no equivalent: its authenticate reads the greeting, the challenge, and the
response with no budget at all, so a gateway that accepts the connection and then says nothing
hangs the caller until the OS gives up on the socket. That is the one failure mode a live
client cannot afford to inherit — it is indistinguishable, from the caller's side, from a
market with nothing to report.
The budget covers the whole exchange, not each read. A gateway that sends the greeting and then stalls has spent the client's time just as surely as one that never speaks, and a per-read budget would let it stall indefinitely one line at a time.
The socket is torn down before this is raised. Authentication is not cancel-safe (PORTING.md §4): the only way to abandon it is to close the connection, so a client that catches this is disconnected and must reconnect rather than retry the handshake.
Constructors
AuthTimeoutException()
Creates the exception with no message.
public AuthTimeoutException()
AuthTimeoutException(Duration)
Creates the exception for a budget that elapsed.
public AuthTimeoutException(Duration timeout)
Parameters
timeoutDurationThe budget that elapsed.
AuthTimeoutException(string)
Creates the exception with a message.
public AuthTimeoutException(string message)
Parameters
messagestringThe message.
AuthTimeoutException(string, Exception)
Creates the exception with a message and an underlying cause.
public AuthTimeoutException(string message, Exception innerException)
Parameters
Properties
Timeout
The handshake budget that elapsed.
public Duration Timeout { get; }