]> Sergey Matveev's repositories - btrtrc.git/blobdiff - connection.go
Implement receiving cancel messages
[btrtrc.git] / connection.go
index ee54f10ccbbc964f256b268b3636a9285696882b..aefe0ba0bb0c26b84e1d6a4bbaf51fd98ae4a0bb 100644 (file)
@@ -88,6 +88,18 @@ func (c *connection) Request(chunk Request) bool {
        return true
 }
 
+// Returns true if an unsatisfied request was canceled.
+func (c *connection) PeerCancel(r Request) bool {
+       if c.PeerRequests == nil {
+               return false
+       }
+       if _, ok := c.PeerRequests[r]; !ok {
+               return false
+       }
+       delete(c.PeerRequests, r)
+       return true
+}
+
 func (c *connection) Unchoke() {
        if !c.Choked {
                return