diff --git a/AUTHORS b/AUTHORS index b951b4996e..1bb1f0f1ab 100644 --- a/AUTHORS +++ b/AUTHORS @@ -27,6 +27,7 @@ The primary maintainers and people with commit access rights: Justin Clift Osier Yang Wen Congyang + Michal Prívozník Previous maintainers: Karel Zak @@ -146,7 +147,6 @@ Patches have also been contributed by: Paweł Krześniak Kay Schubert Marc-André Lureau - Michal Prívozník Juerg Haefliger Matthias Dahl Niels de Vos diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c index eae178b0fb..e98af0f6a9 100644 --- a/src/conf/domain_conf.c +++ b/src/conf/domain_conf.c @@ -8561,6 +8561,8 @@ int virDomainSaveXML(const char *configDir, goto cleanup; } + virEmitXMLWarning(fd, def->name, "edit"); + towrite = strlen(xml); if (safewrite(fd, xml, towrite) < 0) { virReportSystemError(errno, diff --git a/src/conf/network_conf.c b/src/conf/network_conf.c index 08f7b77f35..4eb46faea1 100644 --- a/src/conf/network_conf.c +++ b/src/conf/network_conf.c @@ -925,6 +925,8 @@ int virNetworkSaveXML(const char *configDir, goto cleanup; } + virEmitXMLWarning(fd, def->name, "net-edit"); + towrite = strlen(xml); if (safewrite(fd, xml, towrite) < 0) { virReportSystemError(errno, diff --git a/src/conf/nwfilter_conf.c b/src/conf/nwfilter_conf.c index 5ba2972120..eb75bad9da 100644 --- a/src/conf/nwfilter_conf.c +++ b/src/conf/nwfilter_conf.c @@ -2249,6 +2249,8 @@ int virNWFilterSaveXML(const char *configDir, goto cleanup; } + virEmitXMLWarning(fd, def->name, "nwfilter-edit"); + towrite = strlen(xml); if (safewrite(fd, xml, towrite) < 0) { virReportSystemError(errno, @@ -2645,6 +2647,8 @@ virNWFilterObjSaveDef(virNWFilterDriverStatePtr driver, goto cleanup; } + virEmitXMLWarning(fd, def->name, "nwfilter-edit"); + towrite = strlen(xml); if (safewrite(fd, xml, towrite) != towrite) { virReportSystemError(errno, diff --git a/src/conf/storage_conf.c b/src/conf/storage_conf.c index aeb1596ec7..9be4caea76 100644 --- a/src/conf/storage_conf.c +++ b/src/conf/storage_conf.c @@ -1551,6 +1551,8 @@ virStoragePoolObjSaveDef(virStorageDriverStatePtr driver, goto cleanup; } + virEmitXMLWarning(fd, def->name, "pool-edit"); + towrite = strlen(xml); if (safewrite(fd, xml, towrite) != towrite) { virReportSystemError(errno, diff --git a/src/libvirt_private.syms b/src/libvirt_private.syms index ea4bf74fc1..e2e706d70e 100644 --- a/src/libvirt_private.syms +++ b/src/libvirt_private.syms @@ -901,6 +901,7 @@ virArgvToString; virAsprintf; virBuildPathInternal; virDirCreate; +virEmitXMLWarning; virEnumFromString; virEnumToString; virEventAddHandle; diff --git a/src/util/util.c b/src/util/util.c index 9041ab6dfc..4c50fcb62c 100644 --- a/src/util/util.c +++ b/src/util/util.c @@ -3207,3 +3207,40 @@ bool virIsDevMapperDevice(const char *devname ATTRIBUTE_UNUSED) return false; } #endif + +int virEmitXMLWarning(int fd, + const char *name, + const char *cmd) { + size_t len; + const char *prologue = "\n\n"; + + if (fd < 0 || !name || !cmd) + return -1; + + len = strlen(prologue); + if (safewrite(fd, prologue, len) != len) + return -1; + + len = strlen(cmd); + if (safewrite(fd, cmd, len) != len) + return -1; + + if (safewrite(fd, " ", 1) != 1) + return -1; + + len = strlen(name); + if (safewrite(fd, name, len) != len) + return -1; + + len = strlen(epilogue); + if (safewrite(fd, epilogue, len) != len) + return -1; + + return 0; +} diff --git a/src/util/util.h b/src/util/util.h index d320c408d1..9d8df06714 100644 --- a/src/util/util.h +++ b/src/util/util.h @@ -299,4 +299,8 @@ int virBuildPathInternal(char **path, ...) ATTRIBUTE_SENTINEL; char *virTimestamp(void); bool virIsDevMapperDevice(const char *devname) ATTRIBUTE_NONNULL(1); + +int virEmitXMLWarning(int fd, + const char *name, + const char *cmd) ATTRIBUTE_NONNULL(2) ATTRIBUTE_NONNULL(3); #endif /* __VIR_UTIL_H__ */