Files
mtproxy_checker/internal/checkresult/checkresult.go
T
Denozordec 6f2dbcbca3
Publish mtproxy_checker Docker image / test (push) Successful in 13s
Publish mtproxy_checker Docker image / build-and-push (push) Successful in 52s
Update MTPROXY_CHECK_TIMEOUT to 45s in docker-compose and documentation; adjust default timeout handling in code for improved performance under slow network conditions.
2026-04-11 13:39:52 +07:00

28 lines
547 B
Go

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, context.DeadlineExceeded) {
return 4, "timeout"
}
var ne net.Error
if errors.As(err, &ne) && ne.Timeout() {
return 4, "timeout"
}
return 1, err.Error()
}