all lists on lists.proxmox.com
 help / color / mirror / Atom feed
* [pve-devel] [PATCH proxmox_dart_api_client v2] fix: ios: reorder on catch clauses to catch `NSErrorClientException`
@ 2025-10-17 11:34 Shan Shaji
  0 siblings, 0 replies; only message in thread
From: Shan Shaji @ 2025-10-17 11:34 UTC (permalink / raw)
  To: pve-devel

The `NSErrorClientException` catch clause was not being executed because
it's a subtype of `ClientException`. This resulted in showing the
actual error from the package instead of our custom error message when
the SSL/TLS handshake failed. Fixed the issue by reordering the on catch
clauses.

Signed-off-by: Shan Shaji <s.shaji@proxmox.com>
---
 changes since v1: Thanks @Dominik
 - Removed the explicit type check inside the `ClientException` and
   reordered the catch clauses.

 lib/src/authenticate.dart | 20 ++++++++++----------
 1 file changed, 10 insertions(+), 10 deletions(-)

diff --git a/lib/src/authenticate.dart b/lib/src/authenticate.dart
index 04f363f..4c9ae22 100644
--- a/lib/src/authenticate.dart
+++ b/lib/src/authenticate.dart
@@ -57,17 +57,17 @@ Future<ProxmoxApiClient> authenticate(
   } on TimeoutException catch (_) {
     throw ProxmoxApiException(
         'Authentication takes unusually long, check network connection', 408);
-  } on http.ClientException catch (e) {
-    if (e.message.contains('net::ERR_CERT_AUTHORITY_INVALID')) {
-      throw HandshakeException(e.message);
-    }
-    rethrow;
   } on NSErrorClientException catch (e) {
     // Treat untrusted server certificate (-1202) as a handshake failure.
     if (e.error.code == -1202) {
       throw HandshakeException(e.message);
     }
     rethrow;
+  } on http.ClientException catch (e) {
+    if (e.message.contains('net::ERR_CERT_AUTHORITY_INVALID')) {
+      throw HandshakeException(e.message);
+    }
+    rethrow;
   }
 }
 
@@ -87,16 +87,16 @@ Future<List<PveAccessDomainModel?>> accessDomains(
       return serializers.deserializeWith(PveAccessDomainModel.serializer, f);
     });
     return data.toList();
-  } on http.ClientException catch (e) {
-    if (e.message.contains('net::ERR_CERT_AUTHORITY_INVALID')) {
-      throw HandshakeException(e.message);
-    }
-    rethrow;
   } on NSErrorClientException catch (e) {
     // Treat untrusted server certificate (-1202) as a handshake failure.
     if (e.error.code == -1202) {
       throw HandshakeException(e.message);
     }
     rethrow;
+  } on http.ClientException catch (e) {
+    if (e.message.contains('net::ERR_CERT_AUTHORITY_INVALID')) {
+      throw HandshakeException(e.message);
+    }
+    rethrow;
   }
 }
-- 
2.50.1



_______________________________________________
pve-devel mailing list
pve-devel@lists.proxmox.com
https://lists.proxmox.com/cgi-bin/mailman/listinfo/pve-devel


^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2025-10-17 11:34 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2025-10-17 11:34 [pve-devel] [PATCH proxmox_dart_api_client v2] fix: ios: reorder on catch clauses to catch `NSErrorClientException` Shan Shaji

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.
Service provided by Proxmox Server Solutions GmbH | Privacy | Legal