diff --git a/cmd/ck-server/ck-server.go b/cmd/ck-server/ck-server.go index cb88bbb..be575fc 100644 --- a/cmd/ck-server/ck-server.go +++ b/cmd/ck-server/ck-server.go @@ -9,6 +9,7 @@ import ( "log" "net" "net/http" + _ "net/http/pprof" "os" "runtime" "strings" diff --git a/internal/multiplex/stream.go b/internal/multiplex/stream.go index ff7f76a..0f887c1 100644 --- a/internal/multiplex/stream.go +++ b/internal/multiplex/stream.go @@ -73,7 +73,12 @@ func (stream *Stream) feed() { } _, err := stream.feederW.Write(data) if err != nil { - log.Println(err) + if err == io.ErrClosedPipe { + stream.Close() + return + } else { + log.Println(err) + } } } } @@ -164,6 +169,8 @@ func (stream *Stream) Close() error { stream.session.sb.send(tlsRecord) stream.session.delStream(stream.id) + stream.feederW.Close() + stream.feederR.Close() //log.Printf("%v actively closed\n", stream.id) stream.writingM.Unlock() return nil