cfsolve

package
v0.12.2 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Mar 11, 2026 License: AGPL-3.0 Imports: 7 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func IsCFChallenge

func IsCFChallenge(statusCode int, headers map[string]string, body []byte) bool

IsCFChallenge returns true if the response looks like a Cloudflare challenge page. It requires all three conditions: status 403/503, a CF header, and a body marker.

Types

type APIResolver added in v0.12.1

type APIResolver struct {
	// contains filtered or unexported fields
}

APIResolver resolves Cloudflare challenges via an external HTTP API.

func NewAPIResolver added in v0.12.1

func NewAPIResolver(apiURL, apiKey string, timeout time.Duration) *APIResolver

NewAPIResolver creates an APIResolver targeting the given endpoint.

func (*APIResolver) Close added in v0.12.1

func (a *APIResolver) Close()

func (*APIResolver) Solve added in v0.12.1

func (a *APIResolver) Solve(ctx context.Context, challengeURL string) (*SolveResult, error)

type ChallengeResolver added in v0.12.1

type ChallengeResolver interface {
	Solve(ctx context.Context, challengeURL string) (*SolveResult, error)
	Close()
}

ChallengeResolver resolves Cloudflare challenges for a given URL.

type NullResolver added in v0.12.1

type NullResolver struct{}

NullResolver is a no-op resolver that always returns unsolved.

func (*NullResolver) Close added in v0.12.1

func (n *NullResolver) Close()

func (*NullResolver) Solve added in v0.12.1

func (n *NullResolver) Solve(_ context.Context, _ string) (*SolveResult, error)

type SolveResult

type SolveResult struct {
	Solved  bool
	Cookies []*http.Cookie
	Err     error
}

SolveResult holds the outcome of a Cloudflare challenge solve attempt.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL