From fecb64eb14b4465a3c101d9f1ada217546fdd884 Mon Sep 17 00:00:00 2001 From: littleblack111 Date: Fri, 15 Aug 2025 14:23:51 +0800 Subject: fix(NetworkUsage): rerun getRouteProc when defaultInterface errs getRouteProc will be invalid after network change chore: reorganize id ...Process -> ...Proc --- services/NetworkUsage.qml | 28 ++++++++++++++++------------ 1 file changed, 16 insertions(+), 12 deletions(-) diff --git a/services/NetworkUsage.qml b/services/NetworkUsage.qml index 844a5a5..c503891 100644 --- a/services/NetworkUsage.qml +++ b/services/NetworkUsage.qml @@ -27,8 +27,12 @@ Singleton { } function update() { - __iface = Network.defaultInterface(getRouteProcess.stdout.text); - const cur = Network.getRxTxBytes(getNetDevProcess.stdout.text, __iface); + try { + __iface = Network.defaultInterface(getRouteProc.stdout.text); + } catch (e) { + getRouteProc.running = true; + } + const cur = Network.getRxTxBytes(getNetDevProc.stdout.text, __iface); const sec = General.resourceUpdateInterval; const rawUp = (cur.tx - __prev.tx) / sec; const rawDown = (cur.rx - __prev.rx) / sec; @@ -39,30 +43,30 @@ Singleton { downUnit = Network.formatSize(rawDown, true); __prev = cur; - getRouteProcess.running = true; - getNetDevProcess.running = true; + getRouteProc.running = true; + getNetDevProc.running = true; } Process { - id: getRouteProcess + id: getRouteProc running: true command: ["ip", "route"] stdout: StdioCollector {} } Process { - id: getNetDevProcess + id: getNetDevProc running: true command: ["cat", "/proc/net/dev"] stdout: StdioCollector {} } Component.onCompleted: { - getRouteProcess.running = true; - getNetDevProcess.running = true; - if (getRouteProcess.stdout.text) - __iface = Network.defaultInterface(getRouteProcess.stdout.text); - if (getNetDevProcess.stdout.text) - __prev = Network.getRxTxBytes(getNetDevProcess.stdout.text, __iface); + getRouteProc.running = true; + getNetDevProc.running = true; + if (getRouteProc.stdout.text) + __iface = Network.defaultInterface(getRouteProc.stdout.text); + if (getNetDevProc.stdout.text) + __prev = Network.getRxTxBytes(getNetDevProc.stdout.text, __iface); } } -- cgit v1.2.3