package checkresult import ( "context" "errors" "net" "mtproxy_checker/internal/checker" ) // Classify maps a checker error to CLI-style exit codes: 0 OK, 1 generic, 3 proxy closed, 4 timeout. func Classify(err error) (exitCode int, message string) { if err == nil { return 0, "" } if errors.Is(err, checker.ErrProxyClosed) { return 3, err.Error() } if errors.Is(err, checker.ErrNoDataAfterHeader) { return 1, err.Error() } if errors.Is(err, context.DeadlineExceeded) { return 4, "timeout" } var ne net.Error if errors.As(err, &ne) && ne.Timeout() { return 4, "timeout" } return 1, err.Error() }