diff --git a/shadow/client.go b/shadow/client.go index 669081b..6e0406d 100644 --- a/shadow/client.go +++ b/shadow/client.go @@ -41,7 +41,7 @@ func (c *Client) Start() { stream := bridge.GetStream() if stream == nil { conn.Close() - fmt.Printf("[Client] connect to server error") + fmt.Println("[Client] connect to server error") continue } fmt.Printf("[Client] New TCP connection: %v <-> %v \n", conn.LocalAddr().String(), conn.RemoteAddr().String()) diff --git a/shadow/server.go b/shadow/server.go index e9f5e16..b77c994 100644 --- a/shadow/server.go +++ b/shadow/server.go @@ -5,6 +5,7 @@ import ( "github.com/xtaci/smux" "io" "net" + "time" ) type Server struct { @@ -56,6 +57,10 @@ func handler(conn net.Conn, targetAddress string, fakeAddress string) { <-waitCh + //Clean up previous buffered data + conn.SetDeadline(time.Now()) + conn.SetDeadline(time.Time{}) + //Process real tcp connection session, err := smux.Server(conn, nil) if err != nil {