@@ -43,28 +43,44 @@ class Netstat {
43
43
window . si . networkInterfaces ( ) . then ( ( data ) => {
44
44
let offline = false ;
45
45
46
- // Find the first external network networkInterface
47
46
let net = data [ 0 ] ;
48
47
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)" ;
59
48
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
+ }
65
78
}
66
79
}
67
80
81
+ this . iface = net . iface ;
82
+ document . getElementById ( "mod_netstat_iname" ) . innerText = "Interface: " + net . iface ;
83
+
68
84
if ( net . ip4 === "127.0.0.1" ) {
69
85
offline = true ;
70
86
} else {
0 commit comments