Skip to content
This repository was archived by the owner on Oct 22, 2021. It is now read-only.

Commit b69f348

Browse files
committed
✨ Better netIface chooser & override option
Close #376
1 parent 051c3c1 commit b69f348

File tree

1 file changed

+32
-16
lines changed

1 file changed

+32
-16
lines changed

src/classes/netstat.class.js

Lines changed: 32 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -43,28 +43,44 @@ class Netstat {
4343
window.si.networkInterfaces().then((data) => {
4444
let offline = false;
4545

46-
// Find the first external network networkInterface
4746
let net = data[0];
4847
let netID = 0;
49-
while (net.internal === true) {
50-
netID++;
51-
if (data[netID]) {
52-
net = data[netID];
53-
this.iface = net.iface;
54-
document.getElementById("mod_netstat_iname").innerText = "Interface: "+net.iface;
55-
} else {
56-
// No external connection!
57-
this.iface = null;
58-
document.getElementById("mod_netstat_iname").innerText = "Interface: (offline)";
5948

60-
this.offline = true;
61-
document.querySelector("#mod_netstat_innercontainer > div:first-child > h2").innerHTML = "OFFLINE";
62-
document.querySelector("#mod_netstat_innercontainer > div:nth-child(2) > h2").innerHTML = "--.--.--.--";
63-
document.querySelector("#mod_netstat_innercontainer > div:nth-child(3) > h2").innerHTML = "--ms";
64-
break;
49+
if (typeof window.settings.iface === "string") {
50+
while (net.iface !== window.settings.iface) {
51+
netID++;
52+
if (data[netID]) {
53+
net = data[netID];
54+
} else {
55+
// No detected interface has the custom iface name, fallback to automatic detection on next loop
56+
window.settings.iface = false;
57+
return false;
58+
}
59+
}
60+
} else {
61+
// Find the first external, IPv4 connected networkInterface that has a MAC address set
62+
63+
while (net.internal === true || net.ip4 === "" || net.mac === "") {
64+
netID++;
65+
if (data[netID]) {
66+
net = data[netID];
67+
} else {
68+
// No external connection!
69+
this.iface = null;
70+
document.getElementById("mod_netstat_iname").innerText = "Interface: (offline)";
71+
72+
this.offline = true;
73+
document.querySelector("#mod_netstat_innercontainer > div:first-child > h2").innerHTML = "OFFLINE";
74+
document.querySelector("#mod_netstat_innercontainer > div:nth-child(2) > h2").innerHTML = "--.--.--.--";
75+
document.querySelector("#mod_netstat_innercontainer > div:nth-child(3) > h2").innerHTML = "--ms";
76+
break;
77+
}
6578
}
6679
}
6780

81+
this.iface = net.iface;
82+
document.getElementById("mod_netstat_iname").innerText = "Interface: "+net.iface;
83+
6884
if (net.ip4 === "127.0.0.1") {
6985
offline = true;
7086
} else {

0 commit comments

Comments
 (0)