mirror of https://github.com/cbeuw/Cloak
Close pipe properly
This commit is contained in:
parent
eb68185f3c
commit
592175f73d
|
|
@ -9,6 +9,7 @@ import (
|
||||||
"log"
|
"log"
|
||||||
"net"
|
"net"
|
||||||
"net/http"
|
"net/http"
|
||||||
|
_ "net/http/pprof"
|
||||||
"os"
|
"os"
|
||||||
"runtime"
|
"runtime"
|
||||||
"strings"
|
"strings"
|
||||||
|
|
|
||||||
|
|
@ -73,11 +73,16 @@ func (stream *Stream) feed() {
|
||||||
}
|
}
|
||||||
_, err := stream.feederW.Write(data)
|
_, err := stream.feederW.Write(data)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
if err == io.ErrClosedPipe {
|
||||||
|
stream.Close()
|
||||||
|
return
|
||||||
|
} else {
|
||||||
log.Println(err)
|
log.Println(err)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
func (stream *Stream) Read(buf []byte) (n int, err error) {
|
func (stream *Stream) Read(buf []byte) (n int, err error) {
|
||||||
if len(buf) == 0 {
|
if len(buf) == 0 {
|
||||||
|
|
@ -164,6 +169,8 @@ func (stream *Stream) Close() error {
|
||||||
stream.session.sb.send(tlsRecord)
|
stream.session.sb.send(tlsRecord)
|
||||||
|
|
||||||
stream.session.delStream(stream.id)
|
stream.session.delStream(stream.id)
|
||||||
|
stream.feederW.Close()
|
||||||
|
stream.feederR.Close()
|
||||||
//log.Printf("%v actively closed\n", stream.id)
|
//log.Printf("%v actively closed\n", stream.id)
|
||||||
stream.writingM.Unlock()
|
stream.writingM.Unlock()
|
||||||
return nil
|
return nil
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue