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: try:
from cli import observers as obs 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} timer_state = {'stop': None, 'reconnecting': None, '_retrying': False}
obs.get_ui_state()['timer_state'] = timer_state 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: try:
ProfileController.enable( ProfileController.enable(
profile, ignore=ignore, pristine=arguments.pristine, profile, ignore=ignore, pristine=arguments.pristine,
@ -151,6 +144,14 @@ def handle(arguments, main_parser):
connection_observer=connection_observer connection_observer=connection_observer
) )
if profile.connection.needs_operator_proxy(): 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() monitor.run_blocking()
_stop_timer(obs.get_ui_state()['timer_state']) _stop_timer(obs.get_ui_state()['timer_state'])
except KeyboardInterrupt: except KeyboardInterrupt: