Skip to content

Commit

Permalink
remote error comments
Browse files Browse the repository at this point in the history
  • Loading branch information
txthinking committed Nov 1, 2017
1 parent 56a8b87 commit 1fdcb90
Show file tree
Hide file tree
Showing 7 changed files with 55 additions and 61 deletions.
4 changes: 1 addition & 3 deletions client.go
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ import (
"github.com/txthinking/socks5"
)

// Client is the client of raw socks5 protocol
// Client
type Client struct {
Server *socks5.Server
RemoteAddr string
Expand Down Expand Up @@ -52,7 +52,6 @@ func (x *Client) ListenAndServe(sm Socks5Middleman) error {

// TCPHandle handles tcp reqeust
func (x *Client) TCPHandle(s *socks5.Server, c *net.TCPConn, r *socks5.Request) error {
// waiting for reply about connect failure or success
if x.Socks5Middleman != nil {
done, err := x.Socks5Middleman.TCPHandle(s, c, r)
if err != nil {
Expand All @@ -66,7 +65,6 @@ func (x *Client) TCPHandle(s *socks5.Server, c *net.TCPConn, r *socks5.Request)
}
}

// reply ok and choose address according to cmd or something wrong
if r.Cmd == socks5.CmdConnect {
tmp, err := Dial.Dial("tcp", x.RemoteAddr)
if err != nil {
Expand Down
4 changes: 2 additions & 2 deletions relay.go
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ type Relay struct {
UDPDeadline int
}

// NewRelay return a server which allow none method
// NewRelay
func NewRelay(addr, remote string, tcpTimeout, tcpDeadline, udpDeadline int) (*Relay, error) {
taddr, err := net.ResolveTCPAddr("tcp", addr)
if err != nil {
Expand Down Expand Up @@ -142,7 +142,7 @@ func (s *Relay) Shutdown() error {
return err1
}

// TCPHandle handle request. You may prefer to do yourself.
// TCPHandle handle request
func (s *Relay) TCPHandle(c *net.TCPConn) error {
tmp, err := Dial.Dial("tcp", s.RemoteTCPAddr.String())
if err != nil {
Expand Down
6 changes: 3 additions & 3 deletions server.go
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ import (
"github.com/txthinking/socks5"
)

// Server is socks5 server wrapper
// Server
type Server struct {
Password []byte
TCPAddr *net.TCPAddr
Expand All @@ -23,7 +23,7 @@ type Server struct {
UDPDeadline int
}

// NewServer return a server which allow none method
// NewServer
func NewServer(addr, password string, tcpTimeout, tcpDeadline, udpDeadline int) (*Server, error) {
taddr, err := net.ResolveTCPAddr("tcp", addr)
if err != nil {
Expand Down Expand Up @@ -117,7 +117,7 @@ func (s *Server) RunUDPServer() error {
return nil
}

// TCPHandle handle request. You may prefer to do yourself.
// TCPHandle handle request
func (s *Server) TCPHandle(c *net.TCPConn) error {
cn := make([]byte, 12)
if _, err := io.ReadFull(c, cn); err != nil {
Expand Down
14 changes: 6 additions & 8 deletions ssclient.go
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ import (
"github.com/txthinking/socks5"
)

// SSClient is the client of raw socks5 protocol
// SSClient
type SSClient struct {
Server *socks5.Server
RemoteAddr string
Expand Down Expand Up @@ -54,7 +54,6 @@ func (x *SSClient) ListenAndServe(sm Socks5Middleman) error {

// TCPHandle handles tcp reqeust
func (x *SSClient) TCPHandle(s *socks5.Server, c *net.TCPConn, r *socks5.Request) error {
// waiting for reply about connect failure or success
if x.Socks5Middleman != nil {
done, err := x.Socks5Middleman.TCPHandle(s, c, r)
if err != nil {
Expand All @@ -68,7 +67,6 @@ func (x *SSClient) TCPHandle(s *socks5.Server, c *net.TCPConn, r *socks5.Request
}
}

// reply ok and choose address according to cmd or something wrong
if r.Cmd == socks5.CmdConnect {
tmp, err := Dial.Dial("tcp", x.RemoteAddr)
if err != nil {
Expand Down Expand Up @@ -354,11 +352,6 @@ func (x *SSClient) HTTPHandle(c *net.TCPConn) error {
return nil
}

// Shutdown used to stop the client
func (x *SSClient) Shutdown() error {
return x.Server.Stop()
}

// WrapChiperConn make a chiper conn
func (x *SSClient) WrapCipherConn(conn *net.TCPConn) (*CipherConn, error) {
iv := make([]byte, aes.BlockSize)
Expand Down Expand Up @@ -429,3 +422,8 @@ func (x *SSClient) Decrypt(cd []byte) (a byte, addr, port, data []byte, err erro
err = nil
return
}

// Shutdown used to stop the client
func (x *SSClient) Shutdown() error {
return x.Server.Stop()
}
38 changes: 19 additions & 19 deletions ssserver.go
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ import (
"github.com/txthinking/socks5"
)

// SSServer is socks5 server wrapper
// SSServer
type SSServer struct {
Password []byte
TCPAddr *net.TCPAddr
Expand All @@ -27,7 +27,7 @@ type SSServer struct {
UDPDeadline int
}

// NewSSServer return a server which allow none method
// NewSSServer
func NewSSServer(addr, password string, tcpTimeout, tcpDeadline, udpDeadline int) (*SSServer, error) {
taddr, err := net.ResolveTCPAddr("tcp", addr)
if err != nil {
Expand Down Expand Up @@ -121,22 +121,7 @@ func (s *SSServer) RunUDPServer() error {
return nil
}

// Shutdown server
func (s *SSServer) Shutdown() error {
var err, err1 error
if s.TCPListen != nil {
err = s.TCPListen.Close()
}
if s.UDPConn != nil {
err1 = s.UDPConn.Close()
}
if err != nil {
return err
}
return err1
}

// TCPHandle handle request. You may prefer to do yourself.
// TCPHandle handle request
func (s *SSServer) TCPHandle(c *net.TCPConn) error {
cc, err := s.WrapCipherConn(c)
if err != nil {
Expand Down Expand Up @@ -212,7 +197,7 @@ func (s *SSServer) TCPHandle(c *net.TCPConn) error {
return nil
}

// UDPHandle handle packet. You may prefer to do yourself.
// UDPHandle handle packet
func (s *SSServer) UDPHandle(addr *net.UDPAddr, b []byte) error {
a, h, p, data, err := s.Decrypt(b)
if err != nil {
Expand Down Expand Up @@ -356,3 +341,18 @@ func (s *SSServer) Decrypt(cd []byte) (a byte, addr, port, data []byte, err erro
err = nil
return
}

// Shutdown server
func (s *SSServer) Shutdown() error {
var err, err1 error
if s.TCPListen != nil {
err = s.TCPListen.Close()
}
if s.UDPConn != nil {
err1 = s.UDPConn.Close()
}
if err != nil {
return err
}
return err1
}
14 changes: 6 additions & 8 deletions stream_client.go
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ import (
"github.com/txthinking/socks5"
)

// StreamClient is the client of raw socks5 protocol
// StreamClient
type StreamClient struct {
Server *socks5.Server
RemoteAddr string
Expand Down Expand Up @@ -54,7 +54,6 @@ func (x *StreamClient) ListenAndServe(sm Socks5Middleman) error {

// TCPHandle handles tcp reqeust
func (x *StreamClient) TCPHandle(s *socks5.Server, c *net.TCPConn, r *socks5.Request) error {
// waiting for reply about connect failure or success
if x.Socks5Middleman != nil {
done, err := x.Socks5Middleman.TCPHandle(s, c, r)
if err != nil {
Expand All @@ -68,7 +67,6 @@ func (x *StreamClient) TCPHandle(s *socks5.Server, c *net.TCPConn, r *socks5.Req
}
}

// reply ok and choose address according to cmd or something wrong
if r.Cmd == socks5.CmdConnect {
tmp, err := Dial.Dial("tcp", x.RemoteAddr)
if err != nil {
Expand Down Expand Up @@ -344,11 +342,6 @@ func (x *StreamClient) HTTPHandle(c *net.TCPConn) error {
return nil
}

// Shutdown used to stop the client
func (x *StreamClient) Shutdown() error {
return x.Server.Stop()
}

// WrapChiperConn make a chiper conn
func (x *StreamClient) WrapCipherConn(conn *net.TCPConn) (*CipherConn, error) {
iv := make([]byte, aes.BlockSize)
Expand Down Expand Up @@ -419,3 +412,8 @@ func (x *StreamClient) Decrypt(cd []byte) (a byte, addr, port, data []byte, err
err = nil
return
}

// Shutdown used to stop the client
func (x *StreamClient) Shutdown() error {
return x.Server.Stop()
}
36 changes: 18 additions & 18 deletions stream_server.go
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ import (
"github.com/txthinking/socks5"
)

// StreamServer is socks5 server wrapper
// StreamServer
type StreamServer struct {
Password []byte
TCPAddr *net.TCPAddr
Expand All @@ -26,7 +26,7 @@ type StreamServer struct {
UDPDeadline int
}

// NewStreamServer return a server which allow none method
// NewStreamServer
func NewStreamServer(addr, password string, tcpTimeout, tcpDeadline, udpDeadline int) (*StreamServer, error) {
taddr, err := net.ResolveTCPAddr("tcp", addr)
if err != nil {
Expand Down Expand Up @@ -120,22 +120,7 @@ func (s *StreamServer) RunUDPServer() error {
return nil
}

// Shutdown server
func (s *StreamServer) Shutdown() error {
var err, err1 error
if s.TCPListen != nil {
err = s.TCPListen.Close()
}
if s.UDPConn != nil {
err1 = s.UDPConn.Close()
}
if err != nil {
return err
}
return err1
}

// TCPHandle handle request. You may prefer to do yourself.
// TCPHandle handle request
func (s *StreamServer) TCPHandle(c *net.TCPConn) error {
cc, err := s.WrapCipherConn(c)
if err != nil {
Expand Down Expand Up @@ -346,3 +331,18 @@ func (s *StreamServer) Decrypt(cd []byte) (a byte, addr, port, data []byte, err
err = nil
return
}

// Shutdown server
func (s *StreamServer) Shutdown() error {
var err, err1 error
if s.TCPListen != nil {
err = s.TCPListen.Close()
}
if s.UDPConn != nil {
err1 = s.UDPConn.Close()
}
if err != nil {
return err
}
return err1
}

0 comments on commit 1fdcb90

Please sign in to comment.