send closeProxy msg to server then client start proxy error, fix #1606

This commit is contained in:
fatedier 2020-02-04 19:41:39 +08:00
parent 0f59b8f329
commit 4a4cf552af

View File

@ -112,6 +112,7 @@ func (pw *ProxyWrapper) SetRunningStatus(remoteAddr string, respErr string) erro
} }
if err := pw.pxy.Run(); err != nil { if err := pw.pxy.Run(); err != nil {
pw.close()
pw.Status = ProxyStatusStartErr pw.Status = ProxyStatusStartErr
pw.Err = err.Error() pw.Err = err.Error()
pw.lastStartErr = time.Now() pw.lastStartErr = time.Now()
@ -140,7 +141,10 @@ func (pw *ProxyWrapper) Stop() {
pw.monitor.Stop() pw.monitor.Stop()
} }
pw.Status = ProxyStatusClosed pw.Status = ProxyStatusClosed
pw.close()
}
func (pw *ProxyWrapper) close() {
pw.handler(event.EvCloseProxy, &event.CloseProxyPayload{ pw.handler(event.EvCloseProxy, &event.CloseProxyPayload{
CloseProxyMsg: &msg.CloseProxy{ CloseProxyMsg: &msg.CloseProxy{
ProxyName: pw.Name, ProxyName: pw.Name,
@ -178,11 +182,7 @@ func (pw *ProxyWrapper) checkWorker() {
} else { } else {
pw.mu.Lock() pw.mu.Lock()
if pw.Status == ProxyStatusRunning || pw.Status == ProxyStatusWaitStart { if pw.Status == ProxyStatusRunning || pw.Status == ProxyStatusWaitStart {
pw.handler(event.EvCloseProxy, &event.CloseProxyPayload{ pw.close()
CloseProxyMsg: &msg.CloseProxy{
ProxyName: pw.Name,
},
})
xl.Trace("change status from [%s] to [%s]", pw.Status, ProxyStatusCheckFailed) xl.Trace("change status from [%s] to [%s]", pw.Status, ProxyStatusCheckFailed)
pw.Status = ProxyStatusCheckFailed pw.Status = ProxyStatusCheckFailed
} }