config Config
halfOpenLimit int
- peerID [20]byte
+ peerID peerID
defaultStorage *storage.Client
onClose []func()
tcpListener net.Listener
sentHaves []bool
// Stuff controlled by the remote peer.
- PeerID [20]byte
+ PeerID peerID
PeerInterested bool
PeerChoked bool
PeerRequests map[request]struct{}
func (cn *connection) WriteStatus(w io.Writer, t *Torrent) {
// \t isn't preserved in <pre> blocks?
- fmt.Fprintf(w, "%+q: %s-%s\n", cn.PeerID, cn.localAddr(), cn.remoteAddr())
+ fmt.Fprintf(w, "%-40s: %s-%s\n", cn.PeerID, cn.localAddr(), cn.remoteAddr())
fmt.Fprintf(w, " last msg: %s, connected: %s, last useful chunk: %s\n",
eventAgeString(cn.lastMessageReceived),
eventAgeString(cn.completedHandshake),
type (
peerExtensionBytes [8]byte
- peerID [20]byte
)
func (pex peerExtensionBytes) SupportsExtended() bool {
--- /dev/null
+package torrent
+
+import (
+ "encoding/hex"
+)
+
+type peerID [20]byte
+
+func (me peerID) String() string {
+ if me[0] == '-' && me[7] == '-' {
+ return string(me[:8]) + hex.EncodeToString(me[8:])
+ }
+ return hex.EncodeToString(me[:])
+}
--- /dev/null
+package torrent
+
+import (
+ "testing"
+
+ "github.com/anacrolix/missinggo"
+ "github.com/stretchr/testify/assert"
+)
+
+func TestPeerIdString(t *testing.T) {
+ for _, _case := range []struct {
+ id string
+ s string
+ }{
+ {"\x1cNJ}\x9c\xc7\xc4o\x94<\x9b\x8c\xc2!I\x1c\a\xec\x98n", "1c4e4a7d9cc7c46f943c9b8cc221491c07ec986e"},
+ {"-FD51W\xe4-LaZMk0N8ZLA7", "-FD51W\xe4-4c615a4d6b304e385a4c4137"},
+ } {
+ var pi peerID
+ missinggo.CopyExact(&pi, _case.id)
+ assert.EqualValues(t, _case.s, pi.String())
+ }
+}