Documentation
¶
Index ¶
- Variables
- func BatchRLock(backs []*Back) iter.Seq2[int, *Back]
- func DialContext(ctx context.Context, urlStr string, requestHeader http.Header, ...) (net.Conn, *http.Response, error)
- func Load(configF *pfile.File, configS *[]Config) error
- func LoadX509PubKey(certPEMBlock []byte) tls.Certificate
- func MarkRetry(e error) error
- func Test(ctx context.Context, port int, logger *plog.Log)
- func Upgrade(w http.ResponseWriter, r *http.Request, responseHeader http.Header) (net.Conn, error)
- type Back
- type Blocks
- type Config
- type ErrCanRetry
- type File
- type HandshakeError
- type Pather
- type Route
- type Setting
Constants ¶
This section is empty.
Variables ¶
View Source
var ( ErrRedirect = errors.New("ErrRedirect") ErrNoHttp = errors.New("ErrNoHttp") ErrNoWs = errors.New("ErrNoWs") ErrCopy = errors.New("ErrCopy") ErrReqReBodyFail = errors.New("ErrReqReBodyFail") ErrReqReBodyFull = errors.New("ErrReqReBodyFull") ErrReqReBodyOverflow = errors.New("ErrReqReBodyOverflow") ErrReqRetry = errors.New("ErrReqRetry") ErrReqCreFail = errors.New("ErrReqCreFail") ErrReqDoFail = errors.New("ErrReqDoFail") ErrResDoFail = errors.New("ErrResDoFail") ErrResFail = errors.New("ErrResFail") ErrResTO = errors.New("ErrResTO") ErrUriTooLong = errors.New("ErrUriTooLong") ErrCheckFail = errors.New("ErrCheckFail") ErrPatherCheckFail = errors.New("ErrPatherCheckFail") ErrHeaderCheckFail = errors.New("ErrHeaderCheckFail") ErrFuncCheckFail = errors.New("ErrFuncCheckFail") ErrBodyCheckFail = errors.New("ErrBodyCheckFail") ErrAllBacksFail = errors.New("ErrAllBacksFail") ErrBackFail = errors.New("ErrBackFail") ErrNoRoute = errors.New("ErrNoRoute") ErrReUp = errors.New("ErrReUp") ErrDealReqUri = errors.New("ErrDealReqUri") ErrDealReqHeader = errors.New("ErrDealReqHeader") ErrDealResHeader = errors.New("ErrDealResHeader") ErrCerVerify = errors.New("ErrCerVerify") )
View Source
var ErrDuplicatePath = errors.New(`ErrDuplicatePath`)
View Source
var (
ErrEmptyVerifyPeerCerByte = errors.New("ErrEmptyVerifyPeerCerByte")
)
Functions ¶
func DialContext ¶ added in v0.1.20231214143418
func LoadX509PubKey ¶ added in v0.1.20240323030221
func LoadX509PubKey(certPEMBlock []byte) tls.Certificate
Types ¶
type Back ¶
type Back struct {
UpT time.Time `json:"upT"`
LastChosenT time.Time `json:"lastChosenT"`
LastFailT time.Time `json:"lastFailT"`
DisableC uint `json:"disableC"`
DealingC uint `json:"dealingC"`
ChosenC uint `json:"chosenC"`
Name string `json:"name"`
To string `json:"to"`
Weight uint `json:"weight,string"`
AlwaysUp bool `json:"alwaysUp"`
Setting
// contains filtered or unexported fields
}
type Config ¶
type Config struct {
Addr string `json:"addr"`
TLS struct {
Pub string `json:"pub,omitempty"`
Key string `json:"key,omitempty"`
Decrypt []string `json:"decrypt,omitempty"`
} `json:"tls"`
RetryBlocks Blocks `json:"retryBlocks"`
RetryBlocksI pool.BlocksI[byte] `json:"-"`
MatchRule string `json:"matchRule"`
CopyBlocks Blocks `json:"copyBlocks"`
BlocksI pool.BlocksI[byte] `json:"-"`
Routes []Route `json:"routes"`
ReqIdLoop int `json:"reqIdLoop"`
// contains filtered or unexported fields
}
type ErrCanRetry ¶ added in v0.1.20241009015120
type ErrCanRetry struct {
// contains filtered or unexported fields
}
type HandshakeError ¶ added in v0.1.20231214143418
type HandshakeError struct {
// contains filtered or unexported fields
}
func (HandshakeError) Error ¶ added in v0.1.20231214143418
func (t HandshakeError) Error() string
type Pather ¶ added in v0.1.20250927162358
type Route ¶
type Route struct {
Name string `json:"name"`
Path []string `json:"path"`
RollRule string `json:"rollRule,omitempty"`
AlwaysUp bool `json:"alwaysUp"`
Setting
Backs []Back `json:"backs"`
// contains filtered or unexported fields
}
func (*Route) FiliterBackByRequest ¶ added in v0.1.20240305005058
type Setting ¶ added in v0.1.20240321070814
type Setting struct {
PathAdd bool `json:"pathAdd"`
CtxToSec float64 `json:"ctxToSec"`
ErrToSec float64 `json:"errToSec"`
Splicing int `json:"splicing"`
ErrBanSec int `json:"errBanSec"`
InsecureSkipVerify bool `json:"insecureSkipVerify"`
VerifyPeerCer string `json:"verifyPeerCer,omitempty"`
Proxy string `json:"proxy,omitempty"`
Filiters []*filiter.Filiter `json:"filiters,omitempty"`
Dealer dealer.Dealer `json:"dealer,omitempty"`
// contains filtered or unexported fields
}
Click to show internal directories.
Click to hide internal directories.