refactor(core/cli): route vless/hysteria2 through _enable_encrypted_proxy, scope KillswitchMonitor to encrypted proxy only

This commit is contained in:
Zenaku 2026-07-09 18:23:52 -05:00
parent 1290e6b751
commit 0ded3898c0

View file

@ -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: