prevent sending on a closed channel in vhost package, fix #502

This commit is contained in:
fatedier 2017-11-01 10:51:30 +08:00
parent 1e905839f0
commit ad858a0d32

View File

@ -18,6 +18,7 @@ import (
"sync" "sync"
"time" "time"
"github.com/fatedier/frp/utils/errors"
"github.com/fatedier/frp/utils/log" "github.com/fatedier/frp/utils/log"
frpNet "github.com/fatedier/frp/utils/net" frpNet "github.com/fatedier/frp/utils/net"
) )
@ -162,7 +163,12 @@ func (v *VhostMuxer) handle(c frpNet.Conn) {
c = sConn c = sConn
l.Debug("get new http request host [%s] path [%s]", name, path) l.Debug("get new http request host [%s] path [%s]", name, path)
l.accept <- c err = errors.PanicToError(func() {
l.accept <- c
})
if err != nil {
l.Warn("listener is already closed, ignore this request")
}
} }
type Listener struct { type Listener struct {