dns: switch to active upstream pool and wave fallback behavior
This commit is contained in:
@@ -34,7 +34,7 @@ from PySide6.QtWidgets import (
|
||||
QProgressBar,
|
||||
)
|
||||
|
||||
from api_client import ApiClient, DnsUpstreams
|
||||
from api_client import ApiClient
|
||||
from dashboard_controller import DashboardController, TraceMode
|
||||
from dns_benchmark_dialog import DNSBenchmarkDialog
|
||||
from traffic_mode_dialog import TrafficModeDialog
|
||||
@@ -729,14 +729,24 @@ RU: Источник wildcard IP: резолвер, runtime nftset SmartDNS, и
|
||||
self.lbl_dns_mode_state.setText(txt)
|
||||
self.lbl_dns_mode_state.setStyleSheet(f"color: {color};")
|
||||
|
||||
def _set_dns_resolver_summary(self, ups: DnsUpstreams) -> None:
|
||||
d1 = (ups.default1 or "—").strip() or "—"
|
||||
d2 = (ups.default2 or "—").strip() or "—"
|
||||
m1 = (ups.meta1 or "—").strip() or "—"
|
||||
m2 = (ups.meta2 or "—").strip() or "—"
|
||||
self.lbl_dns_resolver_upstreams.setText(
|
||||
f"Resolver upstreams: default[{d1}, {d2}] meta[{m1}, {m2}]"
|
||||
)
|
||||
def _set_dns_resolver_summary(self, pool_items) -> None:
|
||||
active = []
|
||||
total = 0
|
||||
for item in pool_items or []:
|
||||
addr = str(getattr(item, "addr", "") or "").strip()
|
||||
if not addr:
|
||||
continue
|
||||
total += 1
|
||||
if bool(getattr(item, "enabled", False)):
|
||||
active.append(addr)
|
||||
if not active:
|
||||
text = f"Resolver upstreams: active=0/{total} (empty set)"
|
||||
else:
|
||||
preview = ", ".join(active[:4])
|
||||
if len(active) > 4:
|
||||
preview += f", +{len(active)-4} more"
|
||||
text = f"Resolver upstreams: active={len(active)}/{total} [{preview}]"
|
||||
self.lbl_dns_resolver_upstreams.setText(text)
|
||||
self.lbl_dns_resolver_upstreams.setStyleSheet("color: gray;")
|
||||
|
||||
avg_ms = self._ui_settings.value("dns_benchmark/last_avg_ms", None)
|
||||
@@ -1072,8 +1082,8 @@ RU: Источник wildcard IP: резолвер, runtime nftset SmartDNS, и
|
||||
def work():
|
||||
self._dns_ui_refresh = True
|
||||
try:
|
||||
ups = self.ctrl.dns_upstreams_view()
|
||||
self._set_dns_resolver_summary(ups)
|
||||
pool = self.ctrl.dns_upstream_pool_view()
|
||||
self._set_dns_resolver_summary(getattr(pool, "items", []))
|
||||
|
||||
st = self.ctrl.dns_status_view()
|
||||
self.ent_smartdns_addr.setText(st.smartdns_addr or "")
|
||||
|
||||
Reference in New Issue
Block a user