]> Sergey Matveev's repositories - btrtrc.git/blobdiff - peer_protocol/extended.go
Drop support for go 1.20
[btrtrc.git] / peer_protocol / extended.go
index cbefee6a090d1a514fdc83057679769268a4be93..8bc518163394ec8bbf619b135edf055c6f715b87 100644 (file)
@@ -7,10 +7,12 @@ import (
 // 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
@@ -31,3 +33,8 @@ const (
 
        ExtensionDeleteNumber ExtensionNumber = 0
 )
+
+func (me *ExtensionNumber) UnmarshalBinary(b []byte) error {
+       *me = ExtensionNumber(b[0])
+       return nil
+}