1
0
mirror of https://github.com/AvengeMedia/DankMaterialShell.git synced 2026-06-22 19:15:24 -04:00

core/network: avoid endless probing when no network backend is present

This commit is contained in:
bbedward
2026-06-22 13:08:49 -04:00
parent b0edccb80e
commit 556c0819c4
3 changed files with 32 additions and 14 deletions
+6 -1
View File
@@ -1,6 +1,7 @@
package network
import (
"errors"
"fmt"
"sync"
"time"
@@ -10,6 +11,10 @@ import (
"github.com/yeqown/go-qrcode/writer/standard"
)
// ErrNoNetworkBackend is returned when no supported network management daemon
// (NetworkManager, iwd, systemd-networkd, ConnMan) is present on the system.
var ErrNoNetworkBackend = errors.New("no supported network backend found")
func NewManager() (*Manager, error) {
detection, err := DetectNetworkStack()
if err != nil {
@@ -58,7 +63,7 @@ func NewManager() (*Manager, error) {
}
default:
return nil, fmt.Errorf("no supported network backend found: %s", detection.ChosenReason)
return nil, fmt.Errorf("%w: %s", ErrNoNetworkBackend, detection.ChosenReason)
}
m := &Manager{
+20 -9
View File
@@ -3,6 +3,7 @@ package server
import (
"bufio"
"encoding/json"
"errors"
"fmt"
"net"
"os"
@@ -1481,26 +1482,36 @@ func Start(printDocs bool) error {
log.Info("")
go func() {
switch err := InitializeNetworkManager(); {
case err == nil:
notifyCapabilityChange()
return
case errors.Is(err, network.ErrNoNetworkBackend):
log.Warn("No supported network backend present; skipping retries")
return
default:
log.Warnf("Network manager unavailable, will retry: %v", err)
}
ticker := time.NewTicker(30 * time.Second)
defer ticker.Stop()
if err := InitializeNetworkManager(); err != nil {
log.Warnf("Network manager unavailable: %v", err)
} else {
notifyCapabilityChange()
return
}
for range ticker.C {
for range 10 {
<-ticker.C
if networkManager != nil {
return
}
if err := InitializeNetworkManager(); err == nil {
switch err := InitializeNetworkManager(); {
case err == nil:
log.Info("Network manager initialized")
notifyCapabilityChange()
return
case errors.Is(err, network.ErrNoNetworkBackend):
log.Warn("No supported network backend present; stopping retries")
return
}
}
log.Warn("Network manager still unavailable after retries; giving up")
}()
loginctlReady := make(chan struct{})
+6 -4
View File
@@ -235,7 +235,7 @@ Singleton {
}
}
const shouldShowOsd = brightnessInitialized && anyDeviceBrightnessChanged;
const shouldShowOsd = brightnessInitialized && anyDeviceBrightnessChanged && !suppressOsd;
if (!brightnessInitialized) {
brightnessInitialized = true;
@@ -810,10 +810,11 @@ Singleton {
if (rescanAttempt < 3) {
interval = rescanAttempt === 1 ? 5000 : 8000;
restart();
} else {
rescanAttempt = 0;
interval = 3000;
return;
}
rescanAttempt = 0;
interval = 3000;
osdSuppressTimer.restart();
}
}
@@ -821,6 +822,7 @@ Singleton {
target: Quickshell
function onScreensChanged() {
suppressOsd = true;
screenChangeRescanTimer.rescanAttempt = 0;
screenChangeRescanTimer.interval = 3000;
screenChangeRescanTimer.restart();