|
|
9bac43 |
From 0ac33e4a0edae8877e2d400b9a3c5e7af902668f Mon Sep 17 00:00:00 2001
|
|
|
9bac43 |
From: "Daniel P. Berrange" <berrange@redhat.com>
|
|
|
9bac43 |
Date: Wed, 20 Dec 2017 17:56:44 +0100
|
|
|
9bac43 |
Subject: [PATCH 04/42] io: include full error message in websocket handshake
|
|
|
9bac43 |
trace
|
|
|
9bac43 |
MIME-Version: 1.0
|
|
|
9bac43 |
Content-Type: text/plain; charset=UTF-8
|
|
|
9bac43 |
Content-Transfer-Encoding: 8bit
|
|
|
9bac43 |
|
|
|
9bac43 |
RH-Author: Daniel P. Berrange <berrange@redhat.com>
|
|
|
9bac43 |
Message-id: <20171220175702.29663-3-berrange@redhat.com>
|
|
|
9bac43 |
Patchwork-id: 78458
|
|
|
9bac43 |
O-Subject: [RHV-7.5 qemu-kvm-rhev PATCH v2 02/20] io: include full error message in websocket handshake trace
|
|
|
9bac43 |
Bugzilla: 1518649
|
|
|
9bac43 |
RH-Acked-by: John Snow <jsnow@redhat.com>
|
|
|
9bac43 |
RH-Acked-by: Jeffrey Cody <jcody@redhat.com>
|
|
|
9bac43 |
RH-Acked-by: Miroslav Rezanina <mrezanin@redhat.com>
|
|
|
9bac43 |
|
|
|
9bac43 |
When the websocket handshake fails it is useful to log the real
|
|
|
9bac43 |
error message via the trace points for debugging purposes.
|
|
|
9bac43 |
|
|
|
9bac43 |
Fixes bug: #1715186
|
|
|
9bac43 |
|
|
|
9bac43 |
Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
|
|
|
9bac43 |
Signed-off-by: Daniel P. Berrange <berrange@redhat.com>
|
|
|
9bac43 |
(cherry picked from commit 3a3f8705962c8c8a47a9b981ffd5aab7274ad508)
|
|
|
9bac43 |
Signed-off-by: Miroslav Rezanina <mrezanin@redhat.com>
|
|
|
9bac43 |
---
|
|
|
9bac43 |
io/channel-websock.c | 7 ++++---
|
|
|
9bac43 |
io/trace-events | 2 +-
|
|
|
9bac43 |
2 files changed, 5 insertions(+), 4 deletions(-)
|
|
|
9bac43 |
|
|
|
9bac43 |
diff --git a/io/channel-websock.c b/io/channel-websock.c
|
|
|
9bac43 |
index f5fac5b..6ddcec1 100644
|
|
|
9bac43 |
--- a/io/channel-websock.c
|
|
|
9bac43 |
+++ b/io/channel-websock.c
|
|
|
9bac43 |
@@ -507,7 +507,7 @@ static gboolean qio_channel_websock_handshake_send(QIOChannel *ioc,
|
|
|
9bac43 |
&err;;
|
|
|
9bac43 |
|
|
|
9bac43 |
if (ret < 0) {
|
|
|
9bac43 |
- trace_qio_channel_websock_handshake_fail(ioc);
|
|
|
9bac43 |
+ trace_qio_channel_websock_handshake_fail(ioc, error_get_pretty(err));
|
|
|
9bac43 |
qio_task_set_error(task, err);
|
|
|
9bac43 |
qio_task_complete(task);
|
|
|
9bac43 |
return FALSE;
|
|
|
9bac43 |
@@ -516,7 +516,8 @@ static gboolean qio_channel_websock_handshake_send(QIOChannel *ioc,
|
|
|
9bac43 |
buffer_advance(&wioc->encoutput, ret);
|
|
|
9bac43 |
if (wioc->encoutput.offset == 0) {
|
|
|
9bac43 |
if (wioc->io_err) {
|
|
|
9bac43 |
- trace_qio_channel_websock_handshake_fail(ioc);
|
|
|
9bac43 |
+ trace_qio_channel_websock_handshake_fail(
|
|
|
9bac43 |
+ ioc, error_get_pretty(wioc->io_err));
|
|
|
9bac43 |
qio_task_set_error(task, wioc->io_err);
|
|
|
9bac43 |
wioc->io_err = NULL;
|
|
|
9bac43 |
qio_task_complete(task);
|
|
|
9bac43 |
@@ -547,7 +548,7 @@ static gboolean qio_channel_websock_handshake_io(QIOChannel *ioc,
|
|
|
9bac43 |
* client connection, as most of the time we have an
|
|
|
9bac43 |
* HTTP 4xx err response to send instead
|
|
|
9bac43 |
*/
|
|
|
9bac43 |
- trace_qio_channel_websock_handshake_fail(ioc);
|
|
|
9bac43 |
+ trace_qio_channel_websock_handshake_fail(ioc, error_get_pretty(err));
|
|
|
9bac43 |
qio_task_set_error(task, err);
|
|
|
9bac43 |
qio_task_complete(task);
|
|
|
9bac43 |
return FALSE;
|
|
|
9bac43 |
diff --git a/io/trace-events b/io/trace-events
|
|
|
9bac43 |
index 3d23369..6459f71 100644
|
|
|
9bac43 |
--- a/io/trace-events
|
|
|
9bac43 |
+++ b/io/trace-events
|
|
|
9bac43 |
@@ -46,7 +46,7 @@ qio_channel_websock_new_server(void *ioc, void *master) "Websock new client ioc=
|
|
|
9bac43 |
qio_channel_websock_handshake_start(void *ioc) "Websock handshake start ioc=%p"
|
|
|
9bac43 |
qio_channel_websock_handshake_pending(void *ioc, int status) "Websock handshake pending ioc=%p status=%d"
|
|
|
9bac43 |
qio_channel_websock_handshake_reply(void *ioc) "Websock handshake reply ioc=%p"
|
|
|
9bac43 |
-qio_channel_websock_handshake_fail(void *ioc) "Websock handshake fail ioc=%p"
|
|
|
9bac43 |
+qio_channel_websock_handshake_fail(void *ioc, const char *msg) "Websock handshake fail ioc=%p err=%s"
|
|
|
9bac43 |
qio_channel_websock_handshake_complete(void *ioc) "Websock handshake complete ioc=%p"
|
|
|
9bac43 |
|
|
|
9bac43 |
# io/channel-command.c
|
|
|
9bac43 |
--
|
|
|
9bac43 |
1.8.3.1
|
|
|
9bac43 |
|