]> git.ipfire.org Git - thirdparty/libvirt.git/commitdiff
Fix propagation of RPC errors from streams
authorDaniel P. Berrange <berrange@redhat.com>
Mon, 27 Jun 2011 20:38:00 +0000 (21:38 +0100)
committerDaniel P. Berrange <berrange@redhat.com>
Wed, 29 Jun 2011 10:08:59 +0000 (11:08 +0100)
If a streams error is raised, virNetClientIOEventLoop
returns 0, but an error is set. Check for this and
propagate it if present

* src/rpc/virnetclient.c: Propagate streams error

src/rpc/virnetclient.c

index ded1e126157a60962982c36aedf9636d5d5c0920..dc0ce5107b5dec4be9cced302706dc437ab57fff 100644 (file)
@@ -1090,10 +1090,15 @@ static int virNetClientIO(virNetClientPtr client,
      */
     virNetSocketUpdateIOCallback(client->sock, 0);
 
+    virResetLastError();
     rv = virNetClientIOEventLoop(client, thiscall);
 
     virNetSocketUpdateIOCallback(client->sock, VIR_EVENT_HANDLE_READABLE);
 
+    if (rv == 0 &&
+        virGetLastError())
+        rv = -1;
+
 cleanup:
     VIR_DEBUG("All done with our call %p %p %d", client->waitDispatch, thiscall, rv);
     return rv;