Skip to content

Commit

Permalink
Make a little improvement in function operate.Local2Local
Browse files Browse the repository at this point in the history
  • Loading branch information
EddieIvan01 committed Feb 26, 2020
1 parent 17f312b commit 46dd09b
Showing 1 changed file with 10 additions and 4 deletions.
14 changes: 10 additions & 4 deletions operate/fwd.go
Original file line number Diff line number Diff line change
Expand Up @@ -100,14 +100,19 @@ func Local2Local(localA string, localB string, laenc bool, lbenc bool) {
if option.PROTOCOL == "TCP" {
logger.Success("Forward between %s and %s", localA, localB)

var listenerA net.Listener
var listenerB net.Listener

for {
signal := make(chan byte)
var localConnA, localConnB net.Conn

go func() {
// define listener as a local variable
// to control accepting connection timing
listenerA, err := net.Listen("tcp", localA)
// Call listener.Close when goroutine returns.
// Listener in Go will release the port immediately
// after calling listener.Close without waiting for TIME_WAIT
var err error
listenerA, err = net.Listen("tcp", localA)
if err != nil {
logger.Warn(
"Listen on %s error: %s",
Expand Down Expand Up @@ -138,7 +143,8 @@ func Local2Local(localA string, localB string, laenc bool, lbenc bool) {
}()

go func() {
listenerB, err := net.Listen("tcp", localB)
var err error
listenerB, err = net.Listen("tcp", localB)
if err != nil {
logger.Warn(
"Listen on %s error: %s",
Expand Down

0 comments on commit 46dd09b

Please sign in to comment.