).Log(cl.logger)
torrent.Add("error receiving handshake", 1)
cl.lock()
- cl.onBadAccept(c.remoteAddr)
+ cl.onBadAccept(c.RemoteAddr)
cl.unlock()
return
}
torrent.Add("received handshake for unloaded torrent", 1)
log.Fmsg("received handshake for unloaded torrent").SetLevel(log.Debug).Log(cl.logger)
cl.lock()
- cl.onBadAccept(c.remoteAddr)
+ cl.onBadAccept(c.RemoteAddr)
cl.unlock()
return
}
},
V: cl.config.ExtendedHandshakeClientVersion,
Reqq: 64, // TODO: Really?
- YourIp: pp.CompactIp(addrIpOrNil(conn.remoteAddr)),
+ YourIp: pp.CompactIp(addrIpOrNil(conn.RemoteAddr)),
Encryption: cl.config.HeaderObfuscationPolicy.Preferred || !cl.config.HeaderObfuscationPolicy.RequirePreferred,
Port: cl.incomingPeerPort(),
MetadataSize: torrent.metadataSize(),
peerChoking: true,
PeerMaxRequests: 250,
- remoteAddr: remoteAddr,
+ RemoteAddr: remoteAddr,
network: network,
connString: connString,
},
connString string
outgoing bool
network string
- remoteAddr net.Addr
+ RemoteAddr net.Addr
// True if the connection is operating over MSE obfuscation.
headerEncrypted bool
cryptoMethod mse.CryptoMethod
// Returns true if the connection is over IPv6.
func (cn *PeerConn) ipv6() bool {
- ip := addrIpOrNil(cn.remoteAddr)
+ ip := addrIpOrNil(cn.RemoteAddr)
if ip.To4() != nil {
return false
}
req := newRequestFromMessage(&msg)
c.onPeerSentCancel(req)
case pp.Port:
- ipa, ok := tryIpPortFromNetAddr(c.remoteAddr)
+ ipa, ok := tryIpPortFromNetAddr(c.RemoteAddr)
if !ok {
break
}
}
func (c *peer) remoteIp() net.IP {
- return addrIpOrNil(c.remoteAddr)
+ return addrIpOrNil(c.RemoteAddr)
}
func (c *peer) remoteIpPort() IpPort {
- ipa, _ := tryIpPortFromNetAddr(c.remoteAddr)
+ ipa, _ := tryIpPortFromNetAddr(c.RemoteAddr)
return IpPort{ipa.IP, uint16(ipa.Port)}
}
if c.outgoing {
f |= pp.PexOutgoingConn
}
- if c.remoteAddr != nil && strings.Contains(c.remoteAddr.Network(), "udp") {
+ if c.RemoteAddr != nil && strings.Contains(c.RemoteAddr.Network(), "udp") {
f |= pp.PexSupportsUtp
}
return f
func (c *PeerConn) dialAddr() net.Addr {
if !c.outgoing && c.PeerListenPort != 0 {
- switch addr := c.remoteAddr.(type) {
+ switch addr := c.RemoteAddr.(type) {
case *net.TCPAddr:
dialAddr := *addr
dialAddr.Port = c.PeerListenPort
return &dialAddr
}
}
- return c.remoteAddr
+ return c.RemoteAddr
}
func (c *PeerConn) pexEvent(t pexEventType) pexEvent {
{&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}}, pp.PexSupportsUtp},
- {&PeerConn{peer: peer{remoteAddr: udpAddr, outgoing: true}}, pp.PexOutgoingConn | pp.PexSupportsUtp},
- {&PeerConn{peer: peer{remoteAddr: tcpAddr, outgoing: true}}, pp.PexOutgoingConn},
- {&PeerConn{peer: peer{remoteAddr: tcpAddr}}, 0},
+ {&PeerConn{peer: peer{RemoteAddr: udpAddr}}, pp.PexSupportsUtp},
+ {&PeerConn{peer: peer{RemoteAddr: udpAddr, outgoing: true}}, pp.PexOutgoingConn | pp.PexSupportsUtp},
+ {&PeerConn{peer: peer{RemoteAddr: tcpAddr, outgoing: true}}, pp.PexOutgoingConn},
+ {&PeerConn{peer: peer{RemoteAddr: tcpAddr}}, 0},
}
for i, tc := range testcases {
f := tc.conn.pexPeerFlags()
}{
{
pexAdd,
- &PeerConn{peer: peer{remoteAddr: udpAddr}},
+ &PeerConn{peer: peer{RemoteAddr: udpAddr}},
pexEvent{pexAdd, udpAddr, pp.PexSupportsUtp},
},
{
pexDrop,
- &PeerConn{peer: peer{remoteAddr: tcpAddr, outgoing: true, PeerListenPort: dialTcpAddr.Port}},
+ &PeerConn{peer: peer{RemoteAddr: tcpAddr, outgoing: true, PeerListenPort: dialTcpAddr.Port}},
pexEvent{pexDrop, tcpAddr, pp.PexOutgoingConn},
},
{
pexAdd,
- &PeerConn{peer: peer{remoteAddr: tcpAddr, PeerListenPort: dialTcpAddr.Port}},
+ &PeerConn{peer: peer{RemoteAddr: tcpAddr, PeerListenPort: dialTcpAddr.Port}},
pexEvent{pexAdd, dialTcpAddr, 0},
},
{
pexDrop,
- &PeerConn{peer: peer{remoteAddr: udpAddr, PeerListenPort: dialUdpAddr.Port}},
+ &PeerConn{peer: peer{RemoteAddr: udpAddr, PeerListenPort: dialUdpAddr.Port}},
pexEvent{pexDrop, dialUdpAddr, pp.PexSupportsUtp},
},
}
func TestPexAdded(t *testing.T) {
t.Run("noHold", func(t *testing.T) {
s := new(pexState)
- s.Add(&PeerConn{peer: peer{remoteAddr: addrs[0], outgoing: true}})
+ s.Add(&PeerConn{peer: peer{RemoteAddr: addrs[0], outgoing: true}})
targ := &pexState{
ev: []pexEvent{
pexEvent{pexAdd, addrs[0], pp.PexOutgoingConn},
},
nc: 0,
}
- s.Add(&PeerConn{peer: peer{remoteAddr: addrs[0]}})
+ s.Add(&PeerConn{peer: peer{RemoteAddr: addrs[0]}})
targ := &pexState{
hold: []pexEvent{
pexEvent{pexDrop, addrs[1], 0},
},
nc: pexTargAdded,
}
- s.Add(&PeerConn{peer: peer{remoteAddr: addrs[0]}})
+ s.Add(&PeerConn{peer: peer{RemoteAddr: addrs[0]}})
targ := &pexState{
hold: []pexEvent{},
ev: []pexEvent{
func TestPexDropped(t *testing.T) {
t.Run("belowTarg", func(t *testing.T) {
s := &pexState{nc: 1}
- s.Drop(&PeerConn{peer: peer{remoteAddr: addrs[0], pex: pexConnState{Listed: true}}})
+ s.Drop(&PeerConn{peer: peer{RemoteAddr: addrs[0], pex: pexConnState{Listed: true}}})
targ := &pexState{
hold: []pexEvent{pexEvent{pexDrop, addrs[0], 0}},
nc: 0,
})
t.Run("aboveTarg", func(t *testing.T) {
s := &pexState{nc: pexTargAdded + 1}
- s.Drop(&PeerConn{peer: peer{remoteAddr: addrs[0], pex: pexConnState{Listed: true}}})
+ s.Drop(&PeerConn{peer: peer{RemoteAddr: addrs[0], pex: pexConnState{Listed: true}}})
targ := &pexState{
ev: []pexEvent{pexEvent{pexDrop, addrs[0], 0}},
nc: pexTargAdded,
})
t.Run("aboveTargNotListed", func(t *testing.T) {
s := &pexState{nc: pexTargAdded + 1}
- s.Drop(&PeerConn{peer: peer{remoteAddr: addrs[0], pex: pexConnState{Listed: false}}})
+ s.Drop(&PeerConn{peer: peer{RemoteAddr: addrs[0], pex: pexConnState{Listed: false}}})
targ := &pexState{nc: pexTargAdded + 1}
require.EqualValues(t, targ, s)
})
ks = append(ks, PeerInfo{
Id: conn.PeerID,
- Addr: conn.remoteAddr,
+ Addr: conn.RemoteAddr,
Source: conn.Discovery,
// > If the connection is encrypted, that's certainly enough to set SupportsEncryption.
// > But if we're not connected to them with an encrypted connection, I couldn't say
return true
}
for c := range t.conns {
- ra := c.remoteAddr
+ ra := c.RemoteAddr
if ra.String() == addr {
return true
}