networkingEnabled bool
dataDownloadDisallowed bool
+ dataUploadDisallowed bool
userOnWriteChunkErr func(error)
// Determines what chunks to request from peers.
if t.closed.IsSet() {
return false
}
+ if t.dataUploadDisallowed {
+ return false
+ }
if cl.config.NoUpload {
return false
}
}
+func (t *Torrent) AllowDataUpload() {
+ t.cl.lock()
+ defer t.cl.unlock()
+ log.Printf("AllowDataUpload")
+ t.dataUploadDisallowed = false
+ for c := range t.conns {
+ c.updateRequests()
+ }
+}
+
+func (t *Torrent) DisallowDataUpload() {
+ t.cl.lock()
+ defer t.cl.unlock()
+ log.Printf("DisallowDataUpload")
+ t.dataUploadDisallowed = true
+ for c := range t.conns {
+ c.updateRequests()
+ }
+}
+
func (t *Torrent) SetOnWriteChunkError(f func(error)) {
t.cl.lock()
defer t.cl.unlock()