]> Sergey Matveev's repositories - btrtrc.git/blobdiff - peer_protocol/protocol.go
Ignore dial rate limits for holepunch connects
[btrtrc.git] / peer_protocol / protocol.go
index 67aa5a619f734be64b3cfc48309c05ae12d95da6..bfeb6a0448873da8b3fdc96dd133520da0c8d360 100644 (file)
@@ -12,30 +12,41 @@ func (mt MessageType) FastExtension() bool {
        return mt >= Suggest && mt <= AllowedFast
 }
 
+func (mt *MessageType) UnmarshalBinary(b []byte) error {
+       *mt = MessageType(b[0])
+       return nil
+}
+
 const (
-       Choke         MessageType = iota
-       Unchoke                   // 1
-       Interested                // 2
-       NotInterested             // 3
-       Have                      // 4
-       Bitfield                  // 5
-       Request                   // 6
-       Piece                     // 7
-       Cancel                    // 8
-       Port                      // 9
-
-       // BEP 6
-       Suggest     MessageType = iota + 0xd // 13
-       HaveAll                 = 0xe        // 14
-       HaveNone                = 0xf        // 15
-       Reject                  = 0x10       // 16
-       AllowedFast             = 0x11       // 17
-
-       Extended = 20
+       // BEP 3
+       Choke         MessageType = 0
+       Unchoke       MessageType = 1
+       Interested    MessageType = 2
+       NotInterested MessageType = 3
+       Have          MessageType = 4
+       Bitfield      MessageType = 5
+       Request       MessageType = 6
+       Piece         MessageType = 7
+       Cancel        MessageType = 8
+
+       // BEP 5
+       Port MessageType = 9
+
+       // BEP 6 - Fast extension
+       Suggest     MessageType = 0x0d // 13
+       HaveAll     MessageType = 0x0e // 14
+       HaveNone    MessageType = 0x0f // 15
+       Reject      MessageType = 0x10 // 16
+       AllowedFast MessageType = 0x11 // 17
+
+       // BEP 10
+       Extended MessageType = 20
+)
 
+const (
        HandshakeExtendedID = 0
 
-       RequestMetadataExtensionMsgType = 0
-       DataMetadataExtensionMsgType    = 1
-       RejectMetadataExtensionMsgType  = 2
+       RequestMetadataExtensionMsgType ExtendedMetadataRequestMsgType = 0
+       DataMetadataExtensionMsgType    ExtendedMetadataRequestMsgType = 1
+       RejectMetadataExtensionMsgType  ExtendedMetadataRequestMsgType = 2
 )