proxy

package
v2.0.3-beta.4 Latest Latest
Warning

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

Go to latest
Published: May 24, 2022 License: Apache-2.0 Imports: 37 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type LeafCertSpec

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

type Manager

type Manager interface {
	Serve(net.Listener) error
	ServeSNI(net.Listener) error
	Stop() error
	IsEnabled() bool
}

func NewProxyManager

func NewProxyManager(peerHost *scheduler.PeerHost, peerTaskManager peer.TaskManager, defaultPattern scheduler.Pattern, opts *config.ProxyOption) (Manager, error)

type Option

type Option func(p *Proxy) *Proxy

Option is a functional option for configuring the proxy

func WithBasicAuth

func WithBasicAuth(auth *config.BasicAuth) Option

WithBasicAuth sets basic auth info for proxy

func WithCert

func WithCert(cert *tls.Certificate) Option

WithCert sets the certificate

func WithDefaultFilter

func WithDefaultFilter(f string) Option

WithDefaultFilter sets default filter for http requests without X-Dragonfly-Filter Header

func WithDefaultPattern added in v2.0.3

func WithDefaultPattern(pattern scheduler.Pattern) Option

WithDefaultPattern sets default pattern for downloading

func WithDirectHandler

func WithDirectHandler(h *http.ServeMux) Option

WithDirectHandler sets the handler for non-proxy requests

func WithDumpHTTPContent added in v2.0.1

func WithDumpHTTPContent(dump bool) Option

func WithHTTPSHosts

func WithHTTPSHosts(hosts ...*config.HijackHost) Option

WithHTTPSHosts sets the rules for hijacking https requests

func WithMaxConcurrency

func WithMaxConcurrency(con int64) Option

WithMaxConcurrency sets max concurrent for process http request

func WithPeerHost

func WithPeerHost(peerHost *scheduler.PeerHost) Option

WithPeerHost sets the *scheduler.PeerHost

func WithPeerIDGenerator added in v2.0.2

func WithPeerIDGenerator(peerIDGenerator peer.IDGenerator) Option

WithPeerIDGenerator sets the *transport.PeerIDGenerator

func WithPeerTaskManager

func WithPeerTaskManager(peerTaskManager peer.TaskManager) Option

WithPeerTaskManager sets the peer.PeerTaskManager

func WithRegistryMirror

func WithRegistryMirror(r *config.RegistryMirror) Option

WithRegistryMirror sets the registry mirror for the proxy

func WithRules

func WithRules(rules []*config.ProxyRule) Option

WithRules sets the proxy rules

func WithWhiteList

func WithWhiteList(whiteList []*config.WhiteList) Option

WithWhiteList sets the proxy whitelist

type Proxy

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

Proxy is a http proxy handler. It proxies requests with dragonfly if any defined proxy rules is matched

func NewProxy

func NewProxy(options ...Option) (*Proxy, error)

NewProxy returns a new transparent proxy from the given options

func NewProxyWithOptions

func NewProxyWithOptions(options ...Option) (*Proxy, error)

NewProxyWithOptions constructs a new instance of a Proxy with additional options.

func (*Proxy) ServeHTTP

func (proxy *Proxy) ServeHTTP(w http.ResponseWriter, r *http.Request)

ServeHTTP implements http.Handler.ServeHTTP

func (*Proxy) ServeSNI

func (proxy *Proxy) ServeSNI(l net.Listener) error

Jump to

Keyboard shortcuts

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