Documentation ¶
Index ¶
- Constants
- Variables
- func CreatePAC(pacfile string, cfg interface{}) (handler http.Handler, err error)
- func CreatePortmap(pm *PortMap, dialer common.Dialer)
- func GetConnect(reader *bufio.Reader) (hostname string, port uint16, err error)
- func GetHandshake(reader *bufio.Reader) (methods []byte, err error)
- func GetUserPass(reader *bufio.Reader) (user string, password string, err error)
- func RunDnsServer(addr string, exchanger common.Exchanger)
- func SendAuthResult(writer *bufio.Writer, status byte) (err error)
- func SendConnectResponse(writer *bufio.Writer, res byte) (err error)
- func SendHandshakeResponse(writer *bufio.Writer, status byte) (err error)
- type DnsHandler
- type HostDispatcher
- type HttpBasicAuth
- type HttpProxy
- type PortMap
- type ServeFile
- type SocksProxy
- type TcpPortMap
- type TransparentProxy
Constants ¶
View Source
const (
SO_ORIGINAL_DST = 80
)
Variables ¶
View Source
var ( ErrProtocol = errors.New("protocol error") ErrWrongFmt = errors.New("connect packet wrong format") ErrUnknownAddrType = errors.New("unknown addr type") ErrIPv6 = errors.New("ipv6 not support yet") ErrAuthPacket = errors.New("Auth Packet Error") ErrAuthMethod = errors.New("auth method wrong") ErrAuthFailed = errors.New("auth failed") )
Functions ¶
func CreatePortmap ¶
func RunDnsServer ¶
Types ¶
type DnsHandler ¶
func (*DnsHandler) ServeDNS ¶
func (handler *DnsHandler) ServeDNS(w dns.ResponseWriter, quiz *dns.Msg)
type HostDispatcher ¶
type HostDispatcher struct {
// contains filtered or unexported fields
}
func NewHostDispatcher ¶
func NewHostDispatcher(local http.Handler, remote http.Handler) (hostdisp *HostDispatcher)
func (*HostDispatcher) ServeHTTP ¶
func (hostdisp *HostDispatcher) ServeHTTP(w http.ResponseWriter, req *http.Request)
type HttpBasicAuth ¶
type HttpBasicAuth struct { ReqHeader string RespHeader string RespStatus int // contains filtered or unexported fields }
func NewHttpBasicAuth ¶
func NewHttpBasicAuth(upstream http.Handler) (bauth *HttpBasicAuth)
func NewProxyBasicAuth ¶
func NewProxyBasicAuth(upstream http.Handler) (bauth *HttpBasicAuth)
func (*HttpBasicAuth) AddUserPass ¶
func (bauth *HttpBasicAuth) AddUserPass(usr, pwd string)
func (*HttpBasicAuth) Authenticate ¶
func (bauth *HttpBasicAuth) Authenticate(req *http.Request) bool
func (*HttpBasicAuth) ServeHTTP ¶
func (bauth *HttpBasicAuth) ServeHTTP(w http.ResponseWriter, req *http.Request)
type HttpProxy ¶
func NewHttpProxy ¶
func (*HttpProxy) ServeConnect ¶
func (p *HttpProxy) ServeConnect(w http.ResponseWriter, r *http.Request)
type ServeFile ¶
type ServeFile struct {
// contains filtered or unexported fields
}
func NewServeFile ¶
type SocksProxy ¶
type SocksProxy struct {
// contains filtered or unexported fields
}
func NewSocksProxy ¶
func NewSocksProxy(dialer common.Dialer, username, password string) (p *SocksProxy)
func (*SocksProxy) SocksHandler ¶
func (*SocksProxy) Start ¶
func (p *SocksProxy) Start(addr string)
type TcpPortMap ¶
type TransparentProxy ¶
type TransparentProxy struct {
// contains filtered or unexported fields
}
func NewTransparentProxy ¶
func NewTransparentProxy(dialer common.Dialer) (tproxy *TransparentProxy)
func (*TransparentProxy) ServeConn ¶
func (tproxy *TransparentProxy) ServeConn(conn net.Conn) (err error)
func (*TransparentProxy) Start ¶
func (tproxy *TransparentProxy) Start(network, addr string)
Click to show internal directories.
Click to hide internal directories.