[evolution-ews/wip/mcrha/soup3] Handle when ESoapResponse cannot be created due to SoupMessage failure



commit 98624d80f55764bc175b75f45689ed7fa678ed5d
Author: Milan Crha <mcrha redhat com>
Date:   Tue May 24 15:23:36 2022 +0200

    Handle when ESoapResponse cannot be created due to SoupMessage failure

 src/EWS/common/e-ews-connection.c | 2 +-
 src/EWS/common/e-soap-response.c  | 6 ++++++
 2 files changed, 7 insertions(+), 1 deletion(-)
---
diff --git a/src/EWS/common/e-ews-connection.c b/src/EWS/common/e-ews-connection.c
index cb68d600..fbc5d28c 100644
--- a/src/EWS/common/e-ews-connection.c
+++ b/src/EWS/common/e-ews-connection.c
@@ -605,7 +605,7 @@ e_ews_connection_send_request_sync (EEwsConnection *cnc,
                                        e_ews_connection_wait_ms (EWS_RETRY_AUTH_ERROR_SECONDS * 1000, 
cancellable);
 
                                        retrying_after_io_error = TRUE;
-                                       repeat = !g_cancellable_set_error_if_cancelled (cancellable, 
&local_error);
+                                       repeat = !g_cancellable_set_error_if_cancelled (cancellable, 
&local_error2);
                                } else {
                                        if (soup_message_get_response_headers (message)) {
                                                const gchar *diagnostics;
diff --git a/src/EWS/common/e-soap-response.c b/src/EWS/common/e-soap-response.c
index 149af230..269d9d08 100644
--- a/src/EWS/common/e-soap-response.c
+++ b/src/EWS/common/e-soap-response.c
@@ -7,6 +7,7 @@
 #include "evolution-ews-config.h"
 
 #include <libedataserver/eds-version.h>
+#include <libedataserver/libedataserver.h>
 
 #include <stdlib.h>
 #include <string.h>
@@ -411,6 +412,11 @@ e_soap_response_xmldoc_from_message_sync (ESoapResponse *response,
                response->priv->steal_fd = -1;
        }
 
+       if (!SOUP_STATUS_IS_SUCCESSFUL (soup_message_get_status (msg))) {
+               g_set_error_literal (error, E_SOUP_SESSION_ERROR, soup_message_get_status (msg), 
soup_message_get_reason_phrase (msg));
+               return NULL;
+       }
+
        size = soup_message_headers_get_one (soup_message_get_response_headers (msg), "Content-Length");
 
        if (size)


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]