]> xenbits.xensource.com Git - libvirt.git/commitdiff
remote: Use consistent error preservation and restoration calls
authorJohn Ferlan <jferlan@redhat.com>
Thu, 6 Dec 2018 17:33:20 +0000 (12:33 -0500)
committerJohn Ferlan <jferlan@redhat.com>
Wed, 16 Oct 2019 19:24:41 +0000 (15:24 -0400)
Provide some consistency over error message variable name and usage
when saving error messages across possible other errors or possibility
of resetting of the last error.

Instead of virSaveLastError paired up with virSetError and virFreeError,
we should use the newer virErrorPreserveLast and virRestoreError.

Signed-off-by: John Ferlan <jferlan@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
src/remote/remote_daemon_stream.c

index d7fcb1bf42b4521adc8e31898c48ccc317af82ec..c4f14a27ef7b64b5817a4126a20b6c76a698ea7e 100644 (file)
@@ -229,15 +229,18 @@ daemonStreamEvent(virStreamPtr st, int events, void *opaque)
         int ret;
         virNetMessagePtr msg;
         virNetMessageError rerr;
-        virErrorPtr origErr = virSaveLastError();
+        virErrorPtr origErr;
+
+        virErrorPreserveLast(&origErr);
 
         memset(&rerr, 0, sizeof(rerr));
         stream->closed = true;
         virStreamEventRemoveCallback(stream->st);
         virStreamAbort(stream->st);
         if (origErr && origErr->code != VIR_ERR_OK) {
-            virSetError(origErr);
+            virErrorRestore(&origErr);
         } else {
+            virFreeError(origErr);
             if (events & VIR_STREAM_EVENT_HANGUP)
                 virReportError(VIR_ERR_RPC,
                                "%s", _("stream had unexpected termination"));
@@ -245,7 +248,6 @@ daemonStreamEvent(virStreamPtr st, int events, void *opaque)
                 virReportError(VIR_ERR_RPC,
                                "%s", _("stream had I/O failure"));
         }
-        virFreeError(origErr);
 
         msg = virNetMessageNew(false);
         if (!msg) {
@@ -549,7 +551,9 @@ daemonStreamHandleWriteData(virNetServerClientPtr client,
         return 1;
     } else if (ret < 0) {
         virNetMessageError rerr;
-        virErrorPtr err = virSaveLastError();
+        virErrorPtr err;
+
+        virErrorPreserveLast(&err);
 
         memset(&rerr, 0, sizeof(rerr));
 
@@ -558,10 +562,7 @@ daemonStreamHandleWriteData(virNetServerClientPtr client,
         virStreamEventRemoveCallback(stream->st);
         virStreamAbort(stream->st);
 
-        if (err) {
-            virSetError(err);
-            virFreeError(err);
-        }
+        virErrorRestore(&err);
 
         return virNetServerProgramSendReplyError(stream->prog,
                                                  client,