1
0
mirror of https://github.com/fumiama/WireGold.git synced 2026-06-07 08:50:25 +08:00

fix(tcp): set conn on peer's endpoint

This commit is contained in:
源文雨
2024-07-16 22:42:35 +09:00
parent c7bbcb9fb7
commit 39d8d5b755

View File

@@ -67,6 +67,7 @@ func (ep *EndPoint) Listen() (p2p.Conn, error) {
type connrecv struct {
addr *EndPoint // cast from tcpconn.RemoteAddr()
conn *net.TCPConn
pckt packet
}
@@ -121,6 +122,7 @@ func (conn *Conn) receive(ep *EndPoint) {
if tcpconn == nil {
return
}
r.conn = tcpconn
_, err := io.Copy(&r.pckt, tcpconn)
if err != nil {
logrus.Debugln("[tcp] recv from", ep, "err:", err)
@@ -163,6 +165,7 @@ func (conn *Conn) ReadFromPeer(b []byte) (int, p2p.EndPoint, error) {
if p == nil {
return 0, nil, net.ErrClosed
}
conn.peers.Set(p.addr.String(), p.conn)
if p.pckt.typ == packetTypeNormal {
break
}