mine
Fernand Galiana 2024-01-19 08:57:56 -07:00 committed by GitHub
parent 1a2ee1028c
commit e5cadf1f25
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 8 additions and 5 deletions

View File

@ -24,6 +24,8 @@ import (
"k8s.io/client-go/transport/spdy" "k8s.io/client-go/transport/spdy"
) )
const defaultTimeout = 30 * time.Second
// PortForwarder tracks a port forward stream. // PortForwarder tracks a port forward stream.
type PortForwarder struct { type PortForwarder struct {
Factory Factory
@ -94,7 +96,10 @@ func (p *PortForwarder) Container() string {
func (p *PortForwarder) Stop() { func (p *PortForwarder) Stop() {
log.Debug().Msgf("<<< Stopping PortForward %s", p.ID()) log.Debug().Msgf("<<< Stopping PortForward %s", p.ID())
p.active = false p.active = false
close(p.stopChan) if p.stopChan != nil {
close(p.stopChan)
p.stopChan = nil
}
} }
// FQN returns the portforward unique id. // FQN returns the portforward unique id.
@ -169,7 +174,7 @@ func (p *PortForwarder) forwardPorts(method string, url *url.URL, addr, portMap
if err != nil { if err != nil {
return nil, err return nil, err
} }
dialer := spdy.NewDialer(upgrader, &http.Client{Transport: transport}, method, url) dialer := spdy.NewDialer(upgrader, &http.Client{Transport: transport, Timeout: defaultTimeout}, method, url)
return portforward.NewOnAddresses(dialer, []string{addr}, []string{portMap}, p.stopChan, p.readyChan, p.Out, p.ErrOut) return portforward.NewOnAddresses(dialer, []string{addr}, []string{portMap}, p.stopChan, p.readyChan, p.Out, p.ErrOut)
} }

View File

@ -99,11 +99,9 @@ func runForward(v ResourceViewer, pf watch.Forwarder, f *portforward.PortForward
pf.SetActive(true) pf.SetActive(true)
if err := f.ForwardPorts(); err != nil { if err := f.ForwardPorts(); err != nil {
v.App().Flash().Err(err) v.App().Flash().Err(err)
return
} }
v.App().QueueUpdateDraw(func() { v.App().QueueUpdateDraw(func() {
v.App().factory.DeleteForwarder(pf.FQN()) v.App().factory.DeleteForwarder(pf.ID())
pf.SetActive(false) pf.SetActive(false)
}) })
} }