int fd;
int watch;
int hasSendFD;
+ int willhangup;
virDomainObjPtr vm;
if (events & VIR_EVENT_HANDLE_HANGUP) {
hangup = true;
if (!error) {
- virReportError(VIR_ERR_INTERNAL_ERROR, "%s",
- _("End of file from qemu monitor"));
+ if (!mon->willhangup) {
+ virReportError(VIR_ERR_INTERNAL_ERROR, "%s",
+ _("End of file from qemu monitor"));
+ }
eof = true;
events &= ~VIR_EVENT_HANDLE_HANGUP;
}
if (mon->lastError.code != VIR_ERR_OK) {
/* Already have an error, so clear any new error */
virResetLastError();
- } else {
+ } else if (!mon->willhangup) {
virErrorPtr err = virGetLastError();
if (!err)
virReportError(VIR_ERR_INTERNAL_ERROR, "%s",
{
int ret = -1;
VIR_DEBUG("mon=%p", mon);
+ mon->willhangup = 1;
QEMU_MONITOR_CALLBACK(mon, ret, domainShutdown, mon->vm);
return ret;