}
}
+// See the order given in Transmission's tr_peerMsgsNew.
func (cl *Client) sendInitialMessages(conn *connection, torrent *Torrent) {
- func() {
- if conn.fastEnabled() {
- if torrent.haveAllPieces() {
- conn.Post(pp.Message{Type: pp.HaveAll})
- conn.sentHaves.AddRange(0, bitmap.BitIndex(conn.t.NumPieces()))
- return
- } else if !torrent.haveAnyPieces() {
- conn.Post(pp.Message{Type: pp.HaveNone})
- conn.sentHaves.Clear()
- return
- }
- }
- conn.PostBitfield()
- }()
if conn.PeerExtensionBytes.SupportsExtended() && cl.extensionBytes.SupportsExtended() {
conn.Post(pp.Message{
Type: pp.Extended,
}(),
})
}
+ func() {
+ if conn.fastEnabled() {
+ if torrent.haveAllPieces() {
+ conn.Post(pp.Message{Type: pp.HaveAll})
+ conn.sentHaves.AddRange(0, bitmap.BitIndex(conn.t.NumPieces()))
+ return
+ } else if !torrent.haveAnyPieces() {
+ conn.Post(pp.Message{Type: pp.HaveNone})
+ conn.sentHaves.Clear()
+ return
+ }
+ }
+ conn.PostBitfield()
+ }()
if conn.PeerExtensionBytes.SupportsDHT() && cl.extensionBytes.SupportsDHT() && cl.haveDhtServer() {
conn.Post(pp.Message{
Type: pp.Port,