summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-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);