proxy

package
v3.46.1+incompatible Latest Latest
Warning

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

Go to latest
Published: Oct 5, 2018 License: MIT Imports: 5 Imported by: 73

Documentation

Overview

Package proxy contains all proxies used by V2Ray.

To implement an inbound or outbound proxy, one needs to do the following: 1. Implement the interface(s) below. 2. Register a config creator through common.RegisterConfig.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func ContextWithResolveIPs

func ContextWithResolveIPs(ctx context.Context, f IPResolver) context.Context

Types

type Dialer

type Dialer interface {
	// Dial dials a system connection to the given destination.
	Dial(ctx context.Context, destination net.Destination) (internet.Connection, error)
}

Dialer is used by OutboundHandler for creating outbound connections.

type GetInbound

type GetInbound interface {
	GetInbound() Inbound
}

type GetOutbound

type GetOutbound interface {
	GetOutbound() Outbound
}

type IPResolver

type IPResolver interface {
	Resolve() []net.Address
}

func ResolvedIPsFromContext

func ResolvedIPsFromContext(ctx context.Context) (IPResolver, bool)

type Inbound

type Inbound interface {
	// Network returns a list of network that this inbound supports. Connections with not-supported networks will not be passed into Process().
	Network() net.NetworkList

	// Process processes a connection of given network. If necessary, the Inbound can dispatch the connection to an Outbound.
	Process(context.Context, net.Network, internet.Connection, core.Dispatcher) error
}

An Inbound processes inbound connections.

type Outbound

type Outbound interface {
	// Process processes the given connection. The given dialer may be used to dial a system outbound connection.
	Process(context.Context, *core.Link, Dialer) error
}

An Outbound process outbound connections.

type UserManager

type UserManager interface {
	// AddUser adds a new user.
	AddUser(context.Context, *protocol.MemoryUser) error

	// RemoveUser removes a user by email.
	RemoveUser(context.Context, string) error
}

UserManager is the interface for Inbounds and Outbounds that can manage their users.

Directories

Path Synopsis
Package blackhole is an outbound handler that blocks all connections.
Package blackhole is an outbound handler that blocks all connections.
Package shadowsocks provides compatible functionality to Shadowsocks.
Package shadowsocks provides compatible functionality to Shadowsocks.
Package socks provides implements of Socks protocol 4, 4a and 5.
Package socks provides implements of Socks protocol 4, 4a and 5.
Package vmess contains the implementation of VMess protocol and transportation.
Package vmess contains the implementation of VMess protocol and transportation.

Jump to

Keyboard shortcuts

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