From a6e26d8ea91ed373e54022c434d671856ef72424 Mon Sep 17 00:00:00 2001 From: grossmj Date: Sat, 21 Mar 2026 10:31:22 +0800 Subject: [PATCH] Fix errors from controller are not reported --- gns3/controller.py | 2 +- gns3/http_client.py | 5 ++--- gns3/project.py | 2 +- mac-requirements.txt | 2 +- win-requirements.txt | 2 +- 5 files changed, 6 insertions(+), 7 deletions(-) diff --git a/gns3/controller.py b/gns3/controller.py index 9a5b9505..8e5fe40a 100644 --- a/gns3/controller.py +++ b/gns3/controller.py @@ -432,7 +432,7 @@ class Controller(QtCore.QObject): else: self._notification_stream = self._http_client.connectWebSocket(self._websocket, "/notifications/ws") self._notification_stream.textMessageReceived.connect(self._websocket_event_received) - self._notification_stream.error.connect(self._websocket_error) + self._notification_stream.errorOccurred.connect(self._websocket_error) self._notification_stream.sslErrors.connect(self._sslErrorsSlot) log.info("Listening for controller notifications on '{}'".format(self._notification_stream.requestUrl().toString())) diff --git a/gns3/http_client.py b/gns3/http_client.py index 2629cfef..0c0be2ae 100644 --- a/gns3/http_client.py +++ b/gns3/http_client.py @@ -574,8 +574,7 @@ class HTTPClient(QtCore.QObject): context["query_id"] = str(uuid.uuid4()) response.finished.connect(qpartial(self._processResponse, response, server, callback, context, body, ignoreErrors)) - #FIXME: - #response.error.connect(qpartial(self._processError, response, server, callback, context, body, ignoreErrors)) + response.errorOccurred.connect(qpartial(self._processError, response, server, callback, context, body, ignoreErrors)) if downloadProgressCallback is not None: response.readyRead.connect(qpartial(self._readyReadySlot, response, downloadProgressCallback, context, server)) @@ -665,7 +664,7 @@ class HTTPClient(QtCore.QObject): if "query_id" in context: self._notify_progress_end_query(context["query_id"]) - if error_code < 200 or error_code == 403: + if error_code.value < 200 or error_code.value == 403: if error_code == QtNetwork.QNetworkReply.NetworkError.OperationCanceledError: # It's legit to cancel do not disconnect error_message = "Operation timeout" # It's clearer than cancel because cancel is triggered by us when we timeout elif error_code == QtNetwork.QNetworkReply.NetworkError.NetworkSessionFailedError: diff --git a/gns3/project.py b/gns3/project.py index 25030836..7135d0a5 100644 --- a/gns3/project.py +++ b/gns3/project.py @@ -642,7 +642,7 @@ class Project(QtCore.QObject): path = "/projects/{project_id}/notifications/ws".format(project_id=self._id) self._notification_stream = Controller.instance().httpClient().connectWebSocket(self._websocket, path) self._notification_stream.textMessageReceived.connect(self._websocket_event_received) - self._notification_stream.error.connect(self._websocket_error) + self._notification_stream.errorOccurred.connect(self._websocket_error) self._notification_stream.sslErrors.connect(self._sslErrorsSlot) log.info("Listening for project notifications on '{}'".format(self._notification_stream.requestUrl().toString())) diff --git a/mac-requirements.txt b/mac-requirements.txt index 237fe1fb..33f97235 100644 --- a/mac-requirements.txt +++ b/mac-requirements.txt @@ -1,3 +1,3 @@ -rrequirements.txt -PyQt6==6.10.1 +PyQt6==6.10.2 diff --git a/win-requirements.txt b/win-requirements.txt index 1156e947..e22bdf32 100644 --- a/win-requirements.txt +++ b/win-requirements.txt @@ -1,4 +1,4 @@ -rrequirements.txt -PyQt6==6.10.1 # pyup: ignore +PyQt6==6.10.2 # pyup: ignore pywin32==311 # pyup: ignore