frps: fix panic caused by frps closing the nil channel, fix #205

This commit is contained in:
fatedier 2016-12-29 23:48:17 +08:00
parent 90d1384bf7
commit 299bd7b5cb
3 changed files with 19 additions and 6 deletions

View File

@ -405,7 +405,6 @@ func CreateProxy(s *ProxyServer) error {
ProxyServers[s.Name] = s
metric.SetProxyInfo(s.Name, s.Type, s.BindAddr, s.UseEncryption, s.UseGzip,
s.PrivilegeMode, s.CustomDomains, s.Locations, s.ListenPort)
s.Init()
return nil
}

View File

@ -83,6 +83,8 @@ func NewProxyServerFromCtlMsg(req *msg.ControlReq) (p *ProxyServer) {
p.HostHeaderRewrite = req.HostHeaderRewrite
p.HttpUserName = req.HttpUserName
p.HttpPassWord = req.HttpPassWord
p.Init()
return
}
@ -298,10 +300,22 @@ func (p *ProxyServer) Release() {
l.Close()
}
}
close(p.ctlMsgChan)
close(p.workConnChan)
close(p.udpSenderChan)
close(p.closeChan)
if p.ctlMsgChan != nil {
close(p.ctlMsgChan)
p.ctlMsgChan = nil
}
if p.workConnChan != nil {
close(p.workConnChan)
p.workConnChan = nil
}
if p.udpSenderChan != nil {
close(p.udpSenderChan)
p.udpSenderChan = nil
}
if p.closeChan != nil {
close(p.closeChan)
p.closeChan = nil
}
if p.CtlConn != nil {
p.CtlConn.Close()
}

View File

@ -19,7 +19,7 @@ import (
"strings"
)
var version string = "0.9.1"
var version string = "0.9.2"
func Full() string {
return version