Class HelloResponse
Represents the server's answer to a HelloRequest: the session, and what the client needs to run it.
public class HelloResponse : SessionResponse
- Inheritance
-
HelloResponse
- Inherited Members
Properties
AccessInfo
Gets or sets the access's terms and state, or null.
public AccessInfo? AccessInfo { get; set; }
Property Value
AdRequirement
Gets or sets the ad the session requires. The default is none.
public AdRequirement AdRequirement { get; set; }
Property Value
ChannelIdleTimeout
Gets how long a connection the client keeps for reuse may stay idle before it closes. The default is 60 seconds.
public TimeSpan ChannelIdleTimeout { get; init; }
Property Value
Remarks
The server sends a little less than its own, so the client is less likely to reuse a connection the server is closing.
DnsServers
Gets or sets the DNS servers the server offers, or null for none.
[JsonConverter(typeof(ArrayConverter<IPAddress, IPAddressConverter>))]
public IPAddress[]? DnsServers { get; set; }
Property Value
GaMeasurementId
Gets the GA4 measurement ID the client reports the session to, where its person allows it, or null.
public string? GaMeasurementId { get; init; }
Property Value
IncludeIpRanges
Gets or sets the only destinations the server routes, or null for all of them.
public IpRange[]? IncludeIpRanges { get; set; }
Property Value
- IpRange[]
IsIpV6Supported
Gets or sets a value indicating whether the server carries IPv6.
public bool IsIpV6Supported { get; set; }
Property Value
IsQuicPacketSupported
Gets or sets a value indicating whether the server carries the users' QUIC; a client drops what it does not, so it never crosses the link. The default is true, as an older server sends none.
public bool IsQuicPacketSupported { get; set; }
Property Value
IsTcpForwardingSupported
Gets or sets a value indicating whether the session forwards TCP connections (TcpForwardingChannelRequest). The default is true.
public bool IsTcpForwardingSupported { get; set; }
Property Value
IsTcpPacketIpV4Supported
Gets or sets a value indicating whether the session takes IPv4 TCP as packets; where it does not, the client forwards IPv4 TCP connections instead.
public bool IsTcpPacketIpV4Supported { get; set; }
Property Value
IsTcpPacketIpV6Supported
Gets or sets a value indicating whether the session takes IPv6 TCP as packets; where it does not, the client forwards IPv6 TCP connections instead.
public bool IsTcpPacketIpV6Supported { get; set; }
Property Value
IsTcpPacketSupported
Gets or sets a value indicating whether the session takes TCP as packets, for older clients and from older servers, where it means both IP versions.
[Obsolete("Deprecated on 2026-10-08: use IsTcpPacketIpV4Supported and IsTcpPacketIpV6Supported. Still sent for older clients and read from older servers, for which it meant both IP versions.")]
public bool IsTcpPacketSupported { get; set; }
Property Value
IsTcpProxySupported
Gets or sets IsTcpForwardingSupported under its older name, which older clients read and older servers send.
[Obsolete("Use IsTcpForwardingSupported.")]
public bool IsTcpProxySupported { get; set; }
Property Value
Remarks
It is true when missing, so a client without it would try what the server refuses.
IsUdpPacketSupported
Gets or sets a value indicating whether the server carries the users' UDP; a client drops what it does not, so it never crosses the link. The default is true, as an older server sends none.
public bool IsUdpPacketSupported { get; set; }
Property Value
MaxPacketChannelCount
Gets or sets the most packet channels the session may have at once, or 0 where the server sets no limit.
public int MaxPacketChannelCount { get; set; }
Property Value
Mtu
Gets or sets the server's MTU for a client before TunnelMtu, which takes the smaller of it and its own, less MtuOverhead, as its adapter's. The default is MtuServer.
public int Mtu { get; set; }
Property Value
ProtocolVersion
Gets or sets the protocol version the session runs on.
public int ProtocolVersion { get; set; }
Property Value
QuicPort
Gets or sets the server's QUIC port, on the address the client came to, or null where it offers none, as to a client on the older HTTP protocol or through a reverse proxy.
public int? QuicPort { get; set; }
Property Value
- int?
RequestTimeout
Gets how long the client waits for an answer to a request. The default is 60 seconds.
public TimeSpan RequestTimeout { get; init; }
Property Value
Remarks
The server sends a little more than its own wait, so its error answers reach the client.
ServerLocation
Gets or sets the server's location, or null.
public string? ServerLocation { get; set; }
Property Value
ServerSecret
Gets or sets the server farm's secret, for a client below HTTP protocol 15, as older clients had it from here, or null, which is not written.
[JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingNull)]
public byte[]? ServerSecret { get; set; }
Property Value
- byte[]
ServerTags
Gets or sets the server's tags. The default is none.
public string[] ServerTags { get; set; }
Property Value
- string[]
ServerVersion
Gets or sets the server's version, as major.minor.build.
public string ServerVersion { get; set; }
Property Value
SessionId
Gets or sets the session's ID.
public ulong SessionId { get; set; }
Property Value
SessionKey
Gets or sets the session's key, which the client's requests in the session carry. The default is empty.
public byte[] SessionKey { get; set; }
Property Value
- byte[]
StartPadding
Gets or sets a value indicating whether the client pads the start of its streams that forward TCP connections, the WebSocket ones masked as the standard has it; an older server sends none, read as false.
[JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingDefault)]
public bool StartPadding { get; set; }
Property Value
SuppressedTo
Gets or sets whose session this one took the place of, if any.
public SessionSuppressType SuppressedTo { get; set; }
Property Value
TunnelMtu
Gets or sets the largest packet the session's tunnel carries both ways, as the packet is, or null from an older server.
public int? TunnelMtu { get; set; }
Property Value
- int?
UdpPort
Gets or sets the server's port for the session's UDP channel, on the address the client came to, or null where it offers none, as to a client below the UDP channel's protocol or through a reverse proxy.
public int? UdpPort { get; set; }
Property Value
- int?
VirtualIpNetworkV4
Gets the client's virtual IPv4 address in the session, with the virtual network's prefix length, or null.
[JsonConverter(typeof(IpNetworkConverter))]
public IpNetwork? VirtualIpNetworkV4 { get; init; }
Property Value
VirtualIpNetworkV6
Gets the client's virtual IPv6 address in the session, with the virtual network's prefix length, or null.
[JsonConverter(typeof(IpNetworkConverter))]
public IpNetwork? VirtualIpNetworkV6 { get; init; }
Property Value
VpnAdapterIncludeIpRanges
Gets or sets the destinations the server asks the clients' VPN adapters to capture, or null for all of them; the client weighs them with its own settings, and its DNS plan may add to them.
public IpRange[]? VpnAdapterIncludeIpRanges { get; set; }
Property Value
- IpRange[]