These are the only places where we don't set stream->closed when
aborting the stream. This leads to spurious errors when the client
hangs up unexpectedly:
error : virFDStreamUpdateCallback:127 : internal error: stream is not open
---
daemon/stream.c | 2 ++
1 file changed, 2 insertions(+)
diff --git a/daemon/stream.c b/daemon/stream.c
index 8a97260..fcec3d0 100644
--- a/daemon/stream.c
+++ b/daemon/stream.c
@@ -463,6 +463,7 @@ daemonRemoveClientStream(virNetServerClientPtr client,
}
if (!stream->closed) {
+ stream->closed = true;
virStreamEventRemoveCallback(stream->st);
virStreamAbort(stream->st);
}
@@ -493,6 +494,7 @@ daemonRemoveAllClientStreams(daemonClientStream *stream)
tmp = stream->next;
if (!stream->closed) {
+ stream->closed = true;
virStreamEventRemoveCallback(stream->st);
virStreamAbort(stream->st);
}
--
2.7.3