Table of Contents

Class SessionInfo

Namespace
VpnHood.Core.Client.Abstractions
Assembly
VpnHood.Core.Client.Abstractions.dll

Represents a VPN session as its server set it up.

public class SessionInfo
Inheritance
SessionInfo
Inherited Members

Properties

AccessInfo

Gets the access's terms and state, as its access manager reports them, or null.

public required AccessInfo? AccessInfo { get; init; }

Property Value

AccessInfo

AccessKey

Gets or sets an access key the server gave to replace the client's, or null; the app updates its profile with it after the connect.

public required string? AccessKey { get; set; }

Property Value

string

AdRequirement

Gets the ad the session requires.

public required AdRequirement AdRequirement { get; init; }

Property Value

AdRequirement

ChannelProtocols

Gets the protocols the session's packet channels can use, by what the server takes and this device can make.

public required IReadOnlyList<ChannelProtocol> ChannelProtocols { get; init; }

Property Value

IReadOnlyList<ChannelProtocol>

ClientCountry

Gets the code of the country the server places the client in, or null.

public required string? ClientCountry { get; init; }

Property Value

string

ClientPublicIpAddress

Gets the client's public IP address as the server sees it.

[JsonConverter(typeof(IPAddressConverter))]
public required IPAddress ClientPublicIpAddress { get; init; }

Property Value

IPAddress

CreatedTime

Gets or sets when the session was made, in UTC.

public required DateTime CreatedTime { get; set; }

Property Value

DateTime

DnsConfig

Gets the session's DNS: its servers, where they came from, and whether the tunnel carries them.

public required DnsConfig DnsConfig { get; init; }

Property Value

DnsConfig

IsIpV6SupportedByServer

Gets a value indicating whether the server carries IPv6; when not, the client blocks or bypasses IPv6 as UnsupportedIpV6Mode says.

public required bool IsIpV6SupportedByServer { get; init; }

Property Value

bool

IsLocalNetworkAllowed

Gets or sets a value indicating whether the server lets the client reach the local networks.

public required bool IsLocalNetworkAllowed { get; set; }

Property Value

bool

IsPremiumSession

Gets a value indicating whether the session is premium.

public required bool IsPremiumSession { get; init; }

Property Value

bool

IsQuicChannelSupported

Gets a value indicating whether the session can use QUIC packet channels: the server takes them, and this device can make QUIC connections.

public required bool IsQuicChannelSupported { get; init; }

Property Value

bool

IsQuicPacketSupported

Gets a value indicating whether the server carries the device's QUIC; where it does not, the client drops it as DropQuic does, whatever that says, while it forwards IPv4 TCP.

public required bool IsQuicPacketSupported { get; init; }

Property Value

bool

IsTcpForwardingSupported

Gets a value indicating whether the server forwards TCP connections the client ends on the device.

public required bool IsTcpForwardingSupported { get; init; }

Property Value

bool

IsTcpPacketIpV4Supported

Gets a value indicating whether the server carries IPv4 TCP as packets.

public required bool IsTcpPacketIpV4Supported { get; init; }

Property Value

bool

IsTcpPacketIpV6Supported

Gets a value indicating whether the server carries IPv6 TCP as packets.

public required bool IsTcpPacketIpV6Supported { get; init; }

Property Value

bool

IsTrafficSplitByServer

Gets a value indicating whether the server's own configuration leaves public destinations outside the tunnel.

public required bool IsTrafficSplitByServer { get; init; }

Property Value

bool

Remarks

The local networks, multicast and loopback the server leaves out do not count, as they cannot expose the public address; nor does an IP version the server carries not at all, which IsIpV6SupportedByServer reports.

IsUdpChannelSupported

Gets a value indicating whether the server takes UDP packet channels.

public required bool IsUdpChannelSupported { get; init; }

Property Value

bool

IsUdpPacketSupported

Gets a value indicating whether the server carries the device's UDP; where it does not, the client drops it as DropUdp does, whatever that says, while it forwards IPv4 TCP.

public required bool IsUdpPacketSupported { get; init; }

Property Value

bool

ServerLocationInfo

Gets the server's location, or null.

public required ServerLocationInfo? ServerLocationInfo { get; init; }

Property Value

ServerLocationInfo

ServerVersion

Gets the server's version.

[JsonConverter(typeof(VersionConverter))]
public required Version ServerVersion { get; init; }

Property Value

Version

SessionId

Gets the session's ID.

public required string SessionId { get; init; }

Property Value

string

SuppressedTo

Gets whose session this one took the place of, if any.

public required SessionSuppressType SuppressedTo { get; init; }

Property Value

SessionSuppressType