From d1511cba5498e91104dc1fa21a96a1e9d8adf277 Mon Sep 17 00:00:00 2001 From: Jack Robison Date: Thu, 5 Oct 2017 15:59:53 -0400 Subject: [PATCH] fix reading sd blob TODO: add __enter__ and __exit__ methods to HashBlobReader to let it be used as a contextmanager --- lbrynet/blob/reader.py | 1 + lbrynet/reflector/server/server.py | 5 +++-- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/lbrynet/blob/reader.py b/lbrynet/blob/reader.py index 292516a02..dd248c8fd 100644 --- a/lbrynet/blob/reader.py +++ b/lbrynet/blob/reader.py @@ -33,6 +33,7 @@ class HashBlobReader_v0(object): if self.streaming is False: reactor.callLater(0, self.producer.resumeProducing) + class HashBlobReader(object): """ This is a file like reader class that supports diff --git a/lbrynet/reflector/server/server.py b/lbrynet/reflector/server/server.py index a22b93add..d7ddc4018 100644 --- a/lbrynet/reflector/server/server.py +++ b/lbrynet/reflector/server/server.py @@ -331,8 +331,9 @@ class ReflectorServer(Protocol): return d def determine_missing_blobs(self, sd_blob): - with sd_blob.open_for_reading() as sd_file: - sd_blob_data = sd_file.read() + reader = sd_blob.open_for_reading() + sd_blob_data = reader.read() + reader.close() decoded_sd_blob = json.loads(sd_blob_data) return self.get_unvalidated_blobs_in_stream(decoded_sd_blob)