fix: restore sessions after 9P listener is ready

ConsumeFeed dials the 9P socket. Moving session restore to after
the listener starts ensures the socket exists when feed consumers
connect.
This commit is contained in:
Levi Neely 2026-08-13 20:55:02 +02:00
parent dcd119c853
commit dd0021fd9a
2 changed files with 9 additions and 3 deletions

View File

@ -41,7 +41,12 @@ func NewRoot(cfg Config) *Tree {
helpSpec = &spec
tree := virtfs.BuildTree(spec)
// Restore persisted sessions from disk.
return tree
}
// RestoreSessions restores persisted sessions from disk.
// Must be called after the 9P listener is ready.
func RestoreSessions() {
for _, r := range session.RestoreAllSessions() {
for _, ra := range r.Agents {
if ag := r.Session.FindAgent(ra.ID); ag != nil {
@ -50,6 +55,4 @@ func NewRoot(cfg Config) *Tree {
}
}
}
return tree
}

View File

@ -108,6 +108,9 @@ func runServer(sockPath string) {
fmt.Printf("olliesrv listening on %s\n", sockPath)
// Restore sessions now that the 9P listener is ready.
fs.RestoreSessions()
var tcpListener net.Listener
if *tcpAddr != "" {
tcpListener, err = net.Listen("tcp", *tcpAddr)