mirror of
https://gitee.com/IrisVega/frp.git
synced 2024-11-01 22:31:29 +08:00
frps: fix sometimes no response when frpc login to frps, see #142
This commit is contained in:
parent
04a4591caa
commit
37470c26f0
File diff suppressed because one or more lines are too long
@ -340,6 +340,7 @@ func doLogin(req *msg.ControlReq, c *conn.Conn) (ret int64, info string) {
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
info = fmt.Sprintf("ProxyName [%s], start proxy error: %v", req.ProxyName, err)
|
info = fmt.Sprintf("ProxyName [%s], start proxy error: %v", req.ProxyName, err)
|
||||||
log.Warn(info)
|
log.Warn(info)
|
||||||
|
s.Close()
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
log.Info("ProxyName [%s], start proxy success", req.ProxyName)
|
log.Info("ProxyName [%s], start proxy success", req.ProxyName)
|
||||||
|
@ -395,7 +395,7 @@ func CreateProxy(s *ProxyServer) error {
|
|||||||
if oldServer.Status == consts.Working {
|
if oldServer.Status == consts.Working {
|
||||||
return fmt.Errorf("this proxy is already working now")
|
return fmt.Errorf("this proxy is already working now")
|
||||||
}
|
}
|
||||||
oldServer.Close()
|
oldServer.Release()
|
||||||
if oldServer.PrivilegeMode {
|
if oldServer.PrivilegeMode {
|
||||||
delete(ProxyServers, s.Name)
|
delete(ProxyServers, s.Name)
|
||||||
}
|
}
|
||||||
|
@ -270,6 +270,17 @@ func (p *ProxyServer) Start(c *conn.Conn) (err error) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (p *ProxyServer) Close() {
|
func (p *ProxyServer) Close() {
|
||||||
|
p.Release()
|
||||||
|
|
||||||
|
// if the proxy created by PrivilegeMode, delete it when closed
|
||||||
|
if p.PrivilegeMode {
|
||||||
|
// NOTE: this will take the global ProxyServerMap's lock
|
||||||
|
// if we only want to release resources, use Release() instead
|
||||||
|
DeleteProxy(p.Name)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func (p *ProxyServer) Release() {
|
||||||
p.Lock()
|
p.Lock()
|
||||||
defer p.Unlock()
|
defer p.Unlock()
|
||||||
|
|
||||||
@ -296,10 +307,6 @@ func (p *ProxyServer) Close() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
metric.SetStatus(p.Name, p.Status)
|
metric.SetStatus(p.Name, p.Status)
|
||||||
// if the proxy created by PrivilegeMode, delete it when closed
|
|
||||||
if p.PrivilegeMode {
|
|
||||||
DeleteProxy(p.Name)
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func (p *ProxyServer) WaitUserConn() (closeFlag bool) {
|
func (p *ProxyServer) WaitUserConn() (closeFlag bool) {
|
||||||
|
Loading…
Reference in New Issue
Block a user