[pve-devel] [PATCH common v3 3/3] daemon: add compat code for pmgproxy 6.x

Stoiko Ivanov s.ivanov at proxmox.com
Wed May 5 16:36:24 CEST 2021


The changes to the listening behavior introduced with PVE 6.4 break
backwardscompatibility w.r.t. listening address and logging, which
should not be changed without explictly notifying the user.

This patch re-adds the family parameter, which is still used by
pmgproxy and based on its existence creates the socket as before.

compared to the IO::Socket::IP->new call used before
390fc10dc4a696dd30646cbdd018ad08d855175f, the only change is the
renaming of 'LocalAddr' to 'LocalHost' (which are synonymous in
IO::Socket::IP [0])

It can simply be reverted with the release of pmg-api 7.0 (where
we'll record the change in the release-notes and upgrade-page)

[0] https://perldoc.perl.org/IO::Socket::IP
Signed-off-by: Stoiko Ivanov <s.ivanov at proxmox.com>
---
 src/PVE/Daemon.pm | 14 +++++++++++---
 1 file changed, 11 insertions(+), 3 deletions(-)

diff --git a/src/PVE/Daemon.pm b/src/PVE/Daemon.pm
index 2ab4f35..2095001 100644
--- a/src/PVE/Daemon.pm
+++ b/src/PVE/Daemon.pm
@@ -799,7 +799,7 @@ sub register_status_command {
 # some useful helper
 
 sub create_reusable_socket {
-    my ($self, $port, $host) = @_;
+    my ($self, $port, $host, $family) = @_;
 
     die "no port specifed" if !$port;
 
@@ -818,7 +818,6 @@ sub create_reusable_socket {
 
 	$socket->fcntl(Fcntl::F_SETFD(), Fcntl::FD_CLOEXEC);
     } else {
-
 	my %sockargs = (
 	    LocalPort => $port,
 	    Listen => SOMAXCONN,
@@ -826,7 +825,16 @@ sub create_reusable_socket {
 	    GetAddrInfoFlags => 0,
 	    ReuseAddr => 1,
 	);
-	if (defined($host)) {
+
+	# FIXME: drop this if clause and the $family parameter with 7.0:
+	# compat code for pmgproxy
+	if (defined($family)) {
+	    $socket = IO::Socket::IP->new(
+		Family => $family,
+		LocalHost => $host,
+		%sockargs) ||
+		die "unable to create socket - $@\n";
+	} elsif (defined($host)) {
 	    $socket = IO::Socket::IP->new( LocalHost => $host, %sockargs) ||
 		die "unable to create socket - $@\n";
 	} else {
-- 
2.20.1





More information about the pve-devel mailing list