Table of Contents

Struct LinkInfo

Namespace
Typhon.Engine
Assembly
Typhon.Engine.dll

What a transport knows about a peer before the peer has said anything.

public readonly struct LinkInfo
Inherited Members

Remarks

Everything here is transport knowledge, which is why it arrives on this side of the seam rather than inside HELLO: an address the client cannot forge, the wire it came in on, and — when an adapter authenticated the HTTP request before the upgrade — the principal that authentication produced. What the client itself claims (its kind, its token, its capabilities) travels in HELLO and reaches the application through AdmissionRequest instead.

Every member may be null: an in-process link has no endpoint, a TCP link has no subprotocol, and nothing authenticates a connection until the security work lands an authenticator (design/Subscriptions/04-transport.md § 3).

Properties

Remote

The peer's address as the transport sees it, or null for an in-process link.

public EndPoint Remote { get; init; }

Property Value

EndPoint

SubProtocol

The negotiated subprotocol — typhon.2 on WebSocket — or null on a wire that has none.

public string SubProtocol { get; init; }

Property Value

string

Transport

The wire this connection came in on: tcp, ws, webtransport, fake. It reaches the admission hook verbatim.

public string Transport { get; init; }

Property Value

string

User

The principal the adapter's authentication produced, or null. Always null until the security work lands: the first version authenticates nothing at the upgrade and hands HELLO's opaque token to the application instead.

public ClaimsPrincipal User { get; init; }

Property Value

ClaimsPrincipal

Methods

ToString()

public override string ToString()

Returns

string