fix: prevent race condition when channel is used before being set #33

Merged
bagas merged 1 commits from staging into main 2025-12-08 15:47:02 +00:00
Showing only changes of commit c951c41a9b - Show all commits

View File

@ -71,9 +71,6 @@ func New(conn *ssh.ServerConn, forwardingReq <-chan *ssh.Request, sshChan <-chan
SlugManager: slugManager,
}
go func() {
go session.Lifecycle.WaitForRunningStatus()
for channel := range sshChan {
ch, reqs, err := channel.Accept()
if err != nil {
@ -85,6 +82,7 @@ func New(conn *ssh.ServerConn, forwardingReq <-chan *ssh.Request, sshChan <-chan
session.Interaction.SetChannel(ch)
session.Lifecycle.SetStatus(types.SETUP)
go session.HandleGlobalRequest(forwardingReq)
session.Lifecycle.WaitForRunningStatus()
})
go session.HandleGlobalRequest(reqs)
@ -92,7 +90,6 @@ func New(conn *ssh.ServerConn, forwardingReq <-chan *ssh.Request, sshChan <-chan
if err := session.Lifecycle.Close(); err != nil {
log.Printf("failed to close session: %v", err)
}
}()
}
func updateClientSlug(oldSlug, newSlug string) bool {