fix(web): install the share-link provider before the panel serves (#6914)

The panel started answering requests before the share-link generator was
registered, so an "all links", client sub-links or Telegram link request that
arrived during start-up got "sub link provider not registered". NewServer now
takes the provider and installs it before anything listens, and the provider
registry is guarded by a lock, since start-up writes it while requests read it.
This commit is contained in:
25f2002654
2026-10-24 09:20:46 +05:30
committed by GitHub
parent ad470681ef
commit d2a0216e01
9 changed files with 125 additions and 20 deletions
+2 -3
View File
@@ -121,7 +121,7 @@ func runWebServer() {
log.Printf("No panel user existed, so one was generated. Username: %s Password: %s (shown once; change it in Panel Settings)", username, password)
}
server := web.NewServer()
server := web.NewServer(sub.NewLinkProvider())
global.SetWebServer(server)
err = server.Start()
if err != nil {
@@ -129,7 +129,6 @@ func runWebServer() {
}
sub.SetDistFS(web.EmbeddedDist())
service.RegisterSubLinkProvider(sub.NewLinkProvider())
subServer := sub.NewServer()
global.SetSubServer(subServer)
err = subServer.Start()
@@ -183,7 +182,7 @@ func runWebServer() {
logger.Debug("Error stopping sub server:", err)
}
server = web.NewServer()
server = web.NewServer(sub.NewLinkProvider())
global.SetWebServer(server)
err = server.StartPanelOnly()
if err != nil {