summaryrefslogtreecommitdiff
path: root/services
diff options
context:
space:
mode:
authorlittleblack111 <littleblack11111@gmail.com>2025-08-15 14:23:51 +0800
committerlittleblack111 <littleblack11111@gmail.com>2025-08-16 16:19:43 +0800
commitfecb64eb14b4465a3c101d9f1ada217546fdd884 (patch)
tree892ea5012bb160952b4751792af86a1bbf4e629b /services
parentbd61471846547c36fc9b0574be1853add44bc49d (diff)
fix(NetworkUsage): rerun getRouteProc when defaultInterface errs
getRouteProc will be invalid after network change chore: reorganize id ...Process -> ...Proc
Diffstat (limited to 'services')
-rw-r--r--services/NetworkUsage.qml28
1 files 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);
}
}