projects
/
quix0rs-apt-p2p.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
9a8119c
)
Minor update to the multiple peer downloading (still not working).
author
Cameron Dale
<camrdale@gmail.com>
Mon, 7 Apr 2008 05:51:24 +0000
(22:51 -0700)
committer
Cameron Dale
<camrdale@gmail.com>
Mon, 7 Apr 2008 05:51:24 +0000
(22:51 -0700)
apt_p2p/PeerManager.py
patch
|
blob
|
history
diff --git
a/apt_p2p/PeerManager.py
b/apt_p2p/PeerManager.py
index df003993cf80676c50df08f3ea57e36a424917f3..90a35c5493d3c1413d5f5794fdeb0e222b796fb9 100644
(file)
--- a/
apt_p2p/PeerManager.py
+++ b/
apt_p2p/PeerManager.py
@@
-149,10
+149,11
@@
class StreamToFile(defer.Deferred):
@param hash: the hash object to use for the file
"""
self.stream = inputStream
@param hash: the hash object to use for the file
"""
self.stream = inputStream
- self.outFile = outFile
.open('w')
+ self.outFile = outFile
self.hash = hash
self.hash.new()
self.length = self.stream.length
self.hash = hash
self.hash.new()
self.length = self.stream.length
+ self.doneDefer = None
def run(self):
"""Start the streaming."""
def run(self):
"""Start the streaming."""
@@
-168,44
+169,16
@@
class StreamToFile(defer.Deferred):
self.doneDefer.callback(self.hash)
def _gotData(self, data):
self.doneDefer.callback(self.hash)
def _gotData(self, data):
- self.peers[site]['pieces'] += data
-
- def read(self):
- """Read some data from the stream."""
if self.outFile.closed:
if self.outFile.closed:
- return None
-
- # Read data from the stream, deal with the possible deferred
- data = self.stream.read()
- if isinstance(data, defer.Deferred):
- data.addCallbacks(self._write, self._done)
- return data
-
- self._write(data)
- return data
-
- def _write(self, data):
- """Write the stream data to the file and return it for others to use.
+ return
- Also optionally decompresses it.
- """
if data is None:
self._done()
if data is None:
self._done()
- return data
# Write and hash the streamed data
self.outFile.write(data)
self.hash.update(data)
# Write and hash the streamed data
self.outFile.write(data)
self.hash.update(data)
- return data
-
- def close(self):
- """Clean everything up and return None to future reads."""
- self.length = 0
- self._done()
- self.stream.close()
-
-
class FileDownload:
"""Manage a download from a list of peers or a mirror.
class FileDownload:
"""Manage a download from a list of peers or a mirror.