mirror of https://github.com/ehang-io/nps
连接bug修复
parent
a32010fcc0
commit
86deb2025f
|
@ -3,7 +3,6 @@ package main
|
|||
import (
|
||||
"errors"
|
||||
"fmt"
|
||||
"io"
|
||||
"log"
|
||||
"net"
|
||||
"sync"
|
||||
|
@ -107,8 +106,8 @@ func (s *TRPClient) dealChan() error {
|
|||
return err
|
||||
}
|
||||
//创建成功后io.copy
|
||||
go io.Copy(server, c)
|
||||
io.Copy(c, server)
|
||||
go relay(server, c.conn)
|
||||
relay(c.conn, server)
|
||||
return nil
|
||||
}
|
||||
|
||||
|
|
|
@ -3,7 +3,6 @@ package main
|
|||
import (
|
||||
"errors"
|
||||
"fmt"
|
||||
"io"
|
||||
"io/ioutil"
|
||||
"log"
|
||||
"net"
|
||||
|
@ -179,7 +178,7 @@ retry:
|
|||
if _, err := link.WriteHost(s.tunnelTarget); err != nil {
|
||||
goto retry
|
||||
}
|
||||
go io.Copy(link, c)
|
||||
io.Copy(c, link.conn)
|
||||
go relay(link.conn, c.conn)
|
||||
relay(c.conn, link.conn)
|
||||
return nil
|
||||
}
|
||||
|
|
|
@ -62,6 +62,7 @@ func (s *Tunnel) cliProcess(c *Conn) error {
|
|||
s.verifyError(c)
|
||||
return err
|
||||
}
|
||||
c.conn.(*net.TCPConn).SetReadDeadline(time.Time{})
|
||||
//做一个判断 添加到对应的channel里面以供使用
|
||||
flag, err := c.ReadFlag()
|
||||
if err != nil {
|
||||
|
|
10
util.go
10
util.go
|
@ -7,6 +7,9 @@ import (
|
|||
"encoding/binary"
|
||||
"errors"
|
||||
"fmt"
|
||||
"io"
|
||||
"log"
|
||||
"net"
|
||||
"net/http"
|
||||
"net/http/httputil"
|
||||
"net/url"
|
||||
|
@ -146,3 +149,10 @@ func replaceHost(resp []byte) []byte {
|
|||
}
|
||||
return []byte(str)
|
||||
}
|
||||
|
||||
func relay(in, out net.Conn) {
|
||||
if _, err := io.Copy(in, out); err != nil {
|
||||
log.Println("copy error:", err)
|
||||
}
|
||||
in.Close() //
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue