[libvirt] [PATCH 3/3] libvirt-qemu: Dispatch errors from virDomainQemuAgentCommand()

2013-06-03 Thread Peter Krempa
The original implementation didn't follow the established pattern and
did not dispatch errors in case of failure.
---
 src/libvirt-qemu.c | 9 +++--
 1 file changed, 7 insertions(+), 2 deletions(-)

diff --git a/src/libvirt-qemu.c b/src/libvirt-qemu.c
index 747488d..e884e32 100644
--- a/src/libvirt-qemu.c
+++ b/src/libvirt-qemu.c
@@ -211,6 +211,7 @@ virDomainQemuAgentCommand(virDomainPtr domain,
   unsigned int flags)
 {
 virConnectPtr conn;
+char *ret;

 VIR_DEBUG(domain=%p, cmd=%s, timeout=%d, flags=%x,
   domain, cmd, timeout, flags);
@@ -228,13 +229,17 @@ virDomainQemuAgentCommand(virDomainPtr domain,
 conn = domain-conn;

 if (conn-driver-domainQemuAgentCommand) {
-return conn-driver-domainQemuAgentCommand(domain, cmd,
-timeout, flags);
+ret = conn-driver-domainQemuAgentCommand(domain, cmd,
+   timeout, flags);
+if (!ret)
+goto error;
+return ret;
 }

 virLibConnError(conn, VIR_ERR_NO_SUPPORT, __FUNCTION__);

 /* Copy to connection error object for back compatibility */
+error:
 virDispatchError(conn);
 return NULL;
 }
-- 
1.8.2.1

--
libvir-list mailing list
libvir-list@redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list


Re: [libvirt] [PATCH 3/3] libvirt-qemu: Dispatch errors from virDomainQemuAgentCommand()

2013-06-03 Thread Martin Kletzander
On 06/03/2013 04:35 PM, Peter Krempa wrote:
 The original implementation didn't follow the established pattern and
 did not dispatch errors in case of failure.
 ---
  src/libvirt-qemu.c | 9 +++--
  1 file changed, 7 insertions(+), 2 deletions(-)
 
 diff --git a/src/libvirt-qemu.c b/src/libvirt-qemu.c
 index 747488d..e884e32 100644
 --- a/src/libvirt-qemu.c
 +++ b/src/libvirt-qemu.c
 @@ -211,6 +211,7 @@ virDomainQemuAgentCommand(virDomainPtr domain,
unsigned int flags)
  {
  virConnectPtr conn;
 +char *ret;
 
  VIR_DEBUG(domain=%p, cmd=%s, timeout=%d, flags=%x,
domain, cmd, timeout, flags);
 @@ -228,13 +229,17 @@ virDomainQemuAgentCommand(virDomainPtr domain,
  conn = domain-conn;
 
  if (conn-driver-domainQemuAgentCommand) {
 -return conn-driver-domainQemuAgentCommand(domain, cmd,
 -timeout, flags);
 +ret = conn-driver-domainQemuAgentCommand(domain, cmd,
 +   timeout, flags);
 +if (!ret)
 +goto error;
 +return ret;
  }
 
  virLibConnError(conn, VIR_ERR_NO_SUPPORT, __FUNCTION__);
 
  /* Copy to connection error object for back compatibility */
 +error:
  virDispatchError(conn);
  return NULL;
  }
 

One more fix would fit here, so ACK with this squashed in:

diff --git a/src/libvirt-qemu.c b/src/libvirt-qemu.c
index e884e32..9dd76dd 100644
--- a/src/libvirt-qemu.c
+++ b/src/libvirt-qemu.c
@@ -221,13 +221,14 @@ virDomainQemuAgentCommand(virDomainPtr domain,
 virDispatchError(NULL);
 return NULL;
 }
+
+conn = domain-conn;
+
 if (domain-conn-flags  VIR_CONNECT_RO) {
 virLibDomainError(NULL, VIR_ERR_OPERATION_DENIED, __FUNCTION__);
-return NULL;
+goto error;
 }

-conn = domain-conn;
-
 if (conn-driver-domainQemuAgentCommand) {
 ret = conn-driver-domainQemuAgentCommand(domain, cmd,
timeout, flags);
--

Martin

--
libvir-list mailing list
libvir-list@redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list


Re: [libvirt] [PATCH 3/3] libvirt-qemu: Dispatch errors from virDomainQemuAgentCommand()

2013-06-03 Thread Peter Krempa

On 06/03/13 17:22, Martin Kletzander wrote:

On 06/03/2013 04:35 PM, Peter Krempa wrote:

The original implementation didn't follow the established pattern and
did not dispatch errors in case of failure.
---
  src/libvirt-qemu.c | 9 +++--
  1 file changed, 7 insertions(+), 2 deletions(-)





One more fix would fit here, so ACK with this squashed in:


I squashed the fix you've proposed and pushed the whole series.

Thanks for the review.



Martin



Peter

--
libvir-list mailing list
libvir-list@redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list