helper

package
v0.29.0 Latest Latest
Warning

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

Go to latest
Published: Oct 18, 2017 License: BSD-3-Clause Imports: 24 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var ErrConnReset = errors.New("Conn reset")
View Source
var ErrNoSNI = errors.New("No SNI in protocol")
View Source
var ErrReadTimeout = errors.New("read timeout")
View Source
var ErrTLSClientHello = errors.New("Invalid tls client hello")
View Source
var ErrTLSIncomplete = errors.New("TLS header incomplete")
View Source
var ErrWriteTimeout = errors.New("write timeout")

Functions

func AsyncNotify added in v0.27.0

func AsyncNotify(ch chan struct{})

asyncNotify is used to signal a waiting goroutine

func AsyncSendErr added in v0.27.0

func AsyncSendErr(ch chan error, err error)

func GenerateTLSConfig added in v0.27.2

func GenerateTLSConfig() *tls.Config

Setup a bare-bones TLS config for the server

func GetLocalIPSet added in v0.29.0

func GetLocalIPSet() map[string]bool

func GetLocalIPv4

func GetLocalIPv4() []string

func GetRequestURLString

func GetRequestURLString(req *http.Request) string

func HTTPProxyConnect added in v0.26.0

func HTTPProxyConnect(proxyURL *url.URL, c net.Conn, addr string) error

func IPv42Int

func IPv42Int(ip string) (int64, error)

func IsPrivateIP

func IsPrivateIP(ip string) bool

func IsTimeoutError added in v0.26.0

func IsTimeoutError(err error) bool

func Long2IPv4

func Long2IPv4(i uint64) string

func PKCS7Pad

func PKCS7Pad(buf *bytes.Buffer, blen int)

func PKCS7Unpad

func PKCS7Unpad(in []byte) []byte

Returns slice of the original data without padding.

func PeekTLSServerName added in v0.27.3

func PeekTLSServerName(reader *bufio.Reader) (string, error)

func PrepareRegexp

func PrepareRegexp(rule string) (*regexp.Regexp, error)

func ProxyDial added in v0.27.2

func ProxyDial(proxyURL string, addr string, timeout time.Duration) (net.Conn, error)

func RandAsciiString

func RandAsciiString(n int) string

func RandBetween

func RandBetween(min, max int) int

func ReadWithoutComment

func ReadWithoutComment(file string, commentPrefix string) ([]byte, error)

func Socks5ProxyConnect added in v0.26.0

func Socks5ProxyConnect(proxyURL *url.URL, conn net.Conn, addr string) error

func Socks5ProxyDial added in v0.26.0

func Socks5ProxyDial(proxyURL string, addr string, timeout time.Duration) (net.Conn, error)

func WildcardMatch

func WildcardMatch(text string, pattern string) bool

Types

type BufferChunkReader

type BufferChunkReader struct {
	io.Reader
	Err error
}

func (*BufferChunkReader) Read

func (r *BufferChunkReader) Read(p []byte) (int, error)

type DebugReader added in v0.26.3

type DebugReader struct {
	io.Reader
	Buf bytes.Buffer
}

func (*DebugReader) Read added in v0.26.3

func (r *DebugReader) Read(p []byte) (int, error)

type TimeoutReadWriteCloser added in v0.29.0

type TimeoutReadWriteCloser struct {
	io.ReadWriteCloser
	// contains filtered or unexported fields
}

func (*TimeoutReadWriteCloser) Read added in v0.29.0

func (s *TimeoutReadWriteCloser) Read(p []byte) (n int, err error)

func (*TimeoutReadWriteCloser) SetReadDeadline added in v0.29.0

func (s *TimeoutReadWriteCloser) SetReadDeadline(t time.Time) error

func (*TimeoutReadWriteCloser) SetWriteDeadline added in v0.29.0

func (s *TimeoutReadWriteCloser) SetWriteDeadline(t time.Time) error

func (*TimeoutReadWriteCloser) Write added in v0.29.0

func (s *TimeoutReadWriteCloser) Write(p []byte) (n int, err error)

Jump to

Keyboard shortcuts

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