summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCarlos Garcia Campos <cgarcia@igalia.com>2020-09-30 07:15:52 +0200
committerCarlos Garcia Campos <cgarcia@igalia.com>2020-09-30 07:15:52 +0200
commit22c23f958e9ecd2baceb2091e33b8ae528d4ff3d (patch)
treef0acd8ddcc6fa81459e771d33c47e7558ba65022
parent56be7f2dabcc22fb43f37997b6f89f15ebbce9ab (diff)
downloadlibsoup-22c23f958e9ecd2baceb2091e33b8ae528d4ff3d.tar.gz
session: set message status in case of TLS errors
We are not doing it when using the new api
-rw-r--r--libsoup/soup-session.c15
1 files changed, 13 insertions, 2 deletions
diff --git a/libsoup/soup-session.c b/libsoup/soup-session.c
index 16fd4db2..7752cc30 100644
--- a/libsoup/soup-session.c
+++ b/libsoup/soup-session.c
@@ -3436,6 +3436,11 @@ try_run_until_read (SoupMessageQueueItem *item)
}
if (!g_error_matches (error, G_IO_ERROR, G_IO_ERROR_WOULD_BLOCK)) {
+ if (error->domain == G_TLS_ERROR) {
+ soup_message_set_status_full (item->msg,
+ SOUP_STATUS_SSL_FAILED,
+ error->message);
+ }
if (item->state != SOUP_MESSAGE_FINISHED) {
if (soup_message_io_in_progress (item->msg))
soup_message_io_finished (item->msg);
@@ -3824,8 +3829,14 @@ soup_session_send (SoupSession *session,
soup_message_io_finished (item->msg);
g_clear_error (&my_error);
continue;
- } else
- break;
+ }
+
+ if (my_error->domain == G_TLS_ERROR) {
+ soup_message_set_status_full (msg,
+ SOUP_STATUS_SSL_FAILED,
+ my_error->message);
+ }
+ break;
}
stream = soup_message_io_get_response_istream (msg, &my_error);