frps: update

This commit is contained in:
fatedier 2016-12-28 00:56:55 +08:00
parent a5434e31b7
commit 90d1384bf7
2 changed files with 7 additions and 4 deletions

View File

@ -395,7 +395,9 @@ 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.Lock()
oldServer.Release() oldServer.Release()
oldServer.Unlock()
if oldServer.PrivilegeMode { if oldServer.PrivilegeMode {
delete(ProxyServers, s.Name) delete(ProxyServers, s.Name)
} }

View File

@ -276,10 +276,14 @@ func (p *ProxyServer) Start(c *conn.Conn) (err error) {
} }
func (p *ProxyServer) Close() { func (p *ProxyServer) Close() {
p.Lock()
defer p.Unlock()
oldStatus := p.Status
p.Release() p.Release()
// if the proxy created by PrivilegeMode, delete it when closed // if the proxy created by PrivilegeMode, delete it when closed
if p.PrivilegeMode { if p.PrivilegeMode && oldStatus != consts.Closed {
// NOTE: this will take the global ProxyServerMap's lock // NOTE: this will take the global ProxyServerMap's lock
// if we only want to release resources, use Release() instead // if we only want to release resources, use Release() instead
DeleteProxy(p.Name) DeleteProxy(p.Name)
@ -287,9 +291,6 @@ func (p *ProxyServer) Close() {
} }
func (p *ProxyServer) Release() { func (p *ProxyServer) Release() {
p.Lock()
defer p.Unlock()
if p.Status != consts.Closed { if p.Status != consts.Closed {
p.Status = consts.Closed p.Status = consts.Closed
for _, l := range p.listeners { for _, l := range p.listeners {