From 54a5904e38d533d8dbf492d0f1f19674cbcf3d39 Mon Sep 17 00:00:00 2001 From: Peter Eisentraut Date: Tue, 1 Aug 2023 13:43:34 +0200 Subject: [PATCH v2] Avoid use of Perl getprotobyname getprotobyname returns undefined on some CI machines. It's not clear why. The code overall still works, but it raises a warning. In PostgreSQL C code, we always call socket() with 0 for the protocol argument, so we should be able to do the same in Perl (since the Perl documentation says that the arguments of the socket function are the same as in C). So do that, to avoid the issue. --- src/test/perl/PostgreSQL/Test/Cluster.pm | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/test/perl/PostgreSQL/Test/Cluster.pm b/src/test/perl/PostgreSQL/Test/Cluster.pm index 3fa679ff97..ea6cbe5703 100644 --- a/src/test/perl/PostgreSQL/Test/Cluster.pm +++ b/src/test/perl/PostgreSQL/Test/Cluster.pm @@ -1570,9 +1570,8 @@ sub can_bind my ($host, $port) = @_; my $iaddr = inet_aton($host); my $paddr = sockaddr_in($port, $iaddr); - my $proto = getprotobyname("tcp"); - socket(SOCK, PF_INET, SOCK_STREAM, $proto) + socket(SOCK, PF_INET, SOCK_STREAM, 0) or die "socket failed: $!"; # As in postmaster, don't use SO_REUSEADDR on Windows -- 2.41.0