diff --git a/src/NATS.Server/ClosedState.cs b/src/NATS.Server/ClosedState.cs new file mode 100644 index 0000000..40b44a1 --- /dev/null +++ b/src/NATS.Server/ClosedState.cs @@ -0,0 +1,52 @@ +// Ported from Go: server/client.go:188-228 + +namespace NATS.Server; + +/// +/// Reason a client connection was closed. Stored in connection info for monitoring +/// and passed to close handlers during connection teardown. +/// +/// +/// Values start at 1 (matching Go's iota + 1) so that the default zero value +/// is distinct from any valid close reason. +/// +public enum ClosedState +{ + ClientClosed = 1, + AuthenticationTimeout, + AuthenticationViolation, + TLSHandshakeError, + SlowConsumerPendingBytes, + SlowConsumerWriteDeadline, + WriteError, + ReadError, + ParseError, + StaleConnection, + ProtocolViolation, + BadClientProtocolVersion, + WrongPort, + MaxAccountConnectionsExceeded, + MaxConnectionsExceeded, + MaxPayloadExceeded, + MaxControlLineExceeded, + MaxSubscriptionsExceeded, + DuplicateRoute, + RouteRemoved, + ServerShutdown, + AuthenticationExpired, + WrongGateway, + MissingAccount, + Revocation, + InternalClient, + MsgHeaderViolation, + NoRespondersRequiresHeaders, + ClusterNameConflict, + DuplicateRemoteLeafnodeConnection, + DuplicateClientID, + DuplicateServerName, + MinimumVersionRequired, + ClusterNamesIdentical, + Kicked, + ProxyNotTrusted, + ProxyRequired, +}