Add input checking for incorrect responses from printers

We should not crash when getting invalid data. Just put a warning in the log there and ignore the message for the rest.
This commit is contained in:
Ghostkeeper 2017-08-21 00:57:25 +02:00
parent b7493ae1a8
commit df88772071
No known key found for this signature in database
GPG key ID: C5F96EE2BC0F7E75

View file

@ -117,7 +117,14 @@ class NetworkPrinterOutputDevicePlugin(OutputDevicePlugin):
if reply.operation() == QNetworkAccessManager.GetOperation:
if "system" in reply_url: # Name returned from printer.
if status_code == 200:
system_info = json.loads(bytes(reply.readAll()).decode("utf-8"))
try:
system_info = json.loads(bytes(reply.readAll()).decode("utf-8"))
except json.JSONDecodeError:
Logger.log("e", "Printer returned invalid JSON.")
return
except UnicodeDecodeError:
Logger.log("e", "Printer returned incorrect UTF-8.")
return
address = reply.url().host()
instance_name = "manual:%s" % address