Replacement of the default chardev handlers now requires a call to
release the current handlers.

Signed-off-by: Gal Hammer <gham...@redhat.com>
---
 monitor.c | 1 +
 qtest.c   | 2 ++
 2 files changed, 3 insertions(+)

diff --git a/monitor.c b/monitor.c
index de90fba..db52e7f 100644
--- a/monitor.c
+++ b/monitor.c
@@ -5024,6 +5024,7 @@ void monitor_init(CharDriverState *chr, int flags)
     if (monitor_ctrl_mode(mon)) {
         mon->mc = g_malloc0(sizeof(MonitorControl));
         /* Control mode requires special handlers */
+        qemu_chr_add_handlers(chr, NULL, NULL, NULL, NULL);
         qemu_chr_add_handlers(chr, monitor_can_read, monitor_control_read,
                               monitor_control_event, mon);
         qemu_chr_fe_set_echo(chr, true);
diff --git a/qtest.c b/qtest.c
index ae941d6..a5682ee 100644
--- a/qtest.c
+++ b/qtest.c
@@ -519,6 +519,8 @@ void qtest_init(const char *qtest_chrdev, const char 
*qtest_log, Error **errp)
         return;
     }
 
+    /* Replace the default tcp's handlers with qtest's handlers. */
+    qemu_chr_add_handlers(chr, NULL, NULL, NULL, NULL);
     qemu_chr_add_handlers(chr, qtest_can_read, qtest_read, qtest_event, chr);
     qemu_chr_fe_set_echo(chr, true);
 
-- 
1.8.5.3


Reply via email to