refactor: fix incorrect logic introduced in previous commits and improve error handling

This commit is contained in:
yusing
2025-11-07 15:48:38 +08:00
parent d33ff2192a
commit e9ac3cd1a9
14 changed files with 99 additions and 50 deletions

View File

@@ -1,9 +1,10 @@
package monitor
import (
"errors"
"net"
"net/url"
"strings"
"syscall"
"time"
"github.com/yusing/godoxy/internal/types"
@@ -35,10 +36,11 @@ func (mon *RawHealthMonitor) CheckHealth() (types.HealthCheckResult, error) {
conn, err := mon.dialer.DialContext(ctx, url.Scheme, url.Host)
lat := time.Since(start)
if err != nil {
errMsg := err.Error()
if strings.Contains(errMsg, "connection refused") ||
strings.Contains(errMsg, "connection reset by peer") ||
strings.Contains(errMsg, "connection closed") {
if errors.Is(err, net.ErrClosed) ||
errors.Is(err, syscall.ECONNREFUSED) ||
errors.Is(err, syscall.ECONNRESET) ||
errors.Is(err, syscall.ECONNABORTED) ||
errors.Is(err, syscall.EPIPE) {
return types.HealthCheckResult{
Latency: lat,
Healthy: false,