diff --git a/arch/PKGBUILD b/arch/PKGBUILD index 3a5a452..6fca53b 100644 --- a/arch/PKGBUILD +++ b/arch/PKGBUILD @@ -1,7 +1,7 @@ # Maintainer: Proton Technologies AG pkgname=protonvpn-cli pkgver=3.11.1 -pkgrel=2 +pkgrel=3 pkgdesc="Official ProtonVPN CLI." arch=("any") url="https://github.com/ProtonVPN/" diff --git a/debian/changelog b/debian/changelog index 8b80f40..e7e5396 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,7 +1,7 @@ -protonvpn-cli (3.11.1-2) unstable; urgency=medium +protonvpn-cli (3.11.1-3) unstable; urgency=medium * Bugfix: Display message when incorrectly formatted servername is provided - * Feature: Modereate NAT + * Feature: Moderate NAT, Non Standard Ports -- Proton Technologies AG Thu, 16 Dez 2021 09:00:00 +0000 diff --git a/protonvpn_cli/cli.py b/protonvpn_cli/cli.py index 5ede0a5..701f5e7 100644 --- a/protonvpn_cli/cli.py +++ b/protonvpn_cli/cli.py @@ -345,6 +345,15 @@ def custom_dns(): "disable", ] ) + group.add_argument( + "--non-standard-ports", + help="Non Standard Ports.", + nargs=1, + choices=[ + "enable", + "disable", + ] + ) group.add_argument( "-d", "--default", help="Reset do default configurations.", @@ -371,6 +380,7 @@ def custom_dns(): and not args.vpn_accelerator and not args.alt_routing and not args.moderate_nat + and not args.non_standard_ports ) ): print(CONFIG_HELP) @@ -381,6 +391,7 @@ def custom_dns(): and not args.alt_routing and not args.vpn_accelerator and not args.moderate_nat + and not args.non_standard_ports and not args.help ) and args.dns and args.dns.pop() == "custom": diff --git a/protonvpn_cli/cli_wrapper.py b/protonvpn_cli/cli_wrapper.py index 7959dc7..a45d5ed 100644 --- a/protonvpn_cli/cli_wrapper.py +++ b/protonvpn_cli/cli_wrapper.py @@ -159,6 +159,10 @@ def set_moderate_nat(self, status): logger.exception(e) print("\nInvalid option was provided") return 1 + except exceptions.APISessionIsNotValidError as e: + logger.exception(e) + print("\nPlease login to make any changes") + return 1 except Exception as e: logger.exception(e) print(e) @@ -167,6 +171,30 @@ def set_moderate_nat(self, status): print("\nModerate NAT has been {}d. ".format(status)) return 0 + def set_non_standard_ports(self, status): + _status = { + "enable": UserSettingStatusEnum.ENABLED, + "disable": UserSettingStatusEnum.DISABLED + } + + try: + self.user_settings.non_standard_ports = _status[status] + except KeyError as e: + logger.exception(e) + print("\nInvalid option was provided") + return 1 + except exceptions.APISessionIsNotValidError as e: + logger.exception(e) + print("\nPlease login to make any changes") + return 1 + except Exception as e: + logger.exception(e) + print(e) + return 1 + + print("\nNon Standard Ports have been {}d. ".format(status)) + return 0 + def logout(self): """Proxymethod to logout user.""" if not self.protonvpn.check_session_exists(): @@ -560,6 +588,7 @@ def configurations_menu(self, args): vpn_accelerator=self.set_vpn_accelerator, alt_routing=self.set_alternative_routing, moderate_nat=self.set_moderate_nat, + non_standard_ports=self.set_non_standard_ports, default=self.restore_default_configurations, ) @@ -688,6 +717,8 @@ def list_configurations(self, _): DNS:\t\t\t{dns} Alternative Routing:\t{alt_routing} VPN Accelerator:\t{vpn_accel} + Moderate NAT:\t\t{mod_nat} + Non Standard Ports:\t{non_stand_ports} """).format( protocol=user_settings_dict[DisplayUserSettingsEnum.PROTOCOL], alt_routing=user_settings_dict[DisplayUserSettingsEnum.ALT_ROUTING], @@ -695,6 +726,8 @@ def list_configurations(self, _): netshield=user_settings_dict[DisplayUserSettingsEnum.NETSHIELD], vpn_accel=user_settings_dict[DisplayUserSettingsEnum.VPN_ACCELERATOR], dns=user_settings_dict[DisplayUserSettingsEnum.DNS], + mod_nat=user_settings_dict[DisplayUserSettingsEnum.MODERATE_NAT], + non_stand_ports=user_settings_dict[DisplayUserSettingsEnum.NON_STANDARD_PORTS], ) print(status_to_print) return 0 @@ -715,6 +748,9 @@ def __transform_user_setting_to_readable_format(self, raw_format): raw_ns = raw_format[DisplayUserSettingsEnum.NETSHIELD] raw_alt_routing = raw_format[DisplayUserSettingsEnum.ALT_ROUTING] raw_vpn_accel = raw_format[DisplayUserSettingsEnum.VPN_ACCELERATOR] + moderate_nat = "On" if bool(raw_format[DisplayUserSettingsEnum.MODERATE_NAT].value) else "Off" + non_standard_ports = "On" if bool(raw_format[DisplayUserSettingsEnum.NON_STANDARD_PORTS].value) else "Off" + # protocol if raw_protocol in SUPPORTED_PROTOCOLS[ProtocolImplementationEnum.OPENVPN]: # noqa @@ -757,6 +793,8 @@ def __transform_user_setting_to_readable_format(self, raw_format): DisplayUserSettingsEnum.NETSHIELD: transformed_ns, DisplayUserSettingsEnum.ALT_ROUTING: transformed_alt_routing, DisplayUserSettingsEnum.VPN_ACCELERATOR: transformed_vpn_accel, + DisplayUserSettingsEnum.MODERATE_NAT: moderate_nat, + DisplayUserSettingsEnum.NON_STANDARD_PORTS: non_standard_ports, } def restore_default_configurations(self, _): diff --git a/rpmbuild/SPECS/protonvpn-cli.spec b/rpmbuild/SPECS/protonvpn-cli.spec index 144ce42..f82f984 100644 --- a/rpmbuild/SPECS/protonvpn-cli.spec +++ b/rpmbuild/SPECS/protonvpn-cli.spec @@ -1,6 +1,6 @@ %define unmangled_name protonvpn-cli %define version 3.11.1 -%define release 2 +%define release 3 Prefix: %{_prefix} @@ -46,9 +46,9 @@ rm -rf $RPM_BUILD_ROOT %defattr(-,root,root) %changelog -* Thu Dez 16 2021 Proton Technologies AG 3.11.1-2 +* Thu Dez 16 2021 Proton Technologies AG 3.11.1-3 - Bugfix: Display message when incorrectly formatted servername is provided -- Feature: Modereate NAT +- Feature: Moderate NAT, Non Standard Ports * Thu Nov 12 2021 Proton Technologies AG 3.11.0-7 - Improve: Handle accounting use cases