Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package perl-Net-Server for openSUSE:Factory
checked in at 2021-04-06 17:28:40
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/perl-Net-Server (Old)
and /work/SRC/openSUSE:Factory/.perl-Net-Server.new.2401 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "perl-Net-Server"
Tue Apr 6 17:28:40 2021 rev:29 rq:880746 version:2.010
Changes:
--------
--- /work/SRC/openSUSE:Factory/perl-Net-Server/perl-Net-Server.changes
2017-08-19 10:55:41.398612406 +0200
+++
/work/SRC/openSUSE:Factory/.perl-Net-Server.new.2401/perl-Net-Server.changes
2021-04-06 17:28:42.443050874 +0200
@@ -1,0 +2,13 @@
+Tue Mar 23 03:07:55 UTC 2021 - Tina M??ller <[email protected]>
+
+- updated to 2.010
+ see /usr/share/doc/packages/perl-Net-Server/Changes
+
+ 2.010 Mar 22 2021
+ - Add SSL_verify_callback
+ - Fix SSLEAY connect spinloop
+ - Various pod typos
+ - Allow for logging to STDOUT for HTTP
+ - Add PATCH verb to HTTP
+
+-------------------------------------------------------------------
Old:
----
Net-Server-2.009.tar.gz
New:
----
Net-Server-2.010.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ perl-Net-Server.spec ++++++
--- /var/tmp/diff_new_pack.vX0zvl/_old 2021-04-06 17:28:43.071051585 +0200
+++ /var/tmp/diff_new_pack.vX0zvl/_new 2021-04-06 17:28:43.071051585 +0200
@@ -1,7 +1,7 @@
#
# spec file for package perl-Net-Server
#
-# Copyright (c) 2017 SUSE LINUX GmbH, Nuernberg, Germany.
+# Copyright (c) 2021 SUSE LLC
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -12,22 +12,20 @@
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.
-# Please submit bugfixes or comments via http://bugs.opensuse.org/
+# Please submit bugfixes or comments via https://bugs.opensuse.org/
#
+%define cpan_name Net-Server
Name: perl-Net-Server
-Version: 2.009
+Version: 2.010
Release: 0
-%define cpan_name Net-Server
Summary: Extensible, general Perl server engine
-License: Artistic-1.0 or GPL-1.0+
-Group: Development/Libraries/Perl
-Url: http://search.cpan.org/dist/Net-Server/
+License: Artistic-1.0 OR GPL-1.0-or-later
+URL: https://metacpan.org/release/%{cpan_name}
Source0:
https://cpan.metacpan.org/authors/id/R/RH/RHANDOM/%{cpan_name}-%{version}.tar.gz
Source1: cpanspec.yml
BuildArch: noarch
-BuildRoot: %{_tmppath}/%{name}-%{version}-build
BuildRequires: perl
BuildRequires: perl-macros
%{perl_requires}
@@ -61,15 +59,15 @@
serialization).
%prep
-%setup -q -n %{cpan_name}-%{version}
-find . -type f ! -name \*.pl -print0 | xargs -0 chmod 644
+%autosetup -n %{cpan_name}-%{version}
+find . -type f ! -path "*/t/*" ! -name "*.pl" ! -path "*/bin/*" ! -path
"*/script/*" ! -name "configure" -print0 | xargs -0 chmod 644
%build
-%{__perl} Makefile.PL INSTALLDIRS=vendor
-%{__make} %{?_smp_mflags}
+perl Makefile.PL INSTALLDIRS=vendor
+%make_build
%check
-%{__make} test
+make test
%install
%perl_make_install
@@ -77,7 +75,6 @@
%perl_gen_filelist
%files -f %{name}.files
-%defattr(-,root,root,755)
%doc Changes examples README
%license LICENSE
++++++ Net-Server-2.009.tar.gz -> Net-Server-2.010.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/Net-Server-2.009/Changes new/Net-Server-2.010/Changes
--- old/Net-Server-2.009/Changes 2017-08-10 21:02:35.000000000 +0200
+++ new/Net-Server-2.010/Changes 2021-03-22 16:05:20.000000000 +0100
@@ -1,5 +1,12 @@
Revision history for Perl extension Net::Server.
+2.010 Mar 22 2021
+ - Add SSL_verify_callback
+ - Fix SSLEAY connect spinloop
+ - Various pod typos
+ - Allow for logging to STDOUT for HTTP
+ - Add PATCH verb to HTTP
+
2.009 Aug 09 2017
- Several long awaited fixes
- Log when a child exits abnormally. RT #86815
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/Net-Server-2.009/META.json
new/Net-Server-2.010/META.json
--- old/Net-Server-2.009/META.json 2017-08-10 21:05:48.000000000 +0200
+++ new/Net-Server-2.010/META.json 2021-03-22 16:21:55.000000000 +0100
@@ -4,13 +4,13 @@
"Paul Seamons <[email protected]> and Rob Brown <[email protected]>"
],
"dynamic_config" : 1,
- "generated_by" : "ExtUtils::MakeMaker version 7.1002, CPAN::Meta::Converter
version 2.150005",
+ "generated_by" : "ExtUtils::MakeMaker version 7.34, CPAN::Meta::Converter
version 2.150010",
"license" : [
"perl_5"
],
"meta-spec" : {
"url" : "http://search.cpan.org/perldoc?CPAN::Meta::Spec",
- "version" : "2"
+ "version" : 2
},
"name" : "Net-Server",
"no_index" : {
@@ -36,9 +36,12 @@
"Socket" : "0",
"Time::HiRes" : "0"
}
+ },
+ "test" : {
+ "requires" : {}
}
},
"release_status" : "stable",
- "version" : "2.009",
- "x_serialization_backend" : "JSON::PP version 2.27300_01"
+ "version" : "2.010",
+ "x_serialization_backend" : "JSON::PP version 4.02"
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/Net-Server-2.009/META.yml
new/Net-Server-2.010/META.yml
--- old/Net-Server-2.009/META.yml 2017-08-10 21:05:48.000000000 +0200
+++ new/Net-Server-2.010/META.yml 2021-03-22 16:21:55.000000000 +0100
@@ -6,7 +6,7 @@
configure_requires:
ExtUtils::MakeMaker: '6.30'
dynamic_config: 1
-generated_by: 'ExtUtils::MakeMaker version 7.1002, CPAN::Meta::Converter
version 2.150005'
+generated_by: 'ExtUtils::MakeMaker version 7.34, CPAN::Meta::Converter version
2.150010'
license: perl
meta-spec:
url: http://module-build.sourceforge.net/META-spec-v1.4.html
@@ -22,5 +22,5 @@
POSIX: '0'
Socket: '0'
Time::HiRes: '0'
-version: '2.009'
+version: '2.010'
x_serialization_backend: 'CPAN::Meta::YAML version 0.018'
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/Net-Server-2.009/Makefile.PL
new/Net-Server-2.010/Makefile.PL
--- old/Net-Server-2.009/Makefile.PL 2017-08-10 21:05:23.000000000 +0200
+++ new/Net-Server-2.010/Makefile.PL 2021-03-22 16:21:05.000000000 +0100
@@ -29,7 +29,7 @@
"Time::HiRes" => 0
},
"TEST_REQUIRES" => {},
- "VERSION" => "2.009",
+ "VERSION" => "2.010",
"test" => {
"TESTS" => "t/*.t"
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/Net-Server-2.009/bin/net-server
new/Net-Server-2.010/bin/net-server
--- old/Net-Server-2.009/bin/net-server 2017-08-10 20:59:31.000000000 +0200
+++ new/Net-Server-2.010/bin/net-server 2021-03-22 16:03:29.000000000 +0100
@@ -62,7 +62,7 @@
The net-server program gives a simple way to test out code and try
port connection parameters. Though the running server can be robust
-enough for full tim use, it is anticipated that this binary will just
+enough for production, it is anticipated that this binary will just
be used for basic testing of net-server ports, acting as a simple echo
server, or for running development scripts as CGI.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/Net-Server-2.009/lib/Net/Server/Daemonize.pm
new/Net-Server-2.010/lib/Net/Server/Daemonize.pm
--- old/Net-Server-2.009/lib/Net/Server/Daemonize.pm 2017-08-10
20:18:48.000000000 +0200
+++ new/Net-Server-2.010/lib/Net/Server/Daemonize.pm 2021-03-22
16:03:29.000000000 +0100
@@ -32,16 +32,16 @@
###----------------------------------------------------------------###
-### check for existance of pid_file
+### check for existence of pid_file
### if the file exists, check for a running process
sub check_pid_file ($) {
my $pid_file = shift;
- return 1 if ! -e $pid_file;
+ return 1 if ! -e $pid_file or ! -s $pid_file && -M _ > 0.01;
- open my $fh, '<', $pid_file or die "Couldn't open existant pid_file
\"$pid_file\" [$!]\n";
- my $current_pid = <$fh>;
+ open my $fh, '<', $pid_file or die "$pid_file: Couldn't open existent
pid_file [$!]\n";
+ my $current_pid = <$fh> || "";
close $fh;
- $current_pid = ($current_pid =~ /^(\d{1,10})/) ? $1 : die "Couldn't find
pid in existing pid_file";
+ $current_pid = ($current_pid =~ /^(\d{1,10})/) ? $1 : die "$pid_file:
Couldn't find pid in existent pid_file";
my $exists;
if ($$ == $current_pid) {
@@ -82,7 +82,7 @@
my $pid_file = shift;
return 1 if ! -e $pid_file; # no pid_file = return success
- open my $fh, '<', $pid_file or die "Couldn't open existant pid_file
\"$pid_file\" [$!]\n"; # slight race
+ open my $fh, '<', $pid_file or die "$pid_file: Couldn't open existent
pid_file [$!]\n"; # slight race
my $current_pid = <$fh>;
close $fh;
chomp $current_pid;
@@ -90,7 +90,7 @@
die "Process $$ doesn't own pid_file \"$pid_file\". Can't remove it.\n"
if $current_pid ne $$;
- unlink($pid_file) || die "Couldn't unlink pid_file \"$pid_file\" [$!]\n";
+ unlink($pid_file) || die "$pid_file: Couldn't unlink pid_file [$!]\n";
return 1;
}
@@ -309,7 +309,7 @@
=item check_pid_file
-Arguments are pid_file (full path to pid_file). Checks for existance
+Arguments are pid_file (full path to pid_file). Checks for existence
of pid_file. If file exists, open it and determine if the process
that created it is still running. This is done first by checking for
a /proc file system and second using a "ps" command (BSD syntax). (If
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/Net-Server-2.009/lib/Net/Server/HTTP.pm
new/Net-Server-2.010/lib/Net/Server/HTTP.pm
--- old/Net-Server-2.009/lib/Net/Server/HTTP.pm 2017-08-10 20:19:08.000000000
+0200
+++ new/Net-Server-2.010/lib/Net/Server/HTTP.pm 2021-03-22 16:03:29.000000000
+0100
@@ -45,6 +45,19 @@
sub default_server_type { 'PreFork' }
+sub initialize_logging {
+ my $self = shift;
+ $self->SUPER::initialize_logging(@_);
+ my $prop = $self->{'server'};
+
+ my $d = {
+ access_log_format => '%h %l %u %t \"%r\" %>s %b \"%{Referer}i\"
\"%{User-Agent}i\"',
+ };
+ $prop->{$_} = $d->{$_} foreach grep {!defined($prop->{$_})} keys %$d;
+
+ $self->_init_access_log;
+}
+
sub post_configure {
my $self = shift;
$self->SUPER::post_configure(@_);
@@ -56,12 +69,9 @@
timeout_idle => 60,
server_revision => __PACKAGE__."/$Net::Server::VERSION",
max_header_size => 100_000,
- access_log_format => '%h %l %u %t \"%r\" %>s %b \"%{Referer}i\"
\"%{User-Agent}i\"',
};
$prop->{$_} = $d->{$_} foreach grep {!defined($prop->{$_})} keys %$d;
- $self->_init_access_log;
-
$self->_tie_client_stdout;
}
@@ -79,7 +89,11 @@
return if ! $log || $log eq '/dev/null';
return if ! $prop->{'access_log_format'};
$prop->{'access_log_format'} =~ s/\\([\\\"nt])/$1 eq 'n' ? "\n" : $1 eq
't' ? "\t" : $1/eg;
- if ($log eq 'STDERR') {
+ if ($log eq 'STDOUT' || $log eq '/dev/stdout') {
+ open my $fh, '>&', \*STDOUT or die "Could not dup STDOUT: $!";
+ $fh->autoflush(1);
+ $prop->{'access_log_function'} = sub { print $fh @_,"\n" };
+ } elsif ($log eq 'STDERR' || $log eq '/dev/stderr') {
$prop->{'access_log_function'} = sub { print STDERR @_,"\n" };
} else {
open my $fh, '>>', $log or die "Could not open access_log_file
\"$log\": $!";
@@ -332,7 +346,7 @@
($req, my @lines) = split /\r?\n/, $headers;
die "Missing request\n" if ! defined $req;
- if (!defined($req) || $req !~ m{
^\s*(GET|POST|PUT|DELETE|PUSH|HEAD|OPTIONS)\s+(.+)\s+(HTTP/1\.[01])\s*$ }ix) {
+ if (!defined($req) || $req !~ m{
^\s*(GET|POST|PUT|PATCH|DELETE|PUSH|HEAD|OPTIONS)\s+(.+)\s+(HTTP/1\.[01])\s*$
}ix) {
die "Invalid request\n";
}
$ENV{'REQUEST_METHOD'} = uc $1;
@@ -958,8 +972,10 @@
Defaults to undef. If true, this represents the location of where
the access log should be written to. If a special value of STDERR
-is passed, the access log entry will be writing to the same location
-as the ERROR log.
+or F</dev/stderr> is passed, the access log entry will be written to
+the same location as the ERROR log. If a special value of STDOUT or
+F</dev/stdout> is passed, the access log entry will be written to
+standard out.
=item access_log_format
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/Net-Server-2.009/lib/Net/Server/PreFork.pm
new/Net-Server-2.010/lib/Net/Server/PreFork.pm
--- old/Net-Server-2.009/lib/Net/Server/PreFork.pm 2017-08-10
20:20:31.000000000 +0200
+++ new/Net-Server-2.010/lib/Net/Server/PreFork.pm 2021-03-22
16:03:29.000000000 +0100
@@ -678,6 +678,7 @@
A child is considered dead when the pid does no longer exist.
This hook could be used to cleanup possible temporary files
or locks left over by a dead child.
+
=back
=head1 HOT DEPLOY
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/Net-Server-2.009/lib/Net/Server/Proto/SSL.pm
new/Net-Server-2.010/lib/Net/Server/Proto/SSL.pm
--- old/Net-Server-2.009/lib/Net/Server/Proto/SSL.pm 2017-08-10
20:21:11.000000000 +0200
+++ new/Net-Server-2.010/lib/Net/Server/Proto/SSL.pm 2021-03-22
16:03:29.000000000 +0100
@@ -42,6 +42,7 @@
SSL_passwd_cb
SSL_max_getline_length
SSL_error_callback
+ SSL_verify_callback
);
sub NS_proto { 'SSL' }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/Net-Server-2.009/lib/Net/Server/Proto/SSLEAY.pm
new/Net-Server-2.010/lib/Net/Server/Proto/SSLEAY.pm
--- old/Net-Server-2.009/lib/Net/Server/Proto/SSLEAY.pm 2017-08-10
20:21:00.000000000 +0200
+++ new/Net-Server-2.010/lib/Net/Server/Proto/SSLEAY.pm 2021-03-22
16:13:18.000000000 +0100
@@ -269,21 +269,30 @@
last;
}
- # this select appears to only cause read issues - in some cases the
underlying select of Net::SSLeay enters into a spinloop
- #vec(my $vec = '', $client->fileno, 1) = 1;
- #select($vec, undef, undef, undef);
+ # 'select' prevents spinloops waiting for new data on the socket, and
are necessary for non-blocking filehandles.
+ vec(my $vec = '', $client->fileno, 1) = 1;
+ select($vec, undef, undef, undef);
my $n_empty = 0;
while (1) {
# 16384 is the maximum amount read() can return
my $n = 16384;
$n -= ($bytes - length($content)) if $non_greedy && ($bytes -
length($content)) < $n;
- my $buf = Net::SSLeay::read($ssl, 16384); # read the most we can -
continue reading until the buffer won't read any more
+ my ($buf, $rv) = Net::SSLeay::read($ssl, 16384); # read the most
we can - continue reading until the buffer won't read any more
if ($client->SSLeay_check_error('SSLeay read_until read')) {
last OUTER;
}
- die "SSLeay read_until: $!\n" if ! defined($buf) && !$!{EAGAIN} &&
!$!{EINTR} && !$!{ENOBUFS};
- last if ! defined($buf);
+
+ if (! defined($buf)) {
+ # Preserved from Net/Server/Proto/SSLEAY's version
+ last if $!{'EAGAIN'} || $!{'EINTR'} || $!{'ENOBUFS'};
+
+ # Treat these renegotiation errors like EAGAIN - select will
handle it and the next SSL_read will resolve it.
+ last if $rv && ($rv == Net::SSLeay::ERROR_WANT_READ() || $rv
== Net::SSLeay::ERROR_WANT_WRITE());
+
+ die "SSLeay read_until: $!\n";
+ }
+
if (!length($buf)) {
last OUTER if !length($buf) && $n_empty++;
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/Net-Server-2.009/lib/Net/Server/Proto/UNIX.pm
new/Net-Server-2.010/lib/Net/Server/Proto/UNIX.pm
--- old/Net-Server-2.009/lib/Net/Server/Proto/UNIX.pm 2017-08-10
20:22:03.000000000 +0200
+++ new/Net-Server-2.010/lib/Net/Server/Proto/UNIX.pm 2021-03-22
16:03:29.000000000 +0100
@@ -80,6 +80,20 @@
$sock->fdopen($fd, 'w') or $server->fatal("Error opening to file
descriptor ($fd) [$!]");
}
+sub accept {
+ my ($sock, $class) = (@_);
+ my ($client, $peername);
+ if (wantarray) {
+ ($client, $peername) = $sock->SUPER::accept($class);
+ } else {
+ $client = $sock->SUPER::accept($class);
+ }
+ if (defined $client) {
+ $client->NS_port($sock->NS_port);
+ }
+ return wantarray ? ($client, $peername) : $client;
+}
+
# a string containing any information necessary for restarting the server
# via a -HUP signal
# a newline is not allowed
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/Net-Server-2.009/lib/Net/Server.pm
new/Net-Server-2.010/lib/Net/Server.pm
--- old/Net-Server-2.009/lib/Net/Server.pm 2017-08-10 20:18:05.000000000
+0200
+++ new/Net-Server-2.010/lib/Net/Server.pm 2021-03-22 16:03:49.000000000
+0100
@@ -29,7 +29,7 @@
use Net::Server::Daemonize qw(check_pid_file create_pid_file safe_fork
get_uid get_gid set_uid set_gid);
-our $VERSION = '2.009';
+our $VERSION = '2.010';
sub new {
my $class = shift || die "Missing class";
@@ -86,7 +86,7 @@
my $self = shift;
my $prop = $self->{'server'} ||= {};
- $self->commandline($self->_get_commandline) if ! eval { $self->commandline
}; # save for a HUP
+ $self->commandline($self->_get_commandline) if ! eval { local
$SIG{__DIE__}; $self->commandline }; # save for a HUP
$self->configure_hook; # user customizable hook
$self->configure; # allow for reading of commandline, program,
and configuration file parameters
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/Net-Server-2.009/t/SSLEAY_test.t
new/Net-Server-2.010/t/SSLEAY_test.t
--- old/Net-Server-2.009/t/SSLEAY_test.t 2017-08-10 20:58:57.000000000
+0200
+++ new/Net-Server-2.010/t/SSLEAY_test.t 2021-03-22 15:45:57.000000000
+0100
@@ -21,34 +21,54 @@
my $pem = << 'PEM'; # this certificate is invalid, please only use for testing
-----BEGIN CERTIFICATE-----
-MIICKTCCAZICCQDFxHnOjdmTTjANBgkqhkiG9w0BAQUFADBZMQswCQYDVQQGEwJB
-VTETMBEGA1UECAwKU29tZS1TdGF0ZTEhMB8GA1UECgwYSW50ZXJuZXQgV2lkZ2l0
-cyBQdHkgTHRkMRIwEAYDVQQDDAlsb2NhbGhvc3QwHhcNMTIwMTE0MTgzMjMwWhcN
-NzUxMTE0MTIwNDE0WjBZMQswCQYDVQQGEwJBVTETMBEGA1UECAwKU29tZS1TdGF0
-ZTEhMB8GA1UECgwYSW50ZXJuZXQgV2lkZ2l0cyBQdHkgTHRkMRIwEAYDVQQDDAls
-b2NhbGhvc3QwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAKLGfQantHdi/0cd
-eoOHRbWKChpI/g84hU8SnwmrSMZR0x76vDLKMDYohISoKxRPx6j2M2x3P4K+kEJm
-C5H9iGdD9p9ljGnRdkGp5yYeuwWfePRb4AOwP5qgQtEb0OctFIMjcAIIAw/lsnUs
-hGnom0+uA9W2H63PgO0o4qiVAn7NAgMBAAEwDQYJKoZIhvcNAQEFBQADgYEATDGA
-dYRl5wpsYcpLgNzu0M4SENV0DAE2wNTZ4LIR1wxHbcxdgzMhjp0wwfVQBTJFNqWu
-DbeIFt4ghPMsUQKmMc4+og2Zyll8qev8oNgWQneKjDAEKKpzdvUoRZyGx1ZocGzi
-S4LDiMd4qhD+GGePcHwmR8x/okoq58xZO/+Qygc=
+MIIDYjCCAkqgAwIBAgIJAP1GPpBIeA7QMA0GCSqGSIb3DQEBCwUAMEUxCzAJBgNV
+BAYTAkFVMRMwEQYDVQQIDApTb21lLVN0YXRlMSEwHwYDVQQKDBhJbnRlcm5ldCBX
+aWRnaXRzIFB0eSBMdGQwIBcNMjAwNTI0MDUyMzQwWhgPMjI5NDAzMDgwNTIzNDBa
+MEUxCzAJBgNVBAYTAkFVMRMwEQYDVQQIDApTb21lLVN0YXRlMSEwHwYDVQQKDBhJ
+bnRlcm5ldCBXaWRnaXRzIFB0eSBMdGQwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAw
+ggEKAoIBAQDlVci9G9HPwKYhr0kSFT15FcQ1FDNxcn5aMP41ETieM6HASyPFfZ/H
+TnxE1kX3V2fGpaQVpkfrMqAfiGQ0nntXoQDosP3QYO4X0SfYNsWGDa0KKg1xQB9N
+8Xe348Gxm9/ncGzuBdYpasohrcBhBQqJvor0FVV9IlIDpBvXjl9FsleKj9vlxdUZ
+sgHB01lTi+5cIUQiy2fkHhMt6R9PUXmeBOjEzNe0o3uftdruBSDsMoRAJZ27yDOq
+TfpBWhHAF+6PGN0hyVvdePUSX6CeG8CsgzZorHPr5WBzZ1IlRoT3TdFqtZyEfGfV
+rND9wdoAiz50CPWXWHlokhlIeBCc2vLPAgMBAAGjUzBRMB0GA1UdDgQWBBTme3pQ
+NkZAqxlFzr+TcwCsJ9WJyjAfBgNVHSMEGDAWgBTme3pQNkZAqxlFzr+TcwCsJ9WJ
+yjAPBgNVHRMBAf8EBTADAQH/MA0GCSqGSIb3DQEBCwUAA4IBAQDTQ+KNgySd+Kd2
+oET16XapSvGvA3OkdcNq481HSvpOIwDQp38z4/IhAPo2IvANeGLhw60fmE2uLW88
+ewa+/qIGHu3xVuSv0g+UJ0QZLkdWBiF4cEsu49ZnwfBVUXpzNZNamF1Nk1yAWhQF
++DYxZYklllTdtwo7ImMozSPC0DzEQKF2VBj6Dtig2VDRGArl4iZ6MX8+WGK3C+05
+9doZ+2pdqyCZf074Gs7oqjm1T3llvEJBlpxYGSsjcRCkKazBE3IcjSu+6/wkzZLR
+ckaRuEQeE7e4IK/c1R8njOygzl07VFnFNprC9M0DVvuYI7ZIFXS+YEedvuxKvyva
+GcEBq7Ms
-----END CERTIFICATE-----
------BEGIN RSA PRIVATE KEY-----
-MIICXAIBAAKBgQCixn0Gp7R3Yv9HHXqDh0W1igoaSP4POIVPEp8Jq0jGUdMe+rwy
-yjA2KISEqCsUT8eo9jNsdz+CvpBCZguR/YhnQ/afZYxp0XZBqecmHrsFn3j0W+AD
-sD+aoELRG9DnLRSDI3ACCAMP5bJ1LIRp6JtPrgPVth+tz4DtKOKolQJ+zQIDAQAB
-AoGASXDmvhbyfJ8k8HAjc66XzBWxAzUFs9Zbh1aufM1UM259o8+bFAtXf0f+ql+5
-uBtaySf0Aa8374SNT/f8pmzOmpiXMvYRz8Z5Gc6JYpYd/PrCoSCGtP+NdCvk7Y5c
-eUmmpiEto4+fgCAKrtqc5jm8eBWn/yNhQNDBVJ9qX+kXQOECQQDVBLvBZaECSMTm
-djKuPlZ93cmyI7g+TURTl2N08fz4xQVVbo5+AV0GsEZupBpTgrHpLTk8gKP/nfdR
-9KWZldbZAkEAw55+SqrVTv4cI0fMvC0t8Wl46zTkY9tK65TGnbO1DbTQh9qs+NwH
-+v3uu47ef5w/73xLtDjQouz//0z5rgF3FQJAfrmOKQOYwY8g9CmlBNu5ALAM6Zku
-ZoH4//G0DUJYyHYNMkHPK08MVIpRnEisELpTtPBeeIvfBJapJ2xvh+sIIQJASeY4
-I5EB4EOS8akQKQ6QSqDjs0dZ+HdBiFm95pmbDkB+frQXoDPPN/xyEZzZZS/r31b/
-amgEOWh7FUFJGXkoOQJBALfOgsiss0lASlOXAg1rwO4m2OaDiaEde01PLcSjIaKl
-Qfbzc7ZYF+fGDsHHlD5Kgj1CGaWCVVHqCv4UHSrA/gM=
------END RSA PRIVATE KEY-----
+-----BEGIN PRIVATE KEY-----
+MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQDlVci9G9HPwKYh
+r0kSFT15FcQ1FDNxcn5aMP41ETieM6HASyPFfZ/HTnxE1kX3V2fGpaQVpkfrMqAf
+iGQ0nntXoQDosP3QYO4X0SfYNsWGDa0KKg1xQB9N8Xe348Gxm9/ncGzuBdYpasoh
+rcBhBQqJvor0FVV9IlIDpBvXjl9FsleKj9vlxdUZsgHB01lTi+5cIUQiy2fkHhMt
+6R9PUXmeBOjEzNe0o3uftdruBSDsMoRAJZ27yDOqTfpBWhHAF+6PGN0hyVvdePUS
+X6CeG8CsgzZorHPr5WBzZ1IlRoT3TdFqtZyEfGfVrND9wdoAiz50CPWXWHlokhlI
+eBCc2vLPAgMBAAECggEBAIOMzqYzhAnQ7zsZSif2SRng83ijCtNDotjni5ozM7AD
+2//q2i0Z34I7MitmYiH8YEnhkBrfFBgFJTaRTTGlywi8EUJo7F8QiuLclid/W5SG
+2cCf2LAi4RIbtdmk6uGPkUM4CTQL4wpE+IeTHGxKsP3Mb/aNGkm6WyM9ir7+KwZV
+rZtNl5wiHRbzwSoMmHT80DKrkrbNr5nkAgd+F2oofAIMwAbex4TQZ5Vi0NTAPGSX
+yQ7jOYFnsaAfJymrjTXYGOlP+p/lEFAC27SGEECtI5uCWh731GY5DPNwUb3Qct05
+LRORiMxrymKjwNy3uSNkNwUczawWGPaFzCRk9JB85LkCgYEA+yET0GmgIgUd3NaM
+ntqwEmeKad1XRxP5652exfrydKunYApbMlcd9GE5UyiqN+C7QhfQEWwGQji008Dc
+T+2sKA0EpJIcmNlLjLyP0+anlJlYqAoljvwXMCcifFMV2YpX/AKeF9wmdn94Lawf
+rkfM8v/jIHKqid/Yewik40bhsA0CgYEA6ch+Q/QYubL0a4msYZ726cam7YpYbhfi
+iTud59KOmtxBczZEd5z5wv6YKbebEHRCpELuZc/ENekXR3gheocW0XuR0GnQifhl
+MfhbG9yT+oy8E6ljHPsZi2OVbz6UfxGnjZzkBubU9AYPdcBev4bw5vdk0xLoUMmA
+ViqgGqIXG0sCgYEAvXtqwOFBwwmLS7rSpXWqTmizhkdM+EN5Wi82wnkjgaaXBp8p
+ymTzJBZLs5RGQx0dDbR7+PlCC6tPvUqSsPhK4nlYHHhmfWnPWGRaPW+W2EeQHlJx
+nl5VfK66lYX3QYnh8zNiZ+xjVRu+6O8rhEuGt38dt7jtNlSgucx+5UHxPe0CgYA4
+9RcGOU9Y1ufD13v/ILqphDOhRgZ7dChGJRc4ps0Fn8n2Zu9RcRZM0riB2XDXFmwy
+Fvh8J513QP3h9Lu7XXRKv19sNouPQcxt20NfS2NmNKmR5L/4DJlRo4aB3u5Q8x0u
+XF4V7GFPvrY/iwnKgfbpXrba0g11uVIiLCprsrgMdwKBgHvebXxV8hmROAoUd1F3
+wm9heCTdZNVD3ci/AYW3/n04weZqkAfdmaev64jFBPnXdTZDC12qXprOWYpeal3A
+eHjpRZRphXwOCJ6me14qnRL6ir6J1o/DzJIATszpf7GTnlqDUlBQNTT9SOmbgIYq
+YftRX/a/t18CpitrzViVgQ+l
+-----END PRIVATE KEY-----
PEM
my ($pem_fh, $pem_filename) =
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/Net-Server-2.009/t/SSL_test.t
new/Net-Server-2.010/t/SSL_test.t
--- old/Net-Server-2.009/t/SSL_test.t 2017-08-10 20:59:01.000000000 +0200
+++ new/Net-Server-2.010/t/SSL_test.t 2021-03-22 15:45:57.000000000 +0100
@@ -16,34 +16,54 @@
my $pem = << 'PEM'; # this certificate is invalid, please only use for testing
-----BEGIN CERTIFICATE-----
-MIICKTCCAZICCQDFxHnOjdmTTjANBgkqhkiG9w0BAQUFADBZMQswCQYDVQQGEwJB
-VTETMBEGA1UECAwKU29tZS1TdGF0ZTEhMB8GA1UECgwYSW50ZXJuZXQgV2lkZ2l0
-cyBQdHkgTHRkMRIwEAYDVQQDDAlsb2NhbGhvc3QwHhcNMTIwMTE0MTgzMjMwWhcN
-NzUxMTE0MTIwNDE0WjBZMQswCQYDVQQGEwJBVTETMBEGA1UECAwKU29tZS1TdGF0
-ZTEhMB8GA1UECgwYSW50ZXJuZXQgV2lkZ2l0cyBQdHkgTHRkMRIwEAYDVQQDDAls
-b2NhbGhvc3QwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAKLGfQantHdi/0cd
-eoOHRbWKChpI/g84hU8SnwmrSMZR0x76vDLKMDYohISoKxRPx6j2M2x3P4K+kEJm
-C5H9iGdD9p9ljGnRdkGp5yYeuwWfePRb4AOwP5qgQtEb0OctFIMjcAIIAw/lsnUs
-hGnom0+uA9W2H63PgO0o4qiVAn7NAgMBAAEwDQYJKoZIhvcNAQEFBQADgYEATDGA
-dYRl5wpsYcpLgNzu0M4SENV0DAE2wNTZ4LIR1wxHbcxdgzMhjp0wwfVQBTJFNqWu
-DbeIFt4ghPMsUQKmMc4+og2Zyll8qev8oNgWQneKjDAEKKpzdvUoRZyGx1ZocGzi
-S4LDiMd4qhD+GGePcHwmR8x/okoq58xZO/+Qygc=
+MIIDYjCCAkqgAwIBAgIJAP1GPpBIeA7QMA0GCSqGSIb3DQEBCwUAMEUxCzAJBgNV
+BAYTAkFVMRMwEQYDVQQIDApTb21lLVN0YXRlMSEwHwYDVQQKDBhJbnRlcm5ldCBX
+aWRnaXRzIFB0eSBMdGQwIBcNMjAwNTI0MDUyMzQwWhgPMjI5NDAzMDgwNTIzNDBa
+MEUxCzAJBgNVBAYTAkFVMRMwEQYDVQQIDApTb21lLVN0YXRlMSEwHwYDVQQKDBhJ
+bnRlcm5ldCBXaWRnaXRzIFB0eSBMdGQwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAw
+ggEKAoIBAQDlVci9G9HPwKYhr0kSFT15FcQ1FDNxcn5aMP41ETieM6HASyPFfZ/H
+TnxE1kX3V2fGpaQVpkfrMqAfiGQ0nntXoQDosP3QYO4X0SfYNsWGDa0KKg1xQB9N
+8Xe348Gxm9/ncGzuBdYpasohrcBhBQqJvor0FVV9IlIDpBvXjl9FsleKj9vlxdUZ
+sgHB01lTi+5cIUQiy2fkHhMt6R9PUXmeBOjEzNe0o3uftdruBSDsMoRAJZ27yDOq
+TfpBWhHAF+6PGN0hyVvdePUSX6CeG8CsgzZorHPr5WBzZ1IlRoT3TdFqtZyEfGfV
+rND9wdoAiz50CPWXWHlokhlIeBCc2vLPAgMBAAGjUzBRMB0GA1UdDgQWBBTme3pQ
+NkZAqxlFzr+TcwCsJ9WJyjAfBgNVHSMEGDAWgBTme3pQNkZAqxlFzr+TcwCsJ9WJ
+yjAPBgNVHRMBAf8EBTADAQH/MA0GCSqGSIb3DQEBCwUAA4IBAQDTQ+KNgySd+Kd2
+oET16XapSvGvA3OkdcNq481HSvpOIwDQp38z4/IhAPo2IvANeGLhw60fmE2uLW88
+ewa+/qIGHu3xVuSv0g+UJ0QZLkdWBiF4cEsu49ZnwfBVUXpzNZNamF1Nk1yAWhQF
++DYxZYklllTdtwo7ImMozSPC0DzEQKF2VBj6Dtig2VDRGArl4iZ6MX8+WGK3C+05
+9doZ+2pdqyCZf074Gs7oqjm1T3llvEJBlpxYGSsjcRCkKazBE3IcjSu+6/wkzZLR
+ckaRuEQeE7e4IK/c1R8njOygzl07VFnFNprC9M0DVvuYI7ZIFXS+YEedvuxKvyva
+GcEBq7Ms
-----END CERTIFICATE-----
------BEGIN RSA PRIVATE KEY-----
-MIICXAIBAAKBgQCixn0Gp7R3Yv9HHXqDh0W1igoaSP4POIVPEp8Jq0jGUdMe+rwy
-yjA2KISEqCsUT8eo9jNsdz+CvpBCZguR/YhnQ/afZYxp0XZBqecmHrsFn3j0W+AD
-sD+aoELRG9DnLRSDI3ACCAMP5bJ1LIRp6JtPrgPVth+tz4DtKOKolQJ+zQIDAQAB
-AoGASXDmvhbyfJ8k8HAjc66XzBWxAzUFs9Zbh1aufM1UM259o8+bFAtXf0f+ql+5
-uBtaySf0Aa8374SNT/f8pmzOmpiXMvYRz8Z5Gc6JYpYd/PrCoSCGtP+NdCvk7Y5c
-eUmmpiEto4+fgCAKrtqc5jm8eBWn/yNhQNDBVJ9qX+kXQOECQQDVBLvBZaECSMTm
-djKuPlZ93cmyI7g+TURTl2N08fz4xQVVbo5+AV0GsEZupBpTgrHpLTk8gKP/nfdR
-9KWZldbZAkEAw55+SqrVTv4cI0fMvC0t8Wl46zTkY9tK65TGnbO1DbTQh9qs+NwH
-+v3uu47ef5w/73xLtDjQouz//0z5rgF3FQJAfrmOKQOYwY8g9CmlBNu5ALAM6Zku
-ZoH4//G0DUJYyHYNMkHPK08MVIpRnEisELpTtPBeeIvfBJapJ2xvh+sIIQJASeY4
-I5EB4EOS8akQKQ6QSqDjs0dZ+HdBiFm95pmbDkB+frQXoDPPN/xyEZzZZS/r31b/
-amgEOWh7FUFJGXkoOQJBALfOgsiss0lASlOXAg1rwO4m2OaDiaEde01PLcSjIaKl
-Qfbzc7ZYF+fGDsHHlD5Kgj1CGaWCVVHqCv4UHSrA/gM=
------END RSA PRIVATE KEY-----
+-----BEGIN PRIVATE KEY-----
+MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQDlVci9G9HPwKYh
+r0kSFT15FcQ1FDNxcn5aMP41ETieM6HASyPFfZ/HTnxE1kX3V2fGpaQVpkfrMqAf
+iGQ0nntXoQDosP3QYO4X0SfYNsWGDa0KKg1xQB9N8Xe348Gxm9/ncGzuBdYpasoh
+rcBhBQqJvor0FVV9IlIDpBvXjl9FsleKj9vlxdUZsgHB01lTi+5cIUQiy2fkHhMt
+6R9PUXmeBOjEzNe0o3uftdruBSDsMoRAJZ27yDOqTfpBWhHAF+6PGN0hyVvdePUS
+X6CeG8CsgzZorHPr5WBzZ1IlRoT3TdFqtZyEfGfVrND9wdoAiz50CPWXWHlokhlI
+eBCc2vLPAgMBAAECggEBAIOMzqYzhAnQ7zsZSif2SRng83ijCtNDotjni5ozM7AD
+2//q2i0Z34I7MitmYiH8YEnhkBrfFBgFJTaRTTGlywi8EUJo7F8QiuLclid/W5SG
+2cCf2LAi4RIbtdmk6uGPkUM4CTQL4wpE+IeTHGxKsP3Mb/aNGkm6WyM9ir7+KwZV
+rZtNl5wiHRbzwSoMmHT80DKrkrbNr5nkAgd+F2oofAIMwAbex4TQZ5Vi0NTAPGSX
+yQ7jOYFnsaAfJymrjTXYGOlP+p/lEFAC27SGEECtI5uCWh731GY5DPNwUb3Qct05
+LRORiMxrymKjwNy3uSNkNwUczawWGPaFzCRk9JB85LkCgYEA+yET0GmgIgUd3NaM
+ntqwEmeKad1XRxP5652exfrydKunYApbMlcd9GE5UyiqN+C7QhfQEWwGQji008Dc
+T+2sKA0EpJIcmNlLjLyP0+anlJlYqAoljvwXMCcifFMV2YpX/AKeF9wmdn94Lawf
+rkfM8v/jIHKqid/Yewik40bhsA0CgYEA6ch+Q/QYubL0a4msYZ726cam7YpYbhfi
+iTud59KOmtxBczZEd5z5wv6YKbebEHRCpELuZc/ENekXR3gheocW0XuR0GnQifhl
+MfhbG9yT+oy8E6ljHPsZi2OVbz6UfxGnjZzkBubU9AYPdcBev4bw5vdk0xLoUMmA
+ViqgGqIXG0sCgYEAvXtqwOFBwwmLS7rSpXWqTmizhkdM+EN5Wi82wnkjgaaXBp8p
+ymTzJBZLs5RGQx0dDbR7+PlCC6tPvUqSsPhK4nlYHHhmfWnPWGRaPW+W2EeQHlJx
+nl5VfK66lYX3QYnh8zNiZ+xjVRu+6O8rhEuGt38dt7jtNlSgucx+5UHxPe0CgYA4
+9RcGOU9Y1ufD13v/ILqphDOhRgZ7dChGJRc4ps0Fn8n2Zu9RcRZM0riB2XDXFmwy
+Fvh8J513QP3h9Lu7XXRKv19sNouPQcxt20NfS2NmNKmR5L/4DJlRo4aB3u5Q8x0u
+XF4V7GFPvrY/iwnKgfbpXrba0g11uVIiLCprsrgMdwKBgHvebXxV8hmROAoUd1F3
+wm9heCTdZNVD3ci/AYW3/n04weZqkAfdmaev64jFBPnXdTZDC12qXprOWYpeal3A
+eHjpRZRphXwOCJ6me14qnRL6ir6J1o/DzJIATszpf7GTnlqDUlBQNTT9SOmbgIYq
+YftRX/a/t18CpitrzViVgQ+l
+-----END PRIVATE KEY-----
PEM
my ($pem_fh, $pem_filename) =
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/Net-Server-2.009/t/UNIX_test.t
new/Net-Server-2.010/t/UNIX_test.t
--- old/Net-Server-2.009/t/UNIX_test.t 2017-08-10 20:59:09.000000000 +0200
+++ new/Net-Server-2.010/t/UNIX_test.t 2021-03-22 16:03:29.000000000 +0100
@@ -25,6 +25,18 @@
my $socket_dir = tempdir(CLEANUP => 1);
my $socket_file = catfile($socket_dir, 'socket'); # must do before fork
+
+sub allow_deny_hook {
+ my ($server, $client) = @_;
+
+ ### check the properties of the client socket
+ if($client->NS_proto eq 'UNIX') {
+ return $client->NS_port eq $socket_file;
+ } else {
+ return $client->NS_port == $env->{'ports'}->[0];
+ }
+}
+
my $ok = eval {
local $SIG{'ALRM'} = sub { die "Timeout\n" };
alarm $env->{'timeout'};