Table of Contents

Class AppSessionInfo

Namespace
VpnHood.AppLib.Api.Sessions
Assembly
VpnHood.AppLib.Api.dll

Represents a VPN session as its server set it up.

public class AppSessionInfo
Inheritance
AppSessionInfo
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

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>

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; init; }

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 the split tunneling's settings say.

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

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

IsTcpPacketSupported

Gets a value indicating whether the server takes TCP as packets over IPv4, which the TCP forwarding switch needs.

public required bool IsTcpPacketSupported { 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.

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 CurrentServerLocationInfo? ServerLocationInfo { get; init; }

Property Value

CurrentServerLocationInfo

ServerVersion

Gets the server's version.

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

Property Value

Version

SuppressedTo

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

public required SessionSuppressType SuppressedTo { get; init; }

Property Value

SessionSuppressType