http

package
v1.8.24 Latest Latest
Warning

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

Go to latest
Published: Aug 30, 2024 License: MPL-2.0 Imports: 34 Imported by: 54

Documentation

Index

Constants

This section is empty.

Variables

View Source
var File_proxy_http_config_proto protoreflect.FileDescriptor

Functions

This section is empty.

Types

type Account

type Account struct {
	Username string `protobuf:"bytes,1,opt,name=username,proto3" json:"username,omitempty"`
	Password string `protobuf:"bytes,2,opt,name=password,proto3" json:"password,omitempty"`
	// contains filtered or unexported fields
}

func (*Account) AsAccount

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

func (*Account) Descriptor deprecated

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

Deprecated: Use Account.ProtoReflect.Descriptor instead.

func (*Account) Equals

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

func (*Account) GetPassword

func (x *Account) GetPassword() string

func (*Account) GetUsername

func (x *Account) GetUsername() string

func (*Account) ProtoMessage

func (*Account) ProtoMessage()

func (*Account) ProtoReflect

func (x *Account) ProtoReflect() protoreflect.Message

func (*Account) Reset

func (x *Account) Reset()

func (*Account) String

func (x *Account) String() string

type Client

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

func NewClient

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

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

func (*Client) Process

func (c *Client) Process(ctx context.Context, link *transport.Link, dialer internet.Dialer) error

Process implements proxy.Outbound.Process. We first create a socket tunnel via HTTP CONNECT method, then redirect all inbound traffic to that tunnel.

type ClientConfig

type ClientConfig struct {

	// Sever is a list of HTTP server addresses.
	Server []*protocol.ServerEndpoint `protobuf:"bytes,1,rep,name=server,proto3" json:"server,omitempty"`
	Header []*Header                  `protobuf:"bytes,2,rep,name=header,proto3" json:"header,omitempty"`
	// contains filtered or unexported fields
}

ClientConfig is the protobuf config for HTTP proxy client.

func (*ClientConfig) Descriptor deprecated

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

Deprecated: Use ClientConfig.ProtoReflect.Descriptor instead.

func (*ClientConfig) GetHeader added in v1.7.0

func (x *ClientConfig) GetHeader() []*Header

func (*ClientConfig) GetServer

func (x *ClientConfig) GetServer() []*protocol.ServerEndpoint

func (*ClientConfig) ProtoMessage

func (*ClientConfig) ProtoMessage()

func (*ClientConfig) ProtoReflect

func (x *ClientConfig) ProtoReflect() protoreflect.Message

func (*ClientConfig) Reset

func (x *ClientConfig) Reset()

func (*ClientConfig) String

func (x *ClientConfig) String() string
type Header struct {
	Key   string `protobuf:"bytes,1,opt,name=key,proto3" json:"key,omitempty"`
	Value string `protobuf:"bytes,2,opt,name=value,proto3" json:"value,omitempty"`
	// contains filtered or unexported fields
}

func (*Header) Descriptor deprecated added in v1.7.0

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

Deprecated: Use Header.ProtoReflect.Descriptor instead.

func (*Header) GetKey added in v1.7.0

func (x *Header) GetKey() string

func (*Header) GetValue added in v1.7.0

func (x *Header) GetValue() string

func (*Header) ProtoMessage added in v1.7.0

func (*Header) ProtoMessage()

func (*Header) ProtoReflect added in v1.7.0

func (x *Header) ProtoReflect() protoreflect.Message

func (*Header) Reset added in v1.7.0

func (x *Header) Reset()

func (*Header) String added in v1.7.0

func (x *Header) String() string

type Server

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

Server is an HTTP proxy server.

func NewServer

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

NewServer creates a new HTTP inbound handler.

func (*Server) Network

func (*Server) Network() []net.Network

Network implements proxy.Inbound.

func (*Server) Process

func (s *Server) Process(ctx context.Context, network net.Network, conn stat.Connection, dispatcher routing.Dispatcher) error

func (*Server) ProcessWithFirstbyte added in v1.8.24

func (s *Server) ProcessWithFirstbyte(ctx context.Context, network net.Network, conn stat.Connection, dispatcher routing.Dispatcher, firstbyte ...byte) error

Firstbyte is for forwarded conn from SOCKS inbound Because it needs first byte to choose protocol We need to add it back Other parts are the same as the process function

type ServerConfig

type ServerConfig struct {

	// Deprecated: Marked as deprecated in proxy/http/config.proto.
	Timeout          uint32            `protobuf:"varint,1,opt,name=timeout,proto3" json:"timeout,omitempty"`
	Accounts         map[string]string `` /* 157-byte string literal not displayed */
	AllowTransparent bool              `protobuf:"varint,3,opt,name=allow_transparent,json=allowTransparent,proto3" json:"allow_transparent,omitempty"`
	UserLevel        uint32            `protobuf:"varint,4,opt,name=user_level,json=userLevel,proto3" json:"user_level,omitempty"`
	// contains filtered or unexported fields
}

Config for HTTP proxy server.

func (*ServerConfig) Descriptor deprecated

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

Deprecated: Use ServerConfig.ProtoReflect.Descriptor instead.

func (*ServerConfig) GetAccounts

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

func (*ServerConfig) GetAllowTransparent

func (x *ServerConfig) GetAllowTransparent() bool

func (*ServerConfig) GetTimeout deprecated

func (x *ServerConfig) GetTimeout() uint32

Deprecated: Marked as deprecated in proxy/http/config.proto.

func (*ServerConfig) GetUserLevel

func (x *ServerConfig) GetUserLevel() uint32

func (*ServerConfig) HasAccount

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

func (*ServerConfig) ProtoMessage

func (*ServerConfig) ProtoMessage()

func (*ServerConfig) ProtoReflect

func (x *ServerConfig) ProtoReflect() protoreflect.Message

func (*ServerConfig) Reset

func (x *ServerConfig) Reset()

func (*ServerConfig) String

func (x *ServerConfig) String() string

Jump to

Keyboard shortcuts

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