Commit b1bafab3 authored by Eric's avatar Eric

[Bugfix] fix unclosed fd

parent ce9add91
......@@ -238,6 +238,7 @@ func (c *Client) UploadFile(url string, gFile string, res interface{}, params ..
if err != nil {
return err
}
defer f.Close()
buf := new(bytes.Buffer)
bodyWriter := multipart.NewWriter(buf)
gName := filepath.Base(gFile)
......
......@@ -28,10 +28,12 @@ func GzipCompressFile(srcPath, dstPath string) error {
if err != nil {
return err
}
defer sf.Close()
df, err := os.Create(dstPath)
if err != nil {
return err
}
defer df.Close()
writer := gzip.NewWriter(df)
writer.Name = dstPath
writer.ModTime = time.Now().UTC()
......
......@@ -129,10 +129,22 @@ func (h *interactiveHandler) watchWinSizeChange() {
}
func (h *interactiveHandler) pauseWatchWinSize() {
select {
case <-h.sess.Sess.Context().Done():
return
default:
}
h.winWatchChan <- false
}
func (h *interactiveHandler) resumeWatchWinSize() {
select {
case <-h.sess.Sess.Context().Done():
return
default:
}
h.winWatchChan <- true
}
......
......@@ -15,10 +15,13 @@ type WrapperSession struct {
inWriter io.WriteCloser
outReader io.ReadCloser
mux *sync.RWMutex
closed chan struct{}
}
func (w *WrapperSession) initial() {
w.initReadPip()
w.closed = make(chan struct{})
go w.readLoop()
}
......@@ -37,11 +40,20 @@ func (w *WrapperSession) readLoop() {
break
}
}
w.mux.RLock()
_ = w.inWriter.Close()
_ = w.outReader.Close()
w.mux.RUnlock()
close(w.closed)
}
func (w *WrapperSession) Read(p []byte) (int, error) {
select {
case <-w.closed:
return 0, io.EOF
default:
}
w.mux.RLock()
defer w.mux.RUnlock()
return w.outReader.Read(p)
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment