@@ -37,8 +37,10 @@ func NewSocksServer(vp *core.VPoint, rawConfig []byte) *SocksServer {
37
37
func (server * SocksServer ) Listen (port uint16 ) error {
38
38
listener , err := net .Listen ("tcp" , ":" + strconv .Itoa (int (port )))
39
39
if err != nil {
40
- return log .Error ("Error on listening port %d: %v" , port , err )
40
+ log .Error ("Error on listening port %d: %v" , port , err )
41
+ return err
41
42
}
43
+ log .Debug ("Working on tcp:%d" , port )
42
44
server .accepting = true
43
45
go server .AcceptConnections (listener )
44
46
return nil
@@ -48,7 +50,8 @@ func (server *SocksServer) AcceptConnections(listener net.Listener) error {
48
50
for server .accepting {
49
51
connection , err := listener .Accept ()
50
52
if err != nil {
51
- return log .Error ("Error on accepting socks connection: %v" , err )
53
+ log .Error ("Error on accepting socks connection: %v" , err )
54
+ return err
52
55
}
53
56
go server .HandleConnection (connection )
54
57
}
@@ -60,7 +63,8 @@ func (server *SocksServer) HandleConnection(connection net.Conn) error {
60
63
61
64
auth , err := socksio .ReadAuthentication (connection )
62
65
if err != nil {
63
- return log .Error ("Error on reading authentication: %v" , err )
66
+ log .Error ("Error on reading authentication: %v" , err )
67
+ return err
64
68
}
65
69
66
70
expectedAuthMethod := socksio .AuthNotRequired
@@ -76,12 +80,14 @@ func (server *SocksServer) HandleConnection(connection net.Conn) error {
76
80
return ErrorAuthenticationFailed
77
81
}
78
82
83
+ log .Debug ("Auth accepted, responding auth." )
79
84
authResponse := socksio .NewAuthenticationResponse (socksio .AuthNotRequired )
80
85
socksio .WriteAuthentication (connection , authResponse )
81
86
82
87
request , err := socksio .ReadRequest (connection )
83
88
if err != nil {
84
- return log .Error ("Error on reading socks request: %v" , err )
89
+ log .Error ("Error on reading socks request: %v" , err )
90
+ return err
85
91
}
86
92
87
93
response := socksio .NewSocks5Response ()
@@ -105,6 +111,7 @@ func (server *SocksServer) HandleConnection(connection net.Conn) error {
105
111
case socksio .AddrTypeDomain :
106
112
response .Domain = request .Domain
107
113
}
114
+ log .Debug ("Socks response port = %d" , response .Port )
108
115
socksio .WriteResponse (connection , response )
109
116
110
117
ray := server .vPoint .NewInboundConnectionAccepted (request .Destination ())
@@ -121,12 +128,13 @@ func (server *SocksServer) HandleConnection(connection net.Conn) error {
121
128
122
129
func (server * SocksServer ) dumpInput (conn net.Conn , input chan <- []byte , finish chan <- bool ) {
123
130
for {
124
- buffer := make ([]byte , 256 )
131
+ buffer := make ([]byte , 512 )
125
132
nBytes , err := conn .Read (buffer )
126
133
log .Debug ("Reading %d bytes, with error %v" , nBytes , err )
127
134
if err == io .EOF {
128
135
close (input )
129
136
finish <- true
137
+ log .Debug ("Socks finishing input." )
130
138
break
131
139
}
132
140
input <- buffer [:nBytes ]
@@ -138,10 +146,11 @@ func (server *SocksServer) dumpOutput(conn net.Conn, output <-chan []byte, finis
138
146
buffer , open := <- output
139
147
if ! open {
140
148
finish <- true
149
+ log .Debug ("Socks finishing output" )
141
150
break
142
151
}
143
- nBytes , _ := conn .Write (buffer )
144
- log .Debug ("Writing %d bytes" , nBytes )
152
+ nBytes , err := conn .Write (buffer )
153
+ log .Debug ("Writing %d bytes with error %v " , nBytes , err )
145
154
}
146
155
}
147
156
0 commit comments