diff --git a/src/virtManager/libvirtglib.py b/src/virtManager/libvirtglib.py index cf18b4bd0..82138cbd1 100644 --- a/src/virtManager/libvirtglib.py +++ b/src/virtManager/libvirtglib.py @@ -179,6 +179,8 @@ def glib_event_timeout_dispatch(opaque): data = opaque data.cb(data.timer, data.opaque) + return True + def glib_event_timeout_add(interval, cb, opaque): data = EventTimer() diff --git a/src/virtManager/serialcon.py b/src/virtManager/serialcon.py index 27463af36..1d0c94eb5 100644 --- a/src/virtManager/serialcon.py +++ b/src/virtManager/serialcon.py @@ -145,7 +145,7 @@ class LibvirtConsoleConnection(ConsoleConnection): if events & libvirt.VIR_EVENT_HANDLE_READABLE: try: - got = self.stream.recv(1024) + got = self.stream.recv(1024 * 100) except: logging.exception("Error receiving stream data") self.close() @@ -154,8 +154,9 @@ class LibvirtConsoleConnection(ConsoleConnection): if got == -2: return + queued_text = bool(self.streamToTerminal) self.streamToTerminal += got - if self.streamToTerminal: + if not queued_text: self.safe_idle_add(self.display_data, terminal) if (events & libvirt.VIR_EVENT_HANDLE_WRITABLE and