Table of Contents

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

timeout Duration

The budget that elapsed.

AuthTimeoutException(string)

Creates the exception with a message.

public AuthTimeoutException(string message)

Parameters

message string

The message.

AuthTimeoutException(string, Exception)

Creates the exception with a message and an underlying cause.

public AuthTimeoutException(string message, Exception innerException)

Parameters

message string

The message.

innerException Exception

The underlying cause.

Properties

Timeout

The handshake budget that elapsed.

public Duration Timeout { get; }

Property Value

Duration