NMKillswitch

class proton.vpn.killswitch.interface.KillSwitch

The KillSwitch is the base class from which all other kill switch backends need to derive from.

static get(class_name: str = None) KillSwitch

Returns the kill switch implementation.

Parameters:

class_name – Name of the class implementing the kill switch. This

parameter is optional. If it’s not provided then the existing implementation with the highest priority is returned.

abstract async enable(vpn_server: 'VPNServer' | None = None, permanent: bool = False)

Enables the kill switch.

abstract async disable()

Disables the kill switch.

abstract async enable_ipv6_leak_protection(permanent: bool = False)

Enables IPv6 kill switch to prevent leaks.

abstract async disable_ipv6_leak_protection()

Disables IPv6 kill switch to prevent leaks.

Exceptions

This module contains the exceptions to be used by kill swtich backends.

Copyright (c) 2023 Proton AG

This file is part of Proton VPN.

Proton VPN is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

Proton VPN is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with ProtonVPN. If not, see <https://www.gnu.org/licenses/>.

exception proton.vpn.killswitch.interface.exceptions.KillSwitchException(message: str, additional_context: object = None)

Base class for KillSwitch specific exceptions.

add_note()

Exception.add_note(note) – add a note to the exception

with_traceback()

Exception.with_traceback(tb) – set self.__traceback__ to tb and return self.

exception proton.vpn.killswitch.interface.exceptions.MissingKillSwitchBackendDetails(message: str, additional_context: object = None)

When no KillSwitch backend is found then this exception is raised.

In rare cases where it can happen that a user has some default packages installed, where the services for those packages are actually not running. Ie: NetworkManager is installed but not running and for some reason we can’t access it, thus this exception is raised as we can’t do anything.

add_note()

Exception.add_note(note) – add a note to the exception

with_traceback()

Exception.with_traceback(tb) – set self.__traceback__ to tb and return self.