59 lines
1.7 KiB
Go
59 lines
1.7 KiB
Go
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")
|
|
)
|