]> Sergey Matveev's repositories - btrtrc.git/blobdiff - peer_protocol/extended.go
Drop support for go 1.20
[btrtrc.git] / peer_protocol / extended.go
index ae5f124e2bc44124c8101b8630f245ccdb0bf7af..8bc518163394ec8bbf619b135edf055c6f715b87 100644 (file)
@@ -1,14 +1,18 @@
 package peer_protocol
 
-import "net"
+import (
+       "net"
+)
 
 // http://www.bittorrent.org/beps/bep_0010.html
 type (
        ExtendedHandshakeMessage struct {
-               M          map[ExtensionName]ExtensionNumber `bencode:"m"`
-               V          string                            `bencode:"v,omitempty"`
-               Reqq       int                               `bencode:"reqq,omitempty"`
-               Encryption bool                              `bencode:"e,omitempty"`
+               M    map[ExtensionName]ExtensionNumber `bencode:"m"`
+               V    string                            `bencode:"v,omitempty"`
+               Reqq int                               `bencode:"reqq,omitempty"`
+               // The only mention of this I can find is in https://www.bittorrent.org/beps/bep_0011.html
+               // for bit 0x01.
+               Encryption bool `bencode:"e"`
                // BEP 9
                MetadataSize int `bencode:"metadata_size,omitempty"`
                // The local client port. It would be redundant for the receiving side of
@@ -26,7 +30,11 @@ type (
 const (
        // http://www.bittorrent.org/beps/bep_0011.html
        ExtensionNamePex ExtensionName = "ut_pex"
-       // http://bittorrent.org/beps/bep_0009.html. Note that there's an
-       // LT_metadata, but I've never implemented it.
-       ExtensionNameMetadata = "ut_metadata"
+
+       ExtensionDeleteNumber ExtensionNumber = 0
 )
+
+func (me *ExtensionNumber) UnmarshalBinary(b []byte) error {
+       *me = ExtensionNumber(b[0])
+       return nil
+}