From 7ba0773fd792c43321254b04c77ff2bcbe5d9974 Mon Sep 17 00:00:00 2001 From: nadoo <287492+nadoo@users.noreply.github.com> Date: Sun, 10 Sep 2017 20:33:35 +0800 Subject: [PATCH] general: add some comments to functions --- dns.go | 2 +- dnstun.go | 4 ++-- forwarder.go | 7 +++++-- http.go | 2 +- ipset_linux.go | 4 +++- ipset_other.go | 6 ++++-- log.go | 2 +- mixed.go | 2 +- redir_linux_386.go | 3 ++- redir_other.go | 2 +- rule.go | 7 +++++-- server.go | 2 +- socks5.go | 2 +- strategy.go | 6 +++--- tcptun.go | 2 +- tproxy.go | 5 ++++- tproxy_other.go | 1 + 17 files changed, 37 insertions(+), 22 deletions(-) diff --git a/dns.go b/dns.go index 397db47..25149e1 100644 --- a/dns.go +++ b/dns.go @@ -62,7 +62,7 @@ type DNS struct { answerHandlers []DNSAnswerHandler } -// NewDNS returns a dns forwarder. client -> dns.udp -> glider -> forwarder -> remote dns addr +// NewDNS returns a dns forwarder. client[dns.udp] -> glider[tcp] -> forwarder[dns.tcp] -> remote dns addr func NewDNS(addr, raddr string, sDialer Dialer) (*DNS, error) { s := &DNS{ Forwarder: NewForwarder(addr, nil), diff --git a/dnstun.go b/dnstun.go index df4b53f..2c0c04c 100644 --- a/dnstun.go +++ b/dnstun.go @@ -2,7 +2,7 @@ package main -// DNSTun . +// DNSTun struct type DNSTun struct { *Forwarder // as client sDialer Dialer // dialer for server @@ -13,7 +13,7 @@ type DNSTun struct { tcp *TCPTun } -// NewDNSTun returns a dns forwarder. +// NewDNSTun returns a dns tunnel forwarder. func NewDNSTun(addr, raddr string, sDialer Dialer) (*DNSTun, error) { s := &DNSTun{ Forwarder: NewForwarder(addr, nil), diff --git a/forwarder.go b/forwarder.go index cc72f16..ea34525 100644 --- a/forwarder.go +++ b/forwarder.go @@ -2,13 +2,13 @@ package main import "net" -// Forwarder . +// Forwarder struct type Forwarder struct { addr string cDialer Dialer } -// NewForwarder . +// NewForwarder returns a base forwarder func NewForwarder(addr string, cDialer Dialer) *Forwarder { if cDialer == nil { cDialer = Direct @@ -17,12 +17,15 @@ func NewForwarder(addr string, cDialer Dialer) *Forwarder { return &Forwarder{addr: addr, cDialer: cDialer} } +// Addr returns forwarder's address func (p *Forwarder) Addr() string { return p.addr } +// Dial to remote addr via cDialer func (p *Forwarder) Dial(network, addr string) (net.Conn, error) { return p.cDialer.Dial(network, addr) } +// NextDialer returns the next cDialer func (p *Forwarder) NextDialer(dstAddr string) Dialer { return p.cDialer } diff --git a/http.go b/http.go index e4d9ec4..f8d4f8c 100644 --- a/http.go +++ b/http.go @@ -16,7 +16,7 @@ import ( "time" ) -// HTTP . +// HTTP struct type HTTP struct { *Forwarder // as client sDialer Dialer // dialer for server diff --git a/ipset_linux.go b/ipset_linux.go index e0065c5..48b68d7 100644 --- a/ipset_linux.go +++ b/ipset_linux.go @@ -53,6 +53,7 @@ const NLA_F_NET_BYTEORDER = (1 << 14) var nextSeqNr uint32 var nativeEndian binary.ByteOrder +// IPSetManager struct type IPSetManager struct { fd int lsa syscall.SockaddrNetlink @@ -61,6 +62,7 @@ type IPSetManager struct { domainSet sync.Map } +// NewIPSetManager returns a IPSetManager func NewIPSetManager(mainSet string, rules []*RuleConf) (*IPSetManager, error) { fd, err := syscall.Socket(syscall.AF_NETLINK, syscall.SOCK_RAW, syscall.NETLINK_NETFILTER) if err != nil { @@ -111,7 +113,7 @@ func NewIPSetManager(mainSet string, rules []*RuleConf) (*IPSetManager, error) { return m, nil } -// AddDomainIP used to update ipset according to domainSet rule +// AddDomainIP implements the DNSAnswerHandler function, used to update ipset according to domainSet rule func (m *IPSetManager) AddDomainIP(domain, ip string) error { if ip != "" { diff --git a/ipset_other.go b/ipset_other.go index 1f2857f..5d99bfe 100644 --- a/ipset_other.go +++ b/ipset_other.go @@ -4,13 +4,15 @@ package main import "errors" -type IPSetManager struct { -} +// IPSetManager struct +type IPSetManager struct{} +// NewIPSetManager returns a IPSetManager func NewIPSetManager(mainSet string, rules []*RuleConf) (*IPSetManager, error) { return nil, errors.New("ipset not supported on this os") } +// AddDomainIP implements the DNSAnswerHandler function func (m *IPSetManager) AddDomainIP(domain, ip string) error { return errors.New("ipset not supported on this os") } diff --git a/log.go b/log.go index b14bafe..dd88acc 100644 --- a/log.go +++ b/log.go @@ -2,7 +2,7 @@ package main import "log" -// LogFunc . +// LogFunc defines a simple log function type LogFunc func(f string, v ...interface{}) var logf LogFunc diff --git a/mixed.go b/mixed.go index c666881..7e2f6ac 100644 --- a/mixed.go +++ b/mixed.go @@ -17,7 +17,7 @@ var httpMethods = [...][]byte{ []byte("TRACE"), } -// MixedProxy . +// MixedProxy struct type MixedProxy struct { sDialer Dialer diff --git a/redir_linux_386.go b/redir_linux_386.go index 8b8db6f..d19d48f 100644 --- a/redir_linux_386.go +++ b/redir_linux_386.go @@ -5,7 +5,8 @@ import ( "unsafe" ) -const GETSOCKOPT = 15 // https://golang.org/src/syscall/syscall_linux_386.go#L183 +// https://github.com/golang/go/blob/9e6b79a5dfb2f6fe4301ced956419a0da83bd025/src/syscall/syscall_linux_386.go#L196 +const GETSOCKOPT = 15 func socketcall(call, a0, a1, a2, a3, a4, a5 uintptr) error { var a [6]uintptr diff --git a/redir_other.go b/redir_other.go index 41cf4df..c26f857 100644 --- a/redir_other.go +++ b/redir_other.go @@ -7,7 +7,7 @@ import ( "log" ) -// RedirProxy . +// RedirProxy struct type RedirProxy struct{} // NewRedirProxy returns a redirect proxy. diff --git a/rule.go b/rule.go index 21451f4..920d486 100644 --- a/rule.go +++ b/rule.go @@ -7,7 +7,7 @@ import ( "sync" ) -// RuleDialer . +// RuleDialer struct type RuleDialer struct { gDialer Dialer @@ -16,7 +16,7 @@ type RuleDialer struct { cidrMap sync.Map } -// NewRuleDialer . +// NewRuleDialer returns a new rule dialer func NewRuleDialer(rules []*RuleConf, gDialer Dialer) *RuleDialer { rd := &RuleDialer{gDialer: gDialer} @@ -55,8 +55,10 @@ func NewRuleDialer(rules []*RuleConf, gDialer Dialer) *RuleDialer { return rd } +// Addr returns RuleDialer's address, always be "RULES" func (rd *RuleDialer) Addr() string { return "RULES" } +// NextDialer return next dialer according to rule func (p *RuleDialer) NextDialer(dstAddr string) Dialer { // TODO: change to index finders @@ -106,6 +108,7 @@ func (p *RuleDialer) NextDialer(dstAddr string) Dialer { return p.gDialer } +// Dial dials to targer addr and return a conn func (rd *RuleDialer) Dial(network, addr string) (net.Conn, error) { return rd.NextDialer(addr).Dial(network, addr) } diff --git a/server.go b/server.go index 1054c45..ebc6ab6 100644 --- a/server.go +++ b/server.go @@ -6,7 +6,7 @@ import ( "strings" ) -// Server . +// Server interface type Server interface { // ListenAndServe as proxy server, use only in server mode. ListenAndServe() diff --git a/socks5.go b/socks5.go index 300b890..68ebd08 100644 --- a/socks5.go +++ b/socks5.go @@ -55,7 +55,7 @@ var socks5Errors = []string{ "address type not supported", } -// SOCKS5 . +// SOCKS5 struct type SOCKS5 struct { *Forwarder sDialer Dialer diff --git a/strategy.go b/strategy.go index 312f5d8..4f6dd8c 100644 --- a/strategy.go +++ b/strategy.go @@ -8,7 +8,7 @@ import ( "time" ) -// NewStrategyDialer . +// NewStrategyDialer returns a new Strategy Dialer func NewStrategyDialer(strategy string, dialers []Dialer, website string, duration int) Dialer { var dialer Dialer if len(dialers) == 0 { @@ -32,7 +32,7 @@ func NewStrategyDialer(strategy string, dialers []Dialer, website string, durati return dialer } -// rrDialer +// rrDialer is the base struct of strategy dialer type rrDialer struct { dialers []Dialer idx int @@ -44,7 +44,7 @@ type rrDialer struct { duration int } -// newRRDialer . +// newRRDialer returns a new rrDialer func newRRDialer(dialers []Dialer, website string, duration int) *rrDialer { rr := &rrDialer{dialers: dialers} diff --git a/tcptun.go b/tcptun.go index 51626e1..bd1934b 100644 --- a/tcptun.go +++ b/tcptun.go @@ -2,7 +2,7 @@ package main import "net" -// TCPTun . +// TCPTun struct type TCPTun struct { *Forwarder sDialer Dialer diff --git a/tproxy.go b/tproxy.go index 5db9e67..0058e93 100644 --- a/tproxy.go +++ b/tproxy.go @@ -7,6 +7,7 @@ import ( "syscall" ) +// TProxy struct type TProxy struct { *Forwarder // as client sDialer Dialer // dialer for server @@ -28,10 +29,12 @@ func (s *TProxy) ListenAndServe() { s.ListenAndServeUDP() } +// ListenAndServeTCP . func (s *TProxy) ListenAndServeTCP() { - + logf("proxy-tproxy tcp mode not supported now, please use 'redir' instead") } +// ListenAndServeUDP . func (s *TProxy) ListenAndServeUDP() { laddr, err := net.ResolveUDPAddr("udp", s.addr) if err != nil { diff --git a/tproxy_other.go b/tproxy_other.go index ff8b3c1..f5dbaeb 100644 --- a/tproxy_other.go +++ b/tproxy_other.go @@ -7,6 +7,7 @@ import ( "log" ) +// TProxy struct type TProxy struct{} // NewTProxy returns a tproxy.