virDomainAttachDevice and virDomainDetachDevice both take a char * for the XML description, but this is mistakenly not declared to be const. This patch fixes the public header files & all the internal drivers. NB, yes this is in the public API, no it won't break any apps since these are input params only.
Regards, Dan. -- |=- Red Hat, Engineering, Emerging Technologies, Boston. +1 978 392 2496 -=| |=- Perl modules: http://search.cpan.org/~danberr/ -=| |=- Projects: http://freshmeat.net/~danielpb/ -=| |=- GnuPG: 7D3B9505 F3C9 553F A1DA 4AC2 5648 23C1 B3DF F742 7D3B 9505 -=|
Index: src/driver.h =================================================================== RCS file: /data/cvs/libvirt/src/driver.h,v retrieving revision 1.37 diff -u -p -r1.37 driver.h --- src/driver.h 30 Sep 2007 13:09:07 -0000 1.37 +++ src/driver.h 13 Oct 2007 02:46:19 -0000 @@ -184,10 +184,10 @@ typedef int (*virDrvDomainGetMaxVcpus) (virDomainPtr domain); typedef int (*virDrvDomainAttachDevice) (virDomainPtr domain, - char *xml); + const char *xml); typedef int (*virDrvDomainDetachDevice) (virDomainPtr domain, - char *xml); + const char *xml); typedef int (*virDrvDomainGetAutostart) (virDomainPtr domain, int *autostart); Index: src/libvirt.c =================================================================== RCS file: /data/cvs/libvirt/src/libvirt.c,v retrieving revision 1.102 diff -u -p -r1.102 libvirt.c --- src/libvirt.c 30 Sep 2007 13:17:45 -0000 1.102 +++ src/libvirt.c 13 Oct 2007 02:46:21 -0000 @@ -2602,7 +2602,7 @@ virDomainGetMaxVcpus(virDomainPtr domain * Returns 0 in case of success, -1 in case of failure. */ int -virDomainAttachDevice(virDomainPtr domain, char *xml) +virDomainAttachDevice(virDomainPtr domain, const char *xml) { virConnectPtr conn; DEBUG("domain=%p, xml=%s", domain, xml); @@ -2634,7 +2634,7 @@ virDomainAttachDevice(virDomainPtr domai * Returns 0 in case of success, -1 in case of failure. */ int -virDomainDetachDevice(virDomainPtr domain, char *xml) +virDomainDetachDevice(virDomainPtr domain, const char *xml) { virConnectPtr conn; DEBUG("domain=%p, xml=%s", domain, xml); Index: src/remote_internal.c =================================================================== RCS file: /data/cvs/libvirt/src/remote_internal.c,v retrieving revision 1.28 diff -u -p -r1.28 remote_internal.c --- src/remote_internal.c 28 Sep 2007 14:28:13 -0000 1.28 +++ src/remote_internal.c 13 Oct 2007 02:46:27 -0000 @@ -2089,13 +2089,13 @@ remoteDomainUndefine (virDomainPtr domai } static int -remoteDomainAttachDevice (virDomainPtr domain, char *xml) +remoteDomainAttachDevice (virDomainPtr domain, const char *xml) { remote_domain_attach_device_args args; GET_PRIVATE (domain->conn, -1); make_nonnull_domain (&args.dom, domain); - args.xml = xml; + args.xml = (char *) xml; if (call (domain->conn, priv, 0, REMOTE_PROC_DOMAIN_ATTACH_DEVICE, (xdrproc_t) xdr_remote_domain_attach_device_args, (char *) &args, @@ -2106,13 +2106,13 @@ remoteDomainAttachDevice (virDomainPtr d } static int -remoteDomainDetachDevice (virDomainPtr domain, char *xml) +remoteDomainDetachDevice (virDomainPtr domain, const char *xml) { remote_domain_detach_device_args args; GET_PRIVATE (domain->conn, -1); make_nonnull_domain (&args.dom, domain); - args.xml = xml; + args.xml = (char *) xml; if (call (domain->conn, priv, 0, REMOTE_PROC_DOMAIN_DETACH_DEVICE, (xdrproc_t) xdr_remote_domain_detach_device_args, (char *) &args, Index: src/xen_unified.c =================================================================== RCS file: /data/cvs/libvirt/src/xen_unified.c,v retrieving revision 1.23 diff -u -p -r1.23 xen_unified.c --- src/xen_unified.c 30 Sep 2007 13:09:07 -0000 1.23 +++ src/xen_unified.c 13 Oct 2007 02:46:28 -0000 @@ -948,7 +948,7 @@ xenUnifiedDomainUndefine (virDomainPtr d } static int -xenUnifiedDomainAttachDevice (virDomainPtr dom, char *xml) +xenUnifiedDomainAttachDevice (virDomainPtr dom, const char *xml) { GET_PRIVATE(dom->conn); int i; @@ -962,7 +962,7 @@ xenUnifiedDomainAttachDevice (virDomainP } static int -xenUnifiedDomainDetachDevice (virDomainPtr dom, char *xml) +xenUnifiedDomainDetachDevice (virDomainPtr dom, const char *xml) { GET_PRIVATE(dom->conn); int i; Index: src/xend_internal.c =================================================================== RCS file: /data/cvs/libvirt/src/xend_internal.c,v retrieving revision 1.147 diff -u -p -r1.147 xend_internal.c --- src/xend_internal.c 8 Oct 2007 15:02:48 -0000 1.147 +++ src/xend_internal.c 13 Oct 2007 02:46:31 -0000 @@ -58,8 +58,8 @@ static virDomainPtr xenDaemonCreateLinux const char *xmlDesc, unsigned int flags); static char *xenDaemonDomainGetOSType(virDomainPtr domain); -static int xenDaemonAttachDevice(virDomainPtr domain, char *xml); -static int xenDaemonDetachDevice(virDomainPtr domain, char *xml); +static int xenDaemonAttachDevice(virDomainPtr domain, const char *xml); +static int xenDaemonDetachDevice(virDomainPtr domain, const char *xml); static int xenDaemonDomainCoreDump(virDomainPtr domain, const char *filename, int flags); #endif /* PROXY */ @@ -3337,7 +3337,7 @@ xenDaemonCreateLinux(virConnectPtr conn, * Returns 0 in case of success, -1 in case of failure. */ static int -xenDaemonAttachDevice(virDomainPtr domain, char *xml) +xenDaemonAttachDevice(virDomainPtr domain, const char *xml) { char *sexpr, *conf, *str; int hvm = 0, ret; @@ -3396,7 +3396,7 @@ xenDaemonAttachDevice(virDomainPtr domai * Returns 0 in case of success, -1 in case of failure. */ static int -xenDaemonDetachDevice(virDomainPtr domain, char *xml) +xenDaemonDetachDevice(virDomainPtr domain, const char *xml) { char class[8], ref[80]; Index: src/xml.c =================================================================== RCS file: /data/cvs/libvirt/src/xml.c,v retrieving revision 1.91 diff -u -p -r1.91 xml.c --- src/xml.c 10 Oct 2007 17:41:06 -0000 1.91 +++ src/xml.c 13 Oct 2007 02:46:31 -0000 @@ -1335,7 +1335,7 @@ virDomainParseXMLDesc(virConnectPtr conn * the caller must free() the returned value. */ char * -virParseXMLDevice(virConnectPtr conn, char *xmldesc, int hvm, int xendConfigVersion) +virParseXMLDevice(virConnectPtr conn, const char *xmldesc, int hvm, int xendConfigVersion) { xmlDocPtr xml = NULL; xmlNodePtr node; @@ -1396,7 +1396,7 @@ virParseXMLDevice(virConnectPtr conn, ch * Returns 0 in case of success, -1 in case of failure. */ int -virDomainXMLDevID(virDomainPtr domain, char *xmldesc, char *class, char *ref, int ref_len) +virDomainXMLDevID(virDomainPtr domain, const char *xmldesc, char *class, char *ref, int ref_len) { xmlDocPtr xml = NULL; xmlNodePtr node, cur; Index: src/xml.h =================================================================== RCS file: /data/cvs/libvirt/src/xml.h,v retrieving revision 1.17 diff -u -p -r1.17 xml.h --- src/xml.h 12 Sep 2007 15:41:51 -0000 1.17 +++ src/xml.h 13 Oct 2007 02:46:32 -0000 @@ -32,8 +32,8 @@ int virXPathNodeSet (const char *xpath, xmlNodePtr **list); char *virDomainParseXMLDesc(virConnectPtr conn, const char *xmldesc, char **name, int xendConfigVersion); -char *virParseXMLDevice(virConnectPtr conn, char *xmldesc, int hvm, int xendConfigVersion); - int virDomainXMLDevID(virDomainPtr domain, char *xmldesc, char *class, char *ref, int ref_len); +char *virParseXMLDevice(virConnectPtr conn, const char *xmldesc, int hvm, int xendConfigVersion); + int virDomainXMLDevID(virDomainPtr domain, const char *xmldesc, char *class, char *ref, int ref_len); #ifdef __cplusplus } Index: include/libvirt/libvirt.h =================================================================== RCS file: /data/cvs/libvirt/include/libvirt/libvirt.h,v retrieving revision 1.58 diff -u -p -r1.58 libvirt.h --- include/libvirt/libvirt.h 30 Sep 2007 21:09:29 -0000 1.58 +++ include/libvirt/libvirt.h 13 Oct 2007 02:46:32 -0000 @@ -591,8 +591,8 @@ int virDomainGetVcpus (virDomainPtr do */ #define VIR_GET_CPUMAP(cpumaps,maplen,vcpu) &(cpumaps[(vcpu)*(maplen)]) -int virDomainAttachDevice(virDomainPtr domain, char *xml); -int virDomainDetachDevice(virDomainPtr domain, char *xml); +int virDomainAttachDevice(virDomainPtr domain, const char *xml); +int virDomainDetachDevice(virDomainPtr domain, const char *xml); /* * NUMA support Index: include/libvirt/libvirt.h.in =================================================================== RCS file: /data/cvs/libvirt/include/libvirt/libvirt.h.in,v retrieving revision 1.36 diff -u -p -r1.36 libvirt.h.in --- include/libvirt/libvirt.h.in 30 Sep 2007 13:09:07 -0000 1.36 +++ include/libvirt/libvirt.h.in 13 Oct 2007 02:46:32 -0000 @@ -591,8 +591,8 @@ int virDomainGetVcpus (virDomainPtr do */ #define VIR_GET_CPUMAP(cpumaps,maplen,vcpu) &(cpumaps[(vcpu)*(maplen)]) -int virDomainAttachDevice(virDomainPtr domain, char *xml); -int virDomainDetachDevice(virDomainPtr domain, char *xml); +int virDomainAttachDevice(virDomainPtr domain, const char *xml); +int virDomainDetachDevice(virDomainPtr domain, const char *xml); /* * NUMA support
-- Libvir-list mailing list Libvir-list@redhat.com https://www.redhat.com/mailman/listinfo/libvir-list