@@ -39,7 +39,8 @@ type node struct {
3939 core * core.Core
4040 multicast * multicast.Multicast
4141 admin * admin.AdminSocket
42- socks5Listener net.Listener
42+ socks5Tcp net.Listener
43+ socks5Unix net.Listener
4344}
4445
4546type UDPSession struct {
@@ -306,10 +307,19 @@ func main() {
306307 server := socks5 .NewServer (socksOptions ... )
307308 if strings .Contains (* socks , ":" ) {
308309 logger .Infof ("Starting SOCKS server on %s" , * socks )
309- go server .ListenAndServe ("tcp" , * socks ) // nolint:errcheck
310+ n .socks5Tcp , err = net .Listen ("tcp" , * socks )
311+ if err != nil {
312+ panic (err )
313+ }
314+ go func () {
315+ err := server .Serve (n .socks5Tcp )
316+ if err != nil {
317+ panic (err )
318+ }
319+ }()
310320 } else {
311321 logger .Infof ("Starting SOCKS server with socket file %s" , * socks )
312- n .socks5Listener , err = net .Listen ("unix" , * socks )
322+ n .socks5Unix , err = net .Listen ("unix" , * socks )
313323 if err != nil {
314324 // If address in use, try connecting to
315325 // the socket to see if other yggstack
@@ -330,7 +340,12 @@ func main() {
330340 panic (err )
331341 }
332342 }
333- go server .Serve (n .socks5Listener ) // nolint:errcheck
343+ go func () {
344+ err := server .Serve (n .socks5Unix )
345+ if err != nil {
346+ panic (err )
347+ }
348+ }()
334349 }
335350 }
336351 }
@@ -519,10 +534,14 @@ func main() {
519534 // Shut down the node.
520535 _ = n .admin .Stop ()
521536 _ = n .multicast .Stop ()
522- if n .socks5Listener != nil {
523- _ = n .socks5Listener .Close ()
537+ if n .socks5Unix != nil {
538+ _ = n .socks5Unix .Close ()
524539 _ = os .RemoveAll (* socks )
525- logger .Infof ("Stopped UNIX socket listener" )
540+ logger .Infof ("Stopped SOCKS5 UNIX socket listener" )
541+ }
542+ if n .socks5Tcp != nil {
543+ _ = n .socks5Tcp .Close ()
544+ logger .Infof ("Stopped SOCKS5 TCP listener" )
526545 }
527546 n .core .Stop ()
528547}
0 commit comments