From 0dd9aa0d67e35acdbb72faee17530764e3b7a443 Mon Sep 17 00:00:00 2001 From: Alex Liebowitz Date: Fri, 14 Oct 2016 08:42:08 -0400 Subject: [PATCH] Update error that daemon catches for malformed metadata Now jsonschema.ValidationError instead of AssertionError --- lbrynet/core/Wallet.py | 5 +++-- lbrynet/lbrynet_daemon/Daemon.py | 3 ++- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/lbrynet/core/Wallet.py b/lbrynet/core/Wallet.py index 0ce5c66d3..896d71de8 100644 --- a/lbrynet/core/Wallet.py +++ b/lbrynet/core/Wallet.py @@ -13,6 +13,7 @@ from twisted.python.failure import Failure from twisted.enterprise import adbapi from collections import defaultdict, deque from zope.interface import implements +from jsonschema import ValidationError from decimal import Decimal from lbryum import SimpleConfig, Network @@ -338,7 +339,7 @@ class Wallet(object): try: metadata = Metadata(json.loads(result['value'])) - except (ValueError, TypeError): + except ValidationError: return Failure(InvalidStreamInfoError(name)) txid = result['txid'] @@ -421,7 +422,7 @@ class Wallet(object): meta_ver = metadata.version sd_hash = metadata['sources']['lbry_sd_hash'] d = self._save_name_metadata(name, txid, sd_hash) - except AssertionError: + except ValidationError: metadata = claim['value'] meta_ver = "Non-compliant" d = defer.succeed(None) diff --git a/lbrynet/lbrynet_daemon/Daemon.py b/lbrynet/lbrynet_daemon/Daemon.py index 2ca513023..86d5ff3ca 100644 --- a/lbrynet/lbrynet_daemon/Daemon.py +++ b/lbrynet/lbrynet_daemon/Daemon.py @@ -23,6 +23,7 @@ from twisted.internet.task import LoopingCall from txjsonrpc import jsonrpclib from txjsonrpc.web import jsonrpc from txjsonrpc.web.jsonrpc import Handler +from jsonschema import ValidationError from lbrynet import __version__ as lbrynet_version from lbryum.version import LBRYUM_VERSION as lbryum_version @@ -2009,7 +2010,7 @@ class Daemon(jsonrpc.JSONRPC): metadata = Metadata(p['metadata']) make_lbry_file = False sd_hash = metadata['sources']['lbry_sd_hash'] - except AssertionError: + except ValidationError: make_lbry_file = True sd_hash = None metadata = p['metadata']