File clock2.patch of Package libvirt-cim

# HG changeset patch
# User Dan Smith <danms@us.ibm.com>
# Date 1228767394 28800
# Node ID 780ad920644642f2fa54006b67942d1cfb2992c3
# Parent  18cd726e564ae8bffc518dbb5b27671548b97de1
Add <clock> support to device_parsing and xmlgen

Signed-off-by: Dan Smith <danms@us.ibm.com>

Index: libvirt-cim-0.5.2/libxkutil/device_parsing.c
===================================================================
--- libvirt-cim-0.5.2.orig/libxkutil/device_parsing.c
+++ libvirt-cim-0.5.2/libxkutil/device_parsing.c
@@ -820,6 +820,8 @@ static int parse_domain(xmlNodeSet *nsv,
                         set_action(&dominfo->on_reboot, child);
                 else if (XSTREQ(child->name, "on_crash"))
                         set_action(&dominfo->on_crash, child);
+                else if (XSTREQ(child->name, "clock"))
+                        dominfo->clock = get_attr_value(child, "offset");
         }
 
         return 1;
Index: libvirt-cim-0.5.2/libxkutil/device_parsing.h
===================================================================
--- libvirt-cim-0.5.2.orig/libxkutil/device_parsing.h
+++ libvirt-cim-0.5.2/libxkutil/device_parsing.h
@@ -107,6 +107,7 @@ struct domain {
         char *uuid;
         char *bootloader;
         char *bootloader_args;
+        char *clock;
 
         union {
                 struct pv_os_info pv;
Index: libvirt-cim-0.5.2/libxkutil/xmlgen.c
===================================================================
--- libvirt-cim-0.5.2.orig/libxkutil/xmlgen.c
+++ libvirt-cim-0.5.2/libxkutil/xmlgen.c
@@ -463,6 +463,7 @@ static char *system_xml(struct domain *d
         int ret;
         char *bl = NULL;
         char *bl_args = NULL;
+        char *clock = NULL;
         char *xml;
 
         if (domain->bootloader)
@@ -476,15 +477,22 @@ static char *system_xml(struct domain *d
                                  NULL,
                                  0);
 
+        if (domain->clock)
+                if (asprintf(&clock, "<clock sync='%s' />",
+                             domain->clock) == -1)
+                        clock = NULL;
+
         ret = asprintf(&xml,
                        "<name>%s</name>\n"
                        "%s\n"
                        "%s\n"
+                       "%s\n"
                        "<on_poweroff>%s</on_poweroff>\n"
                        "<on_crash>%s</on_crash>\n",
                        domain->name,
                        bl ? bl : "",
                        bl_args ? bl_args : "",
+                       clock ? clock : "",
                        vssd_recovery_action_str(domain->on_poweroff),
                        vssd_recovery_action_str(domain->on_crash));
         if (ret == -1)
@@ -492,7 +500,8 @@ static char *system_xml(struct domain *d
 
         free(bl);
         free(bl_args);
-
+        free(clock);
+        
         return xml;
 }
 
openSUSE Build Service is sponsored by