]> git.proxmox.com Git - pve-qemu-kvm.git/blame - debian/patches/pve/0027-vma-add-firewall.patch
bump version to 2.9.0-1~rc2+5
[pve-qemu-kvm.git] / debian / patches / pve / 0027-vma-add-firewall.patch
CommitLineData
87ba737b 1From 4e55ff68ec7aef1e2ea602890495cd862dd1161c Mon Sep 17 00:00:00 2001
ca0fe5f5
WB
2From: Wolfgang Bumiller <w.bumiller@proxmox.com>
3Date: Wed, 9 Dec 2015 16:51:23 +0100
adeb0c7a 4Subject: [PATCH 27/48] vma: add firewall
ca0fe5f5
WB
5
6---
7 blockdev.c | 78 ++++++++++++++++++++++++++++++++++----------------------
8 hmp.c | 2 +-
9 qapi-schema.json | 1 +
1a91ab45 10 3 files changed, 50 insertions(+), 31 deletions(-)
ca0fe5f5
WB
11
12diff --git a/blockdev.c b/blockdev.c
87ba737b 13index 36b4083..3b82339 100644
ca0fe5f5
WB
14--- a/blockdev.c
15+++ b/blockdev.c
1a91ab45 16@@ -3163,6 +3163,44 @@ void qmp_backup_cancel(Error **errp)
ca0fe5f5
WB
17 }
18 }
19
20+static int config_to_vma(const char *file, BackupFormat format,
21+ const char *backup_dir, VmaWriter *vmaw,
22+ Error **errp)
23+{
24+ char *cdata = NULL;
25+ gsize clen = 0;
26+ GError *err = NULL;
27+ if (!g_file_get_contents(file, &cdata, &clen, &err)) {
28+ error_setg(errp, "unable to read file '%s'", file);
29+ return 1;
30+ }
31+
32+ char *basename = g_path_get_basename(file);
33+
34+ if (format == BACKUP_FORMAT_VMA) {
35+ if (vma_writer_add_config(vmaw, basename, cdata, clen) != 0) {
36+ error_setg(errp, "unable to add %s config data to vma archive", file);
37+ g_free(cdata);
38+ g_free(basename);
39+ return 1;
40+ }
41+ } else if (format == BACKUP_FORMAT_DIR) {
42+ char config_path[PATH_MAX];
43+ snprintf(config_path, PATH_MAX, "%s/%s", backup_dir, basename);
44+ if (!g_file_set_contents(config_path, cdata, clen, &err)) {
45+ error_setg(errp, "unable to write config file '%s'", config_path);
46+ g_free(cdata);
47+ g_free(basename);
48+ return 1;
49+ }
50+ }
51+
52+ g_free(basename);
53+ g_free(cdata);
54+
55+ return 0;
56+}
57+
68a30562 58 bool block_job_should_pause(BlockJob *job);
ca0fe5f5
WB
59 static void pvebackup_run_next_job(void)
60 {
1a91ab45 61@@ -3190,6 +3228,7 @@ static void pvebackup_run_next_job(void)
ca0fe5f5
WB
62 UuidInfo *qmp_backup(const char *backup_file, bool has_format,
63 BackupFormat format,
64 bool has_config_file, const char *config_file,
65+ bool has_firewall_file, const char *firewall_file,
66 bool has_devlist, const char *devlist,
67 bool has_speed, int64_t speed, Error **errp)
68 {
e9ee6d7c 69@@ -3342,38 +3381,17 @@ UuidInfo *qmp_backup(const char *backup_file, bool has_format,
ca0fe5f5
WB
70
71 /* add configuration file to archive */
72 if (has_config_file) {
73- char *cdata = NULL;
74- gsize clen = 0;
75- GError *err = NULL;
76- if (!g_file_get_contents(config_file, &cdata, &clen, &err)) {
77- error_setg(errp, "unable to read file '%s'", config_file);
78- goto err;
79- }
80-
81- char *basename = g_path_get_basename(config_file);
82-
83- if (format == BACKUP_FORMAT_VMA) {
84- if (vma_writer_add_config(vmaw, basename, cdata, clen) != 0) {
85- error_setg(errp, "unable to add config data to vma archive");
86- g_free(cdata);
87- g_free(basename);
88- goto err;
89- }
90- } else if (format == BACKUP_FORMAT_DIR) {
91- char config_path[PATH_MAX];
92- snprintf(config_path, PATH_MAX, "%s/%s", backup_dir, basename);
93- if (!g_file_set_contents(config_path, cdata, clen, &err)) {
94- error_setg(errp, "unable to write config file '%s'", config_path);
95- g_free(cdata);
96- g_free(basename);
97- goto err;
98- }
99- }
100-
101- g_free(basename);
102- g_free(cdata);
103+ if(config_to_vma(config_file, format, backup_dir, vmaw, errp) != 0) {
104+ goto err;
105+ }
106 }
107
108+ /* add firewall file to archive */
109+ if (has_firewall_file) {
110+ if(config_to_vma(firewall_file, format, backup_dir, vmaw, errp) != 0) {
111+ goto err;
112+ }
113+ }
114 /* initialize global backup_state now */
115
116 backup_state.cancel = false;
117diff --git a/hmp.c b/hmp.c
1a91ab45 118index aaf0de1..12f1f46 100644
ca0fe5f5
WB
119--- a/hmp.c
120+++ b/hmp.c
1a91ab45 121@@ -1670,7 +1670,7 @@ void hmp_backup(Monitor *mon, const QDict *qdict)
ca0fe5f5
WB
122 int64_t speed = qdict_get_try_int(qdict, "speed", 0);
123
124 qmp_backup(backup_file, true, dir ? BACKUP_FORMAT_DIR : BACKUP_FORMAT_VMA,
125- false, NULL, !!devlist,
126+ false, NULL, false, NULL, !!devlist,
127 devlist, qdict_haskey(qdict, "speed"), speed, &error);
128
129 hmp_handle_error(mon, &error);
130diff --git a/qapi-schema.json b/qapi-schema.json
1a91ab45 131index 79bfd97..6334018 100644
ca0fe5f5
WB
132--- a/qapi-schema.json
133+++ b/qapi-schema.json
1a91ab45 134@@ -635,6 +635,7 @@
ca0fe5f5
WB
135 { 'command': 'backup', 'data': { 'backup-file': 'str',
136 '*format': 'BackupFormat',
137 '*config-file': 'str',
138+ '*firewall-file': 'str',
139 '*devlist': 'str', '*speed': 'int' },
140 'returns': 'UuidInfo' }
141
ca0fe5f5
WB
142--
1432.1.4
144