[pve-devel] [PATCH firewall 6/7] Check if corosync.conf exists before calling parser

Stefan Reiter s.reiter at proxmox.com
Mon Jul 22 15:21:54 CEST 2019


Calling cfs_read_file with no corosync.conf (i.e. on a standalone node)
returns {} instead of undef. The previous patches assumes undef for this
scenario. To avoid confusing checks all over the place, simply leave the
config as undef if no file exists.

(cherry picked from commit 1473e5f7084409a95458b2d71d59430c6870d372)
Signed-off-by: Stefan Reiter <s.reiter at proxmox.com>
---
 src/PVE/Firewall.pm | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/src/PVE/Firewall.pm b/src/PVE/Firewall.pm
index 494df9e..b74358d 100644
--- a/src/PVE/Firewall.pm
+++ b/src/PVE/Firewall.pm
@@ -3519,7 +3519,8 @@ sub compile {
 	$hostfw_conf = load_hostfw_conf($cluster_conf, undef) if !$hostfw_conf;
 
 	# cfs_update is handled by daemon or API
-	$corosync_conf = PVE::Cluster::cfs_read_file("corosync.conf") if !$corosync_conf;
+	$corosync_conf = PVE::Cluster::cfs_read_file("corosync.conf")
+	    if !defined($corosync_conf) && PVE::Corosync::check_conf_exists(1);
 
 	$vmdata = read_local_vm_config();
 	$vmfw_configs = read_vm_firewall_configs($cluster_conf, $vmdata, undef);
-- 
2.20.1





More information about the pve-devel mailing list