socks

package
v3.0.1+incompatible Latest Latest
Warning

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

Go to latest
Published: Dec 1, 2017 License: MIT Imports: 22 Imported by: 0

Documentation

Overview

Package socks provides implements of Socks protocol 4, 4a and 5.

Index

Constants

This section is empty.

Variables

View Source
var AuthType_name = map[int32]string{
	0: "NO_AUTH",
	1: "PASSWORD",
}
View Source
var AuthType_value = map[string]int32{
	"NO_AUTH":  0,
	"PASSWORD": 1,
}

Functions

func ClientHandshake added in v1.1.0

func ClientHandshake(request *protocol.RequestHeader, reader io.Reader, writer io.Writer) (*protocol.RequestHeader, error)

func DecodeUDPPacket added in v1.1.0

func DecodeUDPPacket(packet []byte) (*protocol.RequestHeader, []byte, error)

func EncodeUDPPacket added in v1.1.0

func EncodeUDPPacket(request *protocol.RequestHeader, data []byte) (*buf.Buffer, error)

Types

type Account added in v1.1.0

type Account struct {
	Username string `protobuf:"bytes,1,opt,name=username" json:"username,omitempty"`
	Password string `protobuf:"bytes,2,opt,name=password" json:"password,omitempty"`
}

func (*Account) AsAccount added in v1.1.0

func (a *Account) AsAccount() (protocol.Account, error)

func (*Account) Descriptor added in v1.1.0

func (*Account) Descriptor() ([]byte, []int)

func (*Account) Equals added in v1.1.0

func (a *Account) Equals(another protocol.Account) bool

func (*Account) GetPassword added in v1.1.0

func (m *Account) GetPassword() string

func (*Account) GetUsername added in v1.1.0

func (m *Account) GetUsername() string

func (*Account) ProtoMessage added in v1.1.0

func (*Account) ProtoMessage()

func (*Account) Reset added in v1.1.0

func (m *Account) Reset()

func (*Account) String added in v1.1.0

func (m *Account) String() string

type AuthType added in v1.1.0

type AuthType int32
const (
	AuthType_NO_AUTH  AuthType = 0
	AuthType_PASSWORD AuthType = 1
)

func (AuthType) EnumDescriptor added in v1.1.0

func (AuthType) EnumDescriptor() ([]byte, []int)

func (AuthType) String added in v1.1.0

func (x AuthType) String() string

type Client added in v1.1.0

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

Client is a Socks5 client.

func NewClient added in v1.1.0

func NewClient(ctx context.Context, config *ClientConfig) (*Client, error)

NewClient create a new Socks5 client based on the given config.

func (*Client) Process added in v1.1.0

func (c *Client) Process(ctx context.Context, ray ray.OutboundRay, dialer proxy.Dialer) error

Process implements proxy.Outbound.Process.

type ClientConfig added in v1.1.0

type ClientConfig struct {
	Server []*v2ray_core_common_protocol1.ServerEndpoint `protobuf:"bytes,1,rep,name=server" json:"server,omitempty"`
}

func (*ClientConfig) Descriptor added in v1.1.0

func (*ClientConfig) Descriptor() ([]byte, []int)

func (*ClientConfig) GetServer added in v1.1.0

func (*ClientConfig) ProtoMessage added in v1.1.0

func (*ClientConfig) ProtoMessage()

func (*ClientConfig) Reset added in v1.1.0

func (m *ClientConfig) Reset()

func (*ClientConfig) String added in v1.1.0

func (m *ClientConfig) String() string

type Server added in v1.1.0

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

Server is a SOCKS 5 proxy server

func NewServer added in v1.1.0

func NewServer(ctx context.Context, config *ServerConfig) (*Server, error)

NewServer creates a new Server object.

func (*Server) Network added in v1.1.0

func (s *Server) Network() net.NetworkList

func (*Server) Process added in v1.1.0

func (s *Server) Process(ctx context.Context, network net.Network, conn internet.Connection, dispatcher dispatcher.Interface) error

type ServerConfig added in v1.1.0

type ServerConfig struct {
	AuthType   AuthType                          `protobuf:"varint,1,opt,name=auth_type,json=authType,enum=v2ray.core.proxy.socks.AuthType" json:"auth_type,omitempty"`
	Accounts   map[string]string                 `` /* 136-byte string literal not displayed */
	Address    *v2ray_core_common_net.IPOrDomain `protobuf:"bytes,3,opt,name=address" json:"address,omitempty"`
	UdpEnabled bool                              `protobuf:"varint,4,opt,name=udp_enabled,json=udpEnabled" json:"udp_enabled,omitempty"`
	Timeout    uint32                            `protobuf:"varint,5,opt,name=timeout" json:"timeout,omitempty"`
	UserLevel  uint32                            `protobuf:"varint,6,opt,name=user_level,json=userLevel" json:"user_level,omitempty"`
}

func (*ServerConfig) Descriptor added in v1.1.0

func (*ServerConfig) Descriptor() ([]byte, []int)

func (*ServerConfig) GetAccounts added in v1.1.0

func (m *ServerConfig) GetAccounts() map[string]string

func (*ServerConfig) GetAddress added in v1.1.0

func (*ServerConfig) GetAuthType added in v1.1.0

func (m *ServerConfig) GetAuthType() AuthType

func (*ServerConfig) GetTimeout added in v1.1.0

func (m *ServerConfig) GetTimeout() uint32

func (*ServerConfig) GetUdpEnabled added in v1.1.0

func (m *ServerConfig) GetUdpEnabled() bool

func (*ServerConfig) GetUserLevel added in v1.1.0

func (m *ServerConfig) GetUserLevel() uint32

func (*ServerConfig) HasAccount added in v1.1.0

func (c *ServerConfig) HasAccount(username, password string) bool

func (*ServerConfig) ProtoMessage added in v1.1.0

func (*ServerConfig) ProtoMessage()

func (*ServerConfig) Reset added in v1.1.0

func (m *ServerConfig) Reset()

func (*ServerConfig) String added in v1.1.0

func (m *ServerConfig) String() string

type ServerSession added in v1.1.0

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

func (*ServerSession) Handshake added in v1.1.0

func (s *ServerSession) Handshake(reader io.Reader, writer io.Writer) (*protocol.RequestHeader, error)

type UDPReader added in v1.1.0

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

func NewUDPReader added in v1.1.0

func NewUDPReader(reader io.Reader) *UDPReader

func (*UDPReader) ReadMultiBuffer added in v1.1.0

func (r *UDPReader) ReadMultiBuffer() (buf.MultiBuffer, error)

type UDPWriter added in v1.1.0

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

func NewUDPWriter added in v1.1.0

func NewUDPWriter(request *protocol.RequestHeader, writer io.Writer) *UDPWriter

func (*UDPWriter) Write added in v1.1.0

func (w *UDPWriter) Write(b []byte) (int, error)

Write implements io.Writer.

Jump to

Keyboard shortcuts

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