[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]

Re: [libvirt] [PATCH 8/8] Implement RPC driver support for virDomainOpenGraphics



On 10/21/2011 06:56 AM, Daniel P. Berrange wrote:
From: "Daniel P. Berrange"<berrange redhat com>

Since it needs to access file descriptors pass in the msg,

s/pass/passed/

the RPC driver for virDomainOpenGraphics needs to be manually
implemented.

* daemon/remote.c: RPC server dispatcher
* src/remote/remote_driver.c: RPC client dispatcher
* src/remote/remote_protocol.x: Define protocol
---
  daemon/remote.c              |   43 ++++++++++++++++++++++++
  src/remote/remote_driver.c   |   73 +++++++++++++++++++++++++++++++++++------
  src/remote/remote_protocol.x |    9 ++++-
  3 files changed, 113 insertions(+), 12 deletions(-)

diff --git a/daemon/remote.c b/daemon/remote.c
index 2507e91..291011a 100644
--- a/daemon/remote.c
+++ b/daemon/remote.c
@@ -44,6 +44,7 @@
  #include "intprops.h"
  #include "virnetserverservice.h"
  #include "virnetserver.h"
+#include "virfile.h"

  #include "remote_protocol.h"
  #include "qemu_protocol.h"
@@ -3124,6 +3125,48 @@ cleanup:
  }



+static int
+remoteDispatchDomainOpenGraphics(virNetServerPtr server ATTRIBUTE_UNUSED,
+                                 virNetServerClientPtr client ATTRIBUTE_UNUSED,
+                                 virNetMessagePtr msg,
+                                 virNetMessageErrorPtr rerr,
+                                 remote_domain_open_graphics_args *args)
+{
+    virDomainPtr dom = NULL;
+    int rv = -1;
+    int fd;

Must set fd to -1 here; otherwise, the first goto cleanup will end up calling VIR_FORCE_CLOSE on an uninit value, which could close an unintended fd.

+++ b/src/remote/remote_protocol.x
@@ -2253,6 +2253,12 @@ struct remote_domain_get_control_info_ret { /* insert 1 */
      unsigned hyper stateTime;
  };

+struct remote_domain_open_graphics_args {
+    remote_nonnull_domain dom;
+    unsigned int idx;
+    unsigned int flags;
+};
+
  /*----- Protocol. -----*/

  /* Define the program number, protocol version and procedure numbers here. */
@@ -2546,7 +2552,8 @@ enum remote_procedure {
      REMOTE_PROC_DOMAIN_SNAPSHOT_GET_PARENT = 244, /* autogen autogen priority:high */
      REMOTE_PROC_DOMAIN_RESET = 245, /* autogen autogen */
      REMOTE_PROC_DOMAIN_SNAPSHOT_NUM_CHILDREN = 246, /* autogen autogen priority:high */
-    REMOTE_PROC_DOMAIN_SNAPSHOT_LIST_CHILDREN_NAMES = 247 /* autogen autogen priority:high */
+    REMOTE_PROC_DOMAIN_SNAPSHOT_LIST_CHILDREN_NAMES = 247, /* autogen autogen priority:high */
+    REMOTE_PROC_DOMAIN_OPEN_GRAPHICS = 248 /* skipgen skipgen */

      /*
       * Notice how the entries are grouped in sets of 10 ?

Missing src/remote_protocol-structs changes.

ACK with those problems fixed.

--
Eric Blake   eblake redhat com    +1-801-349-2682
Libvirt virtualization library http://libvirt.org


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]