From 0ded3898c049d3dad54b95d73dbf8ce110fc1641 Mon Sep 17 00:00:00 2001 From: zenaku Date: Thu, 9 Jul 2026 18:23:52 -0500 Subject: [PATCH] refactor(core/cli): route vless/hysteria2 through _enable_encrypted_proxy, scope KillswitchMonitor to encrypted proxy only --- cli/commands/profile.py | 21 +++++++++++---------- 1 file changed, 11 insertions(+), 10 deletions(-) diff --git a/cli/commands/profile.py b/cli/commands/profile.py index 7146b5f..530af1c 100644 --- a/cli/commands/profile.py +++ b/cli/commands/profile.py @@ -131,18 +131,11 @@ def handle(arguments, main_parser): try: from cli import observers as obs - monitor = KillswitchMonitor() + signal.signal(signal.SIGHUP, lambda s, f: (_do_disable(profile, ignore), sys.exit(0))) + signal.signal(signal.SIGTERM, lambda s, f: (_do_disable(profile, ignore), sys.exit(0))) + timer_state = {'stop': None, 'reconnecting': None, '_retrying': False} obs.get_ui_state()['timer_state'] = timer_state - obs.get_ui_state()['monitor'] = monitor - - monitor.set_on_disconnect(lambda: _do_disable(profile, ignore)) - monitor.set_on_leak(lambda: _on_leak(profile, ignore, monitor, obs)) - monitor.set_on_displaced(lambda: _on_displaced(monitor)) - - signal.signal(signal.SIGUSR1, lambda s, f: _on_displaced(monitor)) - signal.signal(signal.SIGHUP, lambda s, f: (_do_disable(profile, ignore), sys.exit(0))) - try: ProfileController.enable( profile, ignore=ignore, pristine=arguments.pristine, @@ -151,6 +144,14 @@ def handle(arguments, main_parser): connection_observer=connection_observer ) if profile.connection.needs_operator_proxy(): + monitor = KillswitchMonitor() + obs.get_ui_state()['monitor'] = monitor + + monitor.set_on_disconnect(lambda: _do_disable(profile, ignore)) + monitor.set_on_leak(lambda: _on_leak(profile, ignore, monitor, obs)) + monitor.set_on_displaced(lambda: _on_displaced(monitor)) + + signal.signal(signal.SIGUSR1, lambda s, f: _on_displaced(monitor)) monitor.run_blocking() _stop_timer(obs.get_ui_state()['timer_state']) except KeyboardInterrupt: