diff --git a/src/proxy/proxy_data.go b/src/proxy/proxy_data.go index 233833a..5b21b73 100644 --- a/src/proxy/proxy_data.go +++ b/src/proxy/proxy_data.go @@ -47,15 +47,19 @@ func (proxyData ProxyData) BackendUrls() []string { func (proxyData *ProxyData) cleanBackend(url string) { proxyData.mutex.Lock() - proxyData.Deads[url] = proxyData.Backends[url] - delete(proxyData.Backends, url) + if backEnd, isHas := proxyData.Backends[url]; isHas { + proxyData.Deads[url] = backEnd + delete(proxyData.Backends, url) + } defer proxyData.mutex.Unlock() } func (proxyData *ProxyData) cleanDeadend(url string) { proxyData.mutex.Lock() - proxyData.Backends[url] = proxyData.Deads[url] - delete(proxyData.Deads, url) + if backEnd, isHas := proxyData.Deads[url]; isHas { + proxyData.Backends[url] = backEnd + delete(proxyData.Deads, url) + } defer proxyData.mutex.Unlock() }