Table of Contents

Class UserSettings

Namespace
VpnHood.AppLib.Api.Settings
Assembly
VpnHood.AppLib.Api.dll

Represents the person's settings, which the app saves.

public class UserSettings
Inheritance
UserSettings
Inherited Members

Properties

AllowAnonymousTracker

Gets or sets a value indicating whether the person lets their use be reported anonymously, by the app and through the VPN's session. The default is true.

public bool AllowAnonymousTracker { get; set; }

Property Value

bool

AlwaysOn

Gets or sets a value indicating whether the app keeps the VPN on at all times, where it keeps always-on itself (App): the service connects when it starts, before anyone signs in, and again after a failure.

public bool AlwaysOn { get; set; }

Property Value

bool

ChannelProtocol

Gets or sets the protocol of the tunnel's packet channels. The default is Tcp.

public ChannelProtocol ChannelProtocol { get; set; }

Property Value

ChannelProtocol

CountryCode

Gets or sets the client's country as the server last reported it, which the app takes as its region, or null for the device's.

public string? CountryCode { get; set; }

Property Value

string

CultureCode

Gets or sets the language the person chose for the UI, by its culture name, or null for the system's.

public string? CultureCode { get; set; }

Property Value

string

CustomData

Gets or sets JSON a UI keeps of its own, which the app does not read, or null.

public JsonElement? CustomData { get; set; }

Property Value

JsonElement?

DebugData1

Gets or sets text of debug switches the developer gave, such as /disable-WebSocket, or null.

public string? DebugData1 { get; set; }

Property Value

string

DebugData2

Gets or sets a second text of debug switches the developer gave, or null.

public string? DebugData2 { get; set; }

Property Value

string

DnsMode

Gets or sets which DNS servers the VPN uses.

public DnsMode DnsMode { get; set; }

Property Value

DnsMode

DnsServers

Gets or sets the person's own DNS servers, which AdapterDns uses; none by default, and a null one reads as none.

[JsonConverter(typeof(ArrayConverter<IPAddress, IPAddressConverter>))]
public IPAddress[] DnsServers { get; set; }

Property Value

IPAddress[]

DropQuic

Gets or sets a value indicating whether the client drops the QUIC bound for the tunnel, UDP to ports 80 and 443, so apps turn to TCP; it applies only while the client forwards IPv4 TCP, and then to either IP version.

public bool DropQuic { get; set; }

Property Value

bool

DropUdp

Gets or sets a value indicating whether the client drops the UDP bound for the tunnel, but to DNS's ports; it applies only while the client forwards IPv4 TCP, and then to either IP version.

public bool DropUdp { get; set; }

Property Value

bool

EndPointStrategy

Gets or sets how the client orders the server token's addresses. The default is Auto, the token's own strategy.

public EndPointStrategy EndPointStrategy { get; set; }

Property Value

EndPointStrategy

IsAnonymousTrackerPrompted

Gets or sets a value indicating whether the person has answered the usage-data question, which is asked where the law wants a yes first; until then, the switch's default counts for nothing there.

public bool IsAnonymousTrackerPrompted { get; set; }

Property Value

bool

IsLicenseAccepted

Gets or sets a value indicating whether the person has accepted the license agreement.

public bool IsLicenseAccepted { get; set; }

Property Value

bool

IsQuickLaunchPrompted

Gets or sets a value indicating whether the app has offered the person the Quick Launch.

public bool IsQuickLaunchPrompted { get; set; }

Property Value

bool

IsTcpForwardingPrompted

Gets or sets a value indicating whether the app has asked the person about the TCP forwarding.

public bool IsTcpForwardingPrompted { get; set; }

Property Value

bool

KillSwitch

Gets or sets the kill switch's level, where the app keeps a kill switch of its own (IsKillSwitchSupported).

public KillSwitchMode KillSwitch { get; set; }

Property Value

KillSwitchMode

LogAnonymous

Gets or sets a value indicating whether the log redacts identifying values: addresses, endpoints, networks, IDs and host names. The default is true; a debug build logs them, and the app's own options may require the redaction.

public bool LogAnonymous { get; set; }

Property Value

bool

ProxySettings

Gets or sets the proxy settings.

public AppProxySettings ProxySettings { get; set; }

Property Value

AppProxySettings

SplitTunneling

Gets or sets the split tunneling's settings.

public SplitTunnelingSettings SplitTunneling { get; set; }

Property Value

SplitTunnelingSettings

UseTcpForwarding

Gets or sets a value indicating whether the client ends each TCP connection on the device and has the server open a new one, rather than carrying its packets.

public bool UseTcpForwarding { get; set; }

Property Value

bool

Remarks

It is a preference, for each IP version: a server that cannot forward TCP turns it off, and one that does not carry that version's TCP as packets, or a domain filter, which needs it, turns it on.

VpnProfileId

Gets or sets the current VPN profile's ID, or null.

public Guid? VpnProfileId { get; set; }

Property Value

Guid?