From 91ac7dbc24ca22a9df980a50a0a29fcd151e626f Mon Sep 17 00:00:00 2001 From: ChrisTerBeke Date: Fri, 2 Aug 2019 15:46:14 +0200 Subject: [PATCH] Some defenses against possible None values --- plugins/UM3NetworkPrinting/src/Network/ZeroConfClient.py | 5 +++++ .../src/UltimakerNetworkedPrinterOutputDevice.py | 2 +- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/plugins/UM3NetworkPrinting/src/Network/ZeroConfClient.py b/plugins/UM3NetworkPrinting/src/Network/ZeroConfClient.py index d601aa3689..b6416b2bd0 100644 --- a/plugins/UM3NetworkPrinting/src/Network/ZeroConfClient.py +++ b/plugins/UM3NetworkPrinting/src/Network/ZeroConfClient.py @@ -53,11 +53,16 @@ class ZeroConfClient: ## Handles a change is discovered network services. def _queueService(self, zeroconf: Zeroconf, service_type, name: str, state_change: ServiceStateChange) -> None: item = (zeroconf, service_type, name, state_change) + if not self._service_changed_request_queue or not self._service_changed_request_event: + return self._service_changed_request_queue.put(item) self._service_changed_request_event.set() ## Callback for when a ZeroConf service has changes. def _handleOnServiceChangedRequests(self) -> None: + if not self._service_changed_request_queue or not self._service_changed_request_event: + return + while True: # Wait for the event to be set self._service_changed_request_event.wait(timeout=5.0) diff --git a/plugins/UM3NetworkPrinting/src/UltimakerNetworkedPrinterOutputDevice.py b/plugins/UM3NetworkPrinting/src/UltimakerNetworkedPrinterOutputDevice.py index 9e21c0b4de..870ba3c47c 100644 --- a/plugins/UM3NetworkPrinting/src/UltimakerNetworkedPrinterOutputDevice.py +++ b/plugins/UM3NetworkPrinting/src/UltimakerNetworkedPrinterOutputDevice.py @@ -195,7 +195,7 @@ class UltimakerNetworkedPrinterOutputDevice(NetworkedPrinterOutputDevice): # Check which printers need to be created or updated. for index, printer_data in enumerate(remote_printers): - printer = next(iter(printer for printer in self._printers if printer.key == printer_data.uuid), None) + printer = next(iter(printer for printer in self._printers if printer.key == printer_data.uuid)) if not printer: printer = printer_data.createOutputModel(ClusterOutputController(self)) else: