()
| 63 | } |
| 64 | |
| 65 | func (p *streamProtocolV3) handleResizes() { |
| 66 | if p.resizeStream == nil || p.TerminalSizeQueue == nil { |
| 67 | return |
| 68 | } |
| 69 | go func() { |
| 70 | defer runtime.HandleCrash() |
| 71 | |
| 72 | encoder := json.NewEncoder(p.resizeStream) |
| 73 | for { |
| 74 | size := p.TerminalSizeQueue.Next() |
| 75 | if size == nil { |
| 76 | return |
| 77 | } |
| 78 | if err := encoder.Encode(&size); err != nil { |
| 79 | runtime.HandleError(err) |
| 80 | } |
| 81 | } |
| 82 | }() |
| 83 | } |
| 84 | |
| 85 | func (p *streamProtocolV3) stream(conn streamCreator) error { |
| 86 | if err := p.createStreams(conn); err != nil { |