Table of Contents

Class SplitTunnelingState

Namespace
VpnHood.AppLib.Api.SplitTunneling
Assembly
VpnHood.AppLib.Api.dll

Represents the split tunneling in force, as the settings and the session make it, so the UI holds no rule of its own.

public class SplitTunnelingState
Inheritance
SplitTunnelingState
Inherited Members

Remarks

It shows the settings as the app resolves them, at once: a change that waits for a reconnect (IsReconnectRequired) shows before it applies. With the split tunneling off, every flag but IsLocalNetworkSplit and IsAppSplit is false; the modes are the ones in force, while the stored ones stay in the settings.

Properties

Countries

Gets the countries the split by country names, by their codes.

public required IReadOnlyList<string> Countries { get; init; }

Property Value

IReadOnlyList<string>

CountryMode

Gets the split by country's mode in force.

public required SplitCountryMode CountryMode { get; init; }

Property Value

SplitCountryMode

DnsMode

Gets the DNS's split mode in force.

public required SplitDnsMode DnsMode { get; init; }

Property Value

SplitDnsMode

IsAppSplit

Gets a value indicating whether the split by app is in force; it stays with the split tunneling off.

public required bool IsAppSplit { get; init; }

Property Value

bool

IsCountrySplit

Gets a value indicating whether the split by country is in force.

public required bool IsCountrySplit { get; init; }

Property Value

bool

IsDomainSplit

Gets a value indicating whether the split by domain is in force.

public required bool IsDomainSplit { get; init; }

Property Value

bool

IsEnabled

Gets a value indicating whether the split tunneling is on, as the settings' switch says.

public required bool IsEnabled { get; init; }

Property Value

bool

IsIpV6Split

Gets a value indicating whether IPv6 goes outside the tunnel: the server cannot carry it, and the setting excludes rather than blocks it.

public required bool IsIpV6Split { get; init; }

Property Value

bool

IsIpViaAppSplit

Gets a value indicating whether the app's own split by IP ranges is in force.

public required bool IsIpViaAppSplit { get; init; }

Property Value

bool

IsIpViaDeviceSplit

Gets a value indicating whether the device adapter's split by IP ranges is in force.

public required bool IsIpViaDeviceSplit { get; init; }

Property Value

bool

IsLocalNetworkSplit

Gets a value indicating whether the local network goes outside the tunnel.

public required bool IsLocalNetworkSplit { get; init; }

Property Value

bool

IsSplitByServer

Gets a value indicating whether the server's own declarations leave public destinations out of the tunnel, while splitting is allowed.

public required bool IsSplitByServer { get; init; }

Property Value

bool

IsSplittingTraffic

Gets a value indicating whether some public traffic of the tunneled apps may go outside the tunnel: by country, IP range or domain, by the server's declarations, or IPv6. Neither the local network, which cannot show the public address, nor the split by app counts.

public required bool IsSplittingTraffic { get; init; }

Property Value

bool

UnsupportedIpV6Mode

Gets what happens to IPv6 the server cannot carry, as in force.

public required SplitUnsupportedIpMode UnsupportedIpV6Mode { get; init; }

Property Value

SplitUnsupportedIpMode