Expose Peer.Network to replace Peer.RemoteAddr.Network
This commit is contained in:
parent
9f9953be52
commit
b5215ea7e8
@ -895,7 +895,7 @@ func (cl *Client) runReceivedConn(c *PeerConn) {
|
||||
"error receiving handshakes on %v: %s", c, err,
|
||||
).SetLevel(log.Debug).
|
||||
Add(
|
||||
"network", c.network,
|
||||
"network", c.Network,
|
||||
).Log(cl.logger)
|
||||
torrent.Add("error receiving handshake", 1)
|
||||
cl.lock()
|
||||
@ -1368,6 +1368,9 @@ func (cl *Client) banPeerIP(ip net.IP) {
|
||||
}
|
||||
|
||||
func (cl *Client) newConnection(nc net.Conn, outgoing bool, remoteAddr PeerRemoteAddr, network, connString string) (c *PeerConn) {
|
||||
if network == "" {
|
||||
panic(remoteAddr)
|
||||
}
|
||||
c = &PeerConn{
|
||||
Peer: Peer{
|
||||
outgoing: outgoing,
|
||||
@ -1376,7 +1379,7 @@ func (cl *Client) newConnection(nc net.Conn, outgoing bool, remoteAddr PeerRemot
|
||||
PeerMaxRequests: 250,
|
||||
|
||||
RemoteAddr: remoteAddr,
|
||||
network: network,
|
||||
Network: network,
|
||||
},
|
||||
connString: connString,
|
||||
conn: nc,
|
||||
|
@ -55,7 +55,7 @@ type Peer struct {
|
||||
peerImpl
|
||||
|
||||
outgoing bool
|
||||
network string
|
||||
Network string
|
||||
RemoteAddr PeerRemoteAddr
|
||||
// True if the connection is operating over MSE obfuscation.
|
||||
headerEncrypted bool
|
||||
@ -275,7 +275,7 @@ func (cn *PeerConn) connectionFlags() (ret string) {
|
||||
}
|
||||
|
||||
func (cn *PeerConn) utp() bool {
|
||||
return parseNetworkString(cn.network).Udp
|
||||
return parseNetworkString(cn.Network).Udp
|
||||
}
|
||||
|
||||
// Inspired by https://github.com/transmission/transmission/wiki/Peer-Status-Text.
|
||||
|
@ -24,13 +24,13 @@ func TestSendBitfieldThenHave(t *testing.T) {
|
||||
config: TestingConfig(),
|
||||
}
|
||||
cl.initLogger()
|
||||
c := cl.newConnection(nil, false, nil, "", "")
|
||||
c := cl.newConnection(nil, false, nil, "io.Pipe", "")
|
||||
c.setTorrent(cl.newTorrent(metainfo.Hash{}, nil))
|
||||
c.t.setInfo(&metainfo.Info{
|
||||
Pieces: make([]byte, metainfo.HashSize*3),
|
||||
})
|
||||
r, w := io.Pipe()
|
||||
c.r = r
|
||||
//c.r = r
|
||||
c.w = w
|
||||
go c.writer(time.Minute)
|
||||
c.locker().Lock()
|
||||
@ -109,7 +109,7 @@ func BenchmarkConnectionMainReadLoop(b *testing.B) {
|
||||
t.setChunkSize(defaultChunkSize)
|
||||
t._pendingPieces.Set(0, PiecePriorityNormal.BitmapPriority())
|
||||
r, w := net.Pipe()
|
||||
cn := cl.newConnection(r, true, nil, "", "")
|
||||
cn := cl.newConnection(r, true, r.RemoteAddr(), r.RemoteAddr().Network(), regularNetConnPeerConnConnString(r))
|
||||
cn.setTorrent(t)
|
||||
mrlErr := make(chan error)
|
||||
msg := pp.Message{
|
||||
@ -159,10 +159,10 @@ func TestConnPexPeerFlags(t *testing.T) {
|
||||
{&PeerConn{Peer: Peer{outgoing: false, PeerPrefersEncryption: true}}, pp.PexPrefersEncryption},
|
||||
{&PeerConn{Peer: Peer{outgoing: true, PeerPrefersEncryption: false}}, pp.PexOutgoingConn},
|
||||
{&PeerConn{Peer: Peer{outgoing: true, PeerPrefersEncryption: true}}, pp.PexOutgoingConn | pp.PexPrefersEncryption},
|
||||
{&PeerConn{Peer: Peer{RemoteAddr: udpAddr, network: udpAddr.Network()}}, pp.PexSupportsUtp},
|
||||
{&PeerConn{Peer: Peer{RemoteAddr: udpAddr, network: udpAddr.Network(), outgoing: true}}, pp.PexOutgoingConn | pp.PexSupportsUtp},
|
||||
{&PeerConn{Peer: Peer{RemoteAddr: tcpAddr, network: tcpAddr.Network(), outgoing: true}}, pp.PexOutgoingConn},
|
||||
{&PeerConn{Peer: Peer{RemoteAddr: tcpAddr, network: tcpAddr.Network()}}, 0},
|
||||
{&PeerConn{Peer: Peer{RemoteAddr: udpAddr, Network: udpAddr.Network()}}, pp.PexSupportsUtp},
|
||||
{&PeerConn{Peer: Peer{RemoteAddr: udpAddr, Network: udpAddr.Network(), outgoing: true}}, pp.PexOutgoingConn | pp.PexSupportsUtp},
|
||||
{&PeerConn{Peer: Peer{RemoteAddr: tcpAddr, Network: tcpAddr.Network(), outgoing: true}}, pp.PexOutgoingConn},
|
||||
{&PeerConn{Peer: Peer{RemoteAddr: tcpAddr, Network: tcpAddr.Network()}}, 0},
|
||||
}
|
||||
for i, tc := range testcases {
|
||||
f := tc.conn.pexPeerFlags()
|
||||
@ -184,22 +184,22 @@ func TestConnPexEvent(t *testing.T) {
|
||||
}{
|
||||
{
|
||||
pexAdd,
|
||||
&PeerConn{Peer: Peer{RemoteAddr: udpAddr, network: udpAddr.Network()}},
|
||||
&PeerConn{Peer: Peer{RemoteAddr: udpAddr, Network: udpAddr.Network()}},
|
||||
pexEvent{pexAdd, udpAddr, pp.PexSupportsUtp},
|
||||
},
|
||||
{
|
||||
pexDrop,
|
||||
&PeerConn{Peer: Peer{RemoteAddr: tcpAddr, network: tcpAddr.Network(), outgoing: true, PeerListenPort: dialTcpAddr.Port}},
|
||||
&PeerConn{Peer: Peer{RemoteAddr: tcpAddr, Network: tcpAddr.Network(), outgoing: true, PeerListenPort: dialTcpAddr.Port}},
|
||||
pexEvent{pexDrop, tcpAddr, pp.PexOutgoingConn},
|
||||
},
|
||||
{
|
||||
pexAdd,
|
||||
&PeerConn{Peer: Peer{RemoteAddr: tcpAddr, network: tcpAddr.Network(), PeerListenPort: dialTcpAddr.Port}},
|
||||
&PeerConn{Peer: Peer{RemoteAddr: tcpAddr, Network: tcpAddr.Network(), PeerListenPort: dialTcpAddr.Port}},
|
||||
pexEvent{pexAdd, dialTcpAddr, 0},
|
||||
},
|
||||
{
|
||||
pexDrop,
|
||||
&PeerConn{Peer: Peer{RemoteAddr: udpAddr, network: udpAddr.Network(), PeerListenPort: dialUdpAddr.Port}},
|
||||
&PeerConn{Peer: Peer{RemoteAddr: udpAddr, Network: udpAddr.Network(), PeerListenPort: dialUdpAddr.Port}},
|
||||
pexEvent{pexDrop, dialUdpAddr, pp.PexSupportsUtp},
|
||||
},
|
||||
}
|
||||
|
@ -18,7 +18,7 @@ func TestPexConnState(t *testing.T) {
|
||||
cl.initLogger()
|
||||
torrent := cl.newTorrent(metainfo.Hash{}, nil)
|
||||
addr := &net.TCPAddr{IP: net.IPv6loopback, Port: 4747}
|
||||
c := cl.newConnection(nil, false, addr, "", "")
|
||||
c := cl.newConnection(nil, false, addr, addr.Network(), "")
|
||||
c.PeerExtensionIDs = make(map[pp.ExtensionName]pp.ExtensionNumber)
|
||||
c.PeerExtensionIDs[pp.ExtensionNamePex] = pexExtendedId
|
||||
c.writerCond.L.Lock()
|
||||
|
@ -2110,7 +2110,7 @@ func (t *Torrent) addWebSeed(url string) {
|
||||
peer: Peer{
|
||||
t: t,
|
||||
outgoing: true,
|
||||
network: "http",
|
||||
Network: "http",
|
||||
reconciledHandshakeStats: true,
|
||||
peerSentHaveAll: true,
|
||||
PeerMaxRequests: maxRequests,
|
||||
|
Loading…
x
Reference in New Issue
Block a user