Try to count IPv6 connections
This commit is contained in:
parent
4b5203851a
commit
39bde7237e
18
client.go
18
client.go
|
@ -441,9 +441,18 @@ func (cl *Client) acceptConnections(l net.Listener, utp bool) {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
if utp {
|
if utp {
|
||||||
acceptUTP.Add(1)
|
torrent.Add("accepted utp connections", 1)
|
||||||
} else {
|
} else {
|
||||||
acceptTCP.Add(1)
|
torrent.Add("accepted tcp connections", 1)
|
||||||
|
}
|
||||||
|
torrent.Add(fmt.Sprintf("accepted conn with network %q", conn.RemoteAddr().Network()), 1)
|
||||||
|
remoteIP := missinggo.AddrIP(conn.RemoteAddr())
|
||||||
|
if remoteIP.To4() != nil {
|
||||||
|
torrent.Add("accepted conn from ipv4 address", 1)
|
||||||
|
} else if remoteIP.To16() != nil {
|
||||||
|
torrent.Add("accepted conn from ipv6 address", 1)
|
||||||
|
} else {
|
||||||
|
torrent.Add("accepted conn from unknown ip address type", 1)
|
||||||
}
|
}
|
||||||
if cl.config.Debug {
|
if cl.config.Debug {
|
||||||
log.Printf("accepted connection from %s", conn.RemoteAddr())
|
log.Printf("accepted connection from %s", conn.RemoteAddr())
|
||||||
|
@ -455,7 +464,7 @@ func (cl *Client) acceptConnections(l net.Listener, utp bool) {
|
||||||
if cl.config.Debug {
|
if cl.config.Debug {
|
||||||
log.Printf("rejecting connection from %s", conn.RemoteAddr())
|
log.Printf("rejecting connection from %s", conn.RemoteAddr())
|
||||||
}
|
}
|
||||||
acceptReject.Add(1)
|
torrent.Add("rejected accepted connection", 1)
|
||||||
conn.Close()
|
conn.Close()
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
|
@ -831,6 +840,9 @@ func (cl *Client) runHandshookConn(c *connection, t *Torrent, outgoing bool) {
|
||||||
c.conn.SetWriteDeadline(time.Time{})
|
c.conn.SetWriteDeadline(time.Time{})
|
||||||
c.r = deadlineReader{c.conn, c.r}
|
c.r = deadlineReader{c.conn, c.r}
|
||||||
completedHandshakeConnectionFlags.Add(c.connectionFlags(), 1)
|
completedHandshakeConnectionFlags.Add(c.connectionFlags(), 1)
|
||||||
|
if connIsIpv6(c.conn) {
|
||||||
|
torrent.Add("completed handshake over ipv6", 1)
|
||||||
|
}
|
||||||
if !t.addConnection(c, outgoing) {
|
if !t.addConnection(c, outgoing) {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
|
@ -37,10 +37,6 @@ var (
|
||||||
unsuccessfulDials = expvar.NewInt("dialSuccessful")
|
unsuccessfulDials = expvar.NewInt("dialSuccessful")
|
||||||
successfulDials = expvar.NewInt("dialUnsuccessful")
|
successfulDials = expvar.NewInt("dialUnsuccessful")
|
||||||
|
|
||||||
acceptUTP = expvar.NewInt("acceptUTP")
|
|
||||||
acceptTCP = expvar.NewInt("acceptTCP")
|
|
||||||
acceptReject = expvar.NewInt("acceptReject")
|
|
||||||
|
|
||||||
peerExtensions = expvar.NewMap("peerExtensions")
|
peerExtensions = expvar.NewMap("peerExtensions")
|
||||||
completedHandshakeConnectionFlags = expvar.NewMap("completedHandshakeConnectionFlags")
|
completedHandshakeConnectionFlags = expvar.NewMap("completedHandshakeConnectionFlags")
|
||||||
// Count of connections to peer with same client ID.
|
// Count of connections to peer with same client ID.
|
||||||
|
|
9
misc.go
9
misc.go
|
@ -2,8 +2,10 @@ package torrent
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"errors"
|
"errors"
|
||||||
|
"log"
|
||||||
"net"
|
"net"
|
||||||
|
|
||||||
|
"github.com/anacrolix/missinggo"
|
||||||
"github.com/anacrolix/torrent/metainfo"
|
"github.com/anacrolix/torrent/metainfo"
|
||||||
pp "github.com/anacrolix/torrent/peer_protocol"
|
pp "github.com/anacrolix/torrent/peer_protocol"
|
||||||
)
|
)
|
||||||
|
@ -123,3 +125,10 @@ func addrCompactIP(addr net.Addr) (string, error) {
|
||||||
}
|
}
|
||||||
return string(ip.To16()), nil
|
return string(ip.To16()), nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func connIsIpv6(nc net.Conn) bool {
|
||||||
|
ra := nc.RemoteAddr()
|
||||||
|
log.Printf("network: %q, string: %q", ra.Network(), ra.String())
|
||||||
|
rip := missinggo.AddrIP(ra)
|
||||||
|
return rip.To4() == nil && rip.To16() != nil
|
||||||
|
}
|
||||||
|
|
Loading…
Reference in New Issue