package starnet import ( "errors" "fmt" ) var ( // ErrInvalidMethod 无效的 HTTP 方法 ErrInvalidMethod = errors.New("starnet: invalid HTTP method") // ErrInvalidURL 无效的 URL ErrInvalidURL = errors.New("starnet: invalid URL") // ErrInvalidIP 无效的 IP 地址 ErrInvalidIP = errors.New("starnet: invalid IP address") // ErrInvalidDNS 无效的 DNS 服务器 ErrInvalidDNS = errors.New("starnet: invalid DNS server") // ErrNilClient HTTP Client 为 nil ErrNilClient = errors.New("starnet: http client is nil") // ErrNilReader Reader 为 nil ErrNilReader = errors.New("starnet: reader is nil") // ErrFileNotFound 文件不存在 ErrFileNotFound = errors.New("starnet: file not found") // ErrRequestNotPrepared 请求未准备好 ErrRequestNotPrepared = errors.New("starnet: request not prepared") // ErrBodyAlreadyConsumed Body 已被消费 ErrBodyAlreadyConsumed = errors.New("starnet: response body already consumed") ) // wrapError 包装错误,添加上下文信息 func wrapError(err error, format string, args ...interface{}) error { if err == nil { return nil } msg := fmt.Sprintf(format, args...) return fmt.Errorf("%s: %w", msg, err) } var ( // ErrNilConn indicates a nil net.Conn argument. ErrNilConn = errors.New("starnet: nil connection") // ErrNonTLSNotAllowed indicates plain TCP was detected while non-TLS is forbidden. ErrNonTLSNotAllowed = errors.New("starnet: non-TLS connection not allowed") // ErrNotTLS indicates caller asked for TLS-only object but conn is plain TCP. ErrNotTLS = errors.New("starnet: connection is not TLS") // ErrNoTLSConfig indicates TLS was detected but no usable TLS config is available. ErrNoTLSConfig = errors.New("starnet: no TLS config available") )