From: Michal Privoznik Date: Thu, 5 May 2011 09:21:41 +0000 (+0200) Subject: interface: new public API for network config change transactions X-Git-Tag: CVE-2011-2178~58 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=ba0b5934b309697369d5c24778a489ec01a005c1;p=thirdparty%2Flibvirt.git interface: new public API for network config change transactions This is the API agreed on in: https://www.redhat.com/archives/libvir-list/2011-May/msg00026.html (with a slight name change to use "...begin" rather than "...start"). This implements transactional changes to the host network config. When a transaction is begun with ncf_change_begin(), all other netcf APIs will continue to work as they always have, but a snapshot of the existing config will be taken, allowing reversion (rollback, using ncf_change_rollback()) to the exact state of config at the time ncf_change_begin() was called. Alternately, if it's determined that the new changes are acceptable, ncf_change_commit() can be called, which will eliminate the snapshot and make the changes permanent. As a failsafe measure, if neither ncf_change_commit() or ncf_change_rollback() is called by the next time the system reboots, the netcf-transaction initscript will be automatically called to rollback the changes. --- diff --git a/include/libvirt/libvirt.h.in b/include/libvirt/libvirt.h.in index 212d8ec316..91dabfbaca 100644 --- a/include/libvirt/libvirt.h.in +++ b/include/libvirt/libvirt.h.in @@ -1424,6 +1424,13 @@ int virInterfaceDestroy (virInterfacePtr iface, int virInterfaceRef (virInterfacePtr iface); int virInterfaceFree (virInterfacePtr iface); +int virInterfaceChangeBegin (virConnectPtr conn, + unsigned int flags); +int virInterfaceChangeCommit (virConnectPtr conn, + unsigned int flags); +int virInterfaceChangeRollback(virConnectPtr conn, + unsigned int flags); + /** * virStoragePool: * diff --git a/src/libvirt_public.syms b/src/libvirt_public.syms index cd23f6903e..022db3c93e 100644 --- a/src/libvirt_public.syms +++ b/src/libvirt_public.syms @@ -444,6 +444,9 @@ LIBVIRT_0.9.2 { virDomainSetSchedulerParametersFlags; virDomainMigrate2; virDomainMigrateToURI2; + virInterfaceChangeBegin; + virInterfaceChangeCommit; + virInterfaceChangeRollback; } LIBVIRT_0.9.0; # .... define new API here using predicted next version number ....