Documentation ¶
Index ¶
- Constants
- Variables
- func BinaryWrite(raw *bytes.Buffer, v ...string)
- func BytesToNum(b []byte) int
- func ChangeHostAndHeader(r *http.Request, host string, header string, addr string)
- func CheckAuth(r *http.Request, user, passwd string) bool
- func CopyBuffer(dst io.Writer, src io.Reader, label ...string) (written int64, err error)
- func DomainCheck(domain string) bool
- func FileExists(name string) bool
- func FormatAddress(s string) string
- func GeSynctMapLen(m sync.Map) int
- func GetAppPath() string
- func GetBoolByStr(s string) bool
- func GetBufPoolCopy() []byte
- func GetEnvMap() map[string]string
- func GetExtFromPath(path string) string
- func GetExternalIp() string
- func GetHostByName(hostname string) string
- func GetInstallPath() string
- func GetIntNoErrByStr(str string) int
- func GetIntranetIp() (error, string)
- func GetIpByAddr(addr string) string
- func GetLocalUdpAddr() (net.Conn, error)
- func GetLogMsg() string
- func GetLogPath() string
- func GetNpcLogPath() string
- func GetPortByAddr(addr string) int
- func GetPorts(p string) []int
- func GetRunPath() string
- func GetServerIpByClientIp(clientIp net.IP) string
- func GetStrByBool(b bool) string
- func GetTmpPath() string
- func GetWriteStr(v ...string) []byte
- func Getverifyval(vkey string) string
- func InIntArr(arr []int, val int) bool
- func InStrArr(arr []string, val string) bool
- func IsArrContains(arr []string, val string) bool
- func IsPort(p string) bool
- func IsPublicIP(IP net.IP) bool
- func IsWindows() bool
- func ParseStr(str string) (string, error)
- func PutBufPoolCopy(buf []byte)
- func PutBufPoolMax(buf []byte)
- func PutBufPoolUdp(buf []byte)
- func ReadAllFromFile(filePath string) ([]byte, error)
- func RemoveArrVal(arr []string, val string) []string
- func TestTcpPort(port int) bool
- func TestUdpPort(port int) bool
- func TrimArr(arr []string) []string
- type Addr
- type BasePackager
- func (Self *BasePackager) NewPac(contents ...interface{}) (err error)
- func (Self *BasePackager) Pack(writer io.Writer) (err error)
- func (Self *BasePackager) Split() (strList []string)
- func (Self *BasePackager) UnPack(reader io.Reader) (n uint16, err error)
- func (Self *BasePackager) Unmarshal(content interface{}) (err error)
- type ConnPackager
- type ListElement
- type MuxPackager
- type NetPackager
- type StoreMsg
- type UDPDatagram
- type UDPHeader
Constants ¶
const ( CONN_DATA_SEQ = "*#*" //Separator VERIFY_EER = "vkey" VERIFY_SUCCESS = "sucs" WORK_MAIN = "main" WORK_CHAN = "chan" WORK_CONFIG = "conf" WORK_REGISTER = "rgst" WORK_SECRET = "sert" WORK_FILE = "file" WORK_P2P = "p2pm" WORK_P2P_VISITOR = "p2pv" WORK_P2P_PROVIDER = "p2pp" WORK_P2P_CONNECT = "p2pc" WORK_P2P_SUCCESS = "p2ps" WORK_P2P_END = "p2pe" WORK_P2P_LAST = "p2pl" WORK_STATUS = "stus" RES_MSG = "msg0" RES_CLOSE = "clse" NEW_UDP_CONN = "udpc" //p2p udp conn NEW_TASK = "task" NEW_CONF = "conf" NEW_HOST = "host" CONN_TCP = "tcp" CONN_UDP = "udp" CONN_TEST = "TST" Content-Type: text/plain; charset=utf-8 WWW-Authenticate: Basic realm="easyProxy" 401 Unauthorized` ConnectionFailBytes = `HTTP/1.1 404 Not Found ` )
const ( MUX_PING_FLAG uint8 = iota MUX_NEW_CONN_OK MUX_NEW_CONN_Fail MUX_NEW_MSG MUX_NEW_MSG_PART MUX_MSG_SEND_OK MUX_NEW_CONN MUX_CONN_CLOSE MUX_PING_RETURN MUX_PING int32 = -1 MAXIMUM_SEGMENT_SIZE = PoolSizeWindow MAXIMUM_WINDOW_SIZE = 1 << 25 // 1<<31-1 TCP slide window size is very large, )
const MaxMsgLen = 5000
const PoolSize = 64 * 1024
const PoolSizeBuffer = 4096
const PoolSizeCopy = 32 << 10
const PoolSizeSmall = 100
const PoolSizeUdp = 1472 + 200
const PoolSizeWindow = PoolSizeBuffer - 2 - 4 - 4 - 1
Variables ¶
var BufPoolCopy = sync.Pool{ New: func() interface{} { return make([]byte, PoolSizeCopy) }, }
var BufPoolMax = sync.Pool{ New: func() interface{} { return make([]byte, PoolSize) }, }
var BufPoolSmall = sync.Pool{ New: func() interface{} { return make([]byte, PoolSizeSmall) }, }
var BufPoolUdp = sync.Pool{ New: func() interface{} { return make([]byte, PoolSizeUdp) }, }
var BuffPool = bufferPool{}
var CopyBuff = copyBufferPool{}
var ListElementPool = listElementPool{}
var MuxPack = muxPackagerPool{}
var WindowBuff = windowBufferPool{}
Functions ¶
func BinaryWrite ¶
Write length and individual byte data Length prevents sticking # Characters are used to separate data
func ChangeHostAndHeader ¶
Change headers and host of request
func CopyBuffer ¶ added in v0.0.16
func FileExists ¶
FileExists reports whether the named file or directory exists.
func FormatAddress ¶ added in v0.0.15
if the s is just a port,return 127.0.0.1:s
func GeSynctMapLen ¶ added in v0.21.0
get the length of the sync map
func GetBufPoolCopy ¶ added in v0.24.0
func GetBufPoolCopy() []byte
func GetExtFromPath ¶ added in v0.22.0
func GetExternalIp ¶ added in v0.24.2
func GetExternalIp() string
func GetHostByName ¶
Get the corresponding IP address through domain name
func GetInstallPath ¶
func GetInstallPath() string
Different systems get different installation paths
func GetIntranetIp ¶ added in v0.24.2
func GetIpByAddr ¶ added in v0.0.15
get address from the complete address
func GetLocalUdpAddr ¶ added in v0.18.0
send this ip forget to get a local udp port
func GetPortByAddr ¶ added in v0.23.0
get port from the complete address
func GetRunPath ¶
func GetRunPath() string
Get the currently selected configuration file directory For non-Windows systems, select the /etc/nps as config directory if exist, or select ./ windows system, select the C:\Program Files\nps as config directory if exist, or select ./
func GetServerIpByClientIp ¶ added in v0.24.2
func IsArrContains ¶ added in v0.18.1
func IsPublicIP ¶ added in v0.24.2
func PutBufPoolCopy ¶ added in v0.24.0
func PutBufPoolCopy(buf []byte)
func PutBufPoolMax ¶ added in v0.24.0
func PutBufPoolMax(buf []byte)
func PutBufPoolUdp ¶ added in v0.24.0
func PutBufPoolUdp(buf []byte)
func ReadAllFromFile ¶
Read file content by file path
func RemoveArrVal ¶ added in v0.18.1
remove value from string array
Types ¶
type Addr ¶ added in v0.24.2
func ToSocksAddr ¶ added in v0.24.2
type BasePackager ¶ added in v0.24.0
func (*BasePackager) NewPac ¶ added in v0.24.0
func (Self *BasePackager) NewPac(contents ...interface{}) (err error)
func (*BasePackager) Pack ¶ added in v0.24.0
func (Self *BasePackager) Pack(writer io.Writer) (err error)
似乎这里涉及到父类作用域问题,当子类调用父类的方法时,其struct仅仅为父类的
func (*BasePackager) Split ¶ added in v0.24.0
func (Self *BasePackager) Split() (strList []string)
func (*BasePackager) UnPack ¶ added in v0.24.0
func (Self *BasePackager) UnPack(reader io.Reader) (n uint16, err error)
Unpack 会导致传入的数字类型转化成float64!! 主要原因是json unmarshal并未传入正确的数据类型
func (*BasePackager) Unmarshal ¶ added in v0.24.0
func (Self *BasePackager) Unmarshal(content interface{}) (err error)
type ConnPackager ¶ added in v0.24.0
type ConnPackager struct { // Todo ConnType uint8 BasePackager }
func (*ConnPackager) NewPac ¶ added in v0.24.0
func (Self *ConnPackager) NewPac(connType uint8, content ...interface{}) (err error)
type ListElement ¶ added in v0.24.0
type MuxPackager ¶ added in v0.24.0
type MuxPackager struct { Flag uint8 Id int32 Window uint32 ReadLength uint32 BasePackager }
func (*MuxPackager) NewPac ¶ added in v0.24.0
func (Self *MuxPackager) NewPac(flag uint8, id int32, content ...interface{}) (err error)
type NetPackager ¶ added in v0.24.0
type UDPDatagram ¶ added in v0.24.2
func NewUDPDatagram ¶ added in v0.24.2
func NewUDPDatagram(header *UDPHeader, data []byte) *UDPDatagram
func ReadUDPDatagram ¶ added in v0.24.2
func ReadUDPDatagram(r io.Reader) (*UDPDatagram, error)