diff -Nru libnet-server-perl-2.009/bin/net-server libnet-server-perl-2.010/bin/net-server --- libnet-server-perl-2.009/bin/net-server 2017-08-10 18:59:31.000000000 +0000 +++ libnet-server-perl-2.010/bin/net-server 2021-03-22 15:03:29.000000000 +0000 @@ -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 -Nru libnet-server-perl-2.009/Changes libnet-server-perl-2.010/Changes --- libnet-server-perl-2.009/Changes 2017-08-10 19:02:35.000000000 +0000 +++ libnet-server-perl-2.010/Changes 2021-03-22 15:05:20.000000000 +0000 @@ -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 -Nru libnet-server-perl-2.009/debian/changelog libnet-server-perl-2.010/debian/changelog --- libnet-server-perl-2.009/debian/changelog 2020-04-03 15:02:06.000000000 +0000 +++ libnet-server-perl-2.010/debian/changelog 2022-08-20 16:22:55.000000000 +0000 @@ -1,3 +1,22 @@ +libnet-server-perl (2.010-1) unstable; urgency=medium + + [ gregor herrmann ] + * Import upstream version 2.010. + * Drop update-certs-to-use-2048-bits-key.patch, fixed upstream. + * Refresh spelling-error.patch (one mistake was fixed). + * Drop another-manpage-error.patch, merged upstream. + * Bump debhelper-compat to 13. + + [ Debian Janitor ] + * Update standards version to 4.6.0, no changes needed. + + [ gregor herrmann ] + * Update years of packaging copyright. + * Declare compliance with Debian Policy 4.6.1. + * Add another typo fix to spelling-error.patch. + + -- gregor herrmann Sat, 20 Aug 2022 18:22:55 +0200 + libnet-server-perl (2.009-2) unstable; urgency=medium [ Salvatore Bonaccorso ] diff -Nru libnet-server-perl-2.009/debian/control libnet-server-perl-2.010/debian/control --- libnet-server-perl-2.009/debian/control 2020-04-03 15:02:06.000000000 +0000 +++ libnet-server-perl-2.010/debian/control 2022-08-20 16:22:55.000000000 +0000 @@ -6,7 +6,7 @@ Section: perl Testsuite: autopkgtest-pkg-perl Priority: optional -Build-Depends: debhelper-compat (= 12) +Build-Depends: debhelper-compat (= 13) Build-Depends-Indep: libcgi-pm-perl , libio-multiplex-perl , libio-socket-inet6-perl , @@ -14,7 +14,7 @@ libnet-ssleay-perl , libsocket6-perl , perl -Standards-Version: 4.5.0 +Standards-Version: 4.6.1 Vcs-Browser: https://salsa.debian.org/perl-team/modules/packages/libnet-server-perl Vcs-Git: https://salsa.debian.org/perl-team/modules/packages/libnet-server-perl.git Homepage: https://metacpan.org/release/Net-Server diff -Nru libnet-server-perl-2.009/debian/copyright libnet-server-perl-2.010/debian/copyright --- libnet-server-perl-2.009/debian/copyright 2020-04-03 15:02:06.000000000 +0000 +++ libnet-server-perl-2.010/debian/copyright 2022-08-20 16:22:55.000000000 +0000 @@ -16,7 +16,7 @@ Files: debian/* Copyright: 2002-2003, Luca Filipozzi 2004-2011, Carsten Wolff - 2011-2020, gregor herrmann + 2011-2022, gregor herrmann 2012, Daniel Kahn Gillmor 2012, intrigeri 2013-2018, Xavier Guimard diff -Nru libnet-server-perl-2.009/debian/patches/another-manpage-error.patch libnet-server-perl-2.010/debian/patches/another-manpage-error.patch --- libnet-server-perl-2.009/debian/patches/another-manpage-error.patch 2020-04-03 15:02:06.000000000 +0000 +++ libnet-server-perl-2.010/debian/patches/another-manpage-error.patch 1970-01-01 00:00:00.000000000 +0000 @@ -1,15 +0,0 @@ -Description: Missing blank line in POD -Author: Xavier Guimard -Forwarded: https://github.com/rhandom/perl-net-server/pull/11 -Last-Update: 2017-10-26 - ---- libnet-server-perl-2.009.orig/lib/Net/Server/PreFork.pm -+++ libnet-server-perl-2.009/lib/Net/Server/PreFork.pm -@@ -678,6 +678,7 @@ This hook is called when a dead child is - 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 -Nru libnet-server-perl-2.009/debian/patches/series libnet-server-perl-2.010/debian/patches/series --- libnet-server-perl-2.009/debian/patches/series 2020-04-03 15:02:06.000000000 +0000 +++ libnet-server-perl-2.010/debian/patches/series 2022-08-20 16:22:55.000000000 +0000 @@ -1,6 +1,4 @@ -update-certs-to-use-2048-bits-key.patch spelling-error.patch correct-SIG-confusion.patch fix-manpage-has-errors-from-pod2man.patch -another-manpage-error.patch Net-Server-2.009-rt130107.patch diff -Nru libnet-server-perl-2.009/debian/patches/spelling-error.patch libnet-server-perl-2.010/debian/patches/spelling-error.patch --- libnet-server-perl-2.009/debian/patches/spelling-error.patch 2020-04-03 15:02:06.000000000 +0000 +++ libnet-server-perl-2.010/debian/patches/spelling-error.patch 2022-08-20 16:22:55.000000000 +0000 @@ -4,7 +4,7 @@ Author: intrigeri Reviewed-By: Xavier Guimard gregor herrmann -Last-Update: 2017-10-26 +Last-Update: 2022-08-20 --- a/lib/Net/Server.pod +++ b/lib/Net/Server.pod @@ -192,17 +192,6 @@ this hook came from James FitzGibbon. =item C<$self-Eparent_read_hook()> ---- a/lib/Net/Server/Daemonize.pm -+++ b/lib/Net/Server/Daemonize.pm -@@ -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 --- a/lib/Net/Server/Proto.pm +++ b/lib/Net/Server/Proto.pm @@ -411,7 +411,7 @@ @@ -216,7 +205,7 @@ 2) ipv specified in port --- a/lib/Net/Server/HTTP.pm +++ b/lib/Net/Server/HTTP.pm -@@ -660,7 +660,7 @@ +@@ -674,7 +674,7 @@ Net::Server::HTTP begins with base type MultiType defaulting to Net::Server::Fork. It is easy to change it to any of the other Net::Server flavors by passing server_type => $other_flavor in the @@ -225,7 +214,7 @@ but could easily be changed to another through the server configuration. You can also very easily add ssl by including, proto=>"ssl" and provide a SSL_cert_file and SSL_key_file. -@@ -745,7 +745,7 @@ +@@ -759,7 +759,7 @@ =item c Called at the end of post_process_request. The default method looks @@ -330,7 +319,7 @@ --- a/lib/Net/Server/Proto/UNIX.pm +++ b/lib/Net/Server/Proto/UNIX.pm -@@ -132,11 +132,11 @@ +@@ -146,11 +146,11 @@ SOCK_STREAM socket type. See L. Any sockets created during startup will be chown'ed to the user and @@ -346,7 +335,7 @@ --- a/lib/Net/Server/Proto/SSL.pm +++ b/lib/Net/Server/Proto/SSL.pm -@@ -235,7 +235,7 @@ +@@ -236,7 +236,7 @@ =head1 SYNOPSIS @@ -355,7 +344,7 @@ module. Recent versions include code that overcomes original limitations. See L. -@@ -299,7 +299,7 @@ +@@ -300,7 +300,7 @@ If you know that your server will only need IPv4 (which is the default for Net::Server), you can load IO::Socket::SSL in inet4 mode which will prevent it from using Socket6 and IO::Socket::INET6 since they @@ -366,7 +355,7 @@ use base qw(Net::Server::Fork); --- a/lib/Net/Server/Proto/SSLEAY.pm +++ b/lib/Net/Server/Proto/SSLEAY.pm -@@ -519,7 +519,7 @@ +@@ -528,7 +528,7 @@ This module has reliably been used in situations receiving millions of hits on a single box per day. If anybody has any successes or ideas @@ -413,8 +402,12 @@ --- a/lib/Net/Server/Multiplex.pm +++ b/lib/Net/Server/Multiplex.pm -@@ -311,7 +311,7 @@ - deamonization and pid tracking, and restartability -SIGHUP) and some +@@ -308,10 +308,10 @@ + This takes some nice features of Net::Server (like the server listen + socket setup, configuration file processing, safe signal handling, + convenient inet style STDIN/STDOUT handling, logging features, +-deamonization and pid tracking, and restartability -SIGHUP) and some ++daemonization and pid tracking, and restartability -SIGHUP) and some nice features of IO::Multiplex (automatic buffered IO and per-file-handle objects) and combines them for an easy-to-use -interace. diff -Nru libnet-server-perl-2.009/debian/patches/update-certs-to-use-2048-bits-key.patch libnet-server-perl-2.010/debian/patches/update-certs-to-use-2048-bits-key.patch --- libnet-server-perl-2.009/debian/patches/update-certs-to-use-2048-bits-key.patch 2020-04-03 15:02:06.000000000 +0000 +++ libnet-server-perl-2.010/debian/patches/update-certs-to-use-2048-bits-key.patch 1970-01-01 00:00:00.000000000 +0000 @@ -1,244 +0,0 @@ -Description: Update certificates to use 2048 bits key - The small key size was causing a FTBFS in Ubuntu, where this error has been - reported: SSL_CTX_use_certificate:ee key too small. -Forwarded: no -Author: Lucas Kanashiro -Reviewed-by: gregor herrmann -Last-Update: 2020-04-03 - ---- a/t/SSL_test.t -+++ b/t/SSL_test.t -@@ -16,34 +16,88 @@ - - 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= -+MIIFazCCA1OgAwIBAgIUA8Xm/EUFCN3yY1jqQqfivcJPAxcwDQYJKoZIhvcNAQEL -+BQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoM -+GEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAeFw0yMDA0MDExMzA5MDRaFw00NzA4 -+MTgxMzA5MDRaMEUxCzAJBgNVBAYTAkFVMRMwEQYDVQQIDApTb21lLVN0YXRlMSEw -+HwYDVQQKDBhJbnRlcm5ldCBXaWRnaXRzIFB0eSBMdGQwggIiMA0GCSqGSIb3DQEB -+AQUAA4ICDwAwggIKAoICAQDH7zYyow2nvRQeqa8dPtJCi65OcDvWUmL4Fazxas56 -+kYHv3gdEAVcxrW1AFhziDNvrsLiWE9WfFoav9xEPtXvDsY9+2rsNoiTUzPgvYaFG -+5Uz43sz4gqxbndxWTtMbpFA0zrhXnAHm4EUM2ykU04KQXHMGFTAHb+c7ARKMg7+B -+H6j4XiSEZenWRqh9bE71wIMs2gvsRuVzTZrobzYHSrHJYyhjBoEmWahm9PFAfkvF -+tZl9hmaz0jPYDmHdzqusMT3lNvZucGn76Z+8KCFmnMb8lGmfMBbumHpjiJ53DLGK -+KEhR7kK/86t9lnAdvcIPlDTJPk/xHoxXhbHcKtEnnKat1a3/THSTrGT96OYlpjm/ -+JwjbLoFGjT9D06oajWY/lt/CeAQy76qRHqJVJyZ2j9TXw3tEQvawTxPMPIE+iKfs -+78OG4d/j9M1R4tkPQdwD8VCVJB7e6+2HlbPai/djMUqkj2stMZ3sgv5ehHae0xth -+BM29I/TdOLfgP8S3EGqVVYcyRAWKYvGYwgGEvocmiUgXjowOsOt1h5a+CD/Qfodg -+6qfilPpD2aZYqcPSn5Htqp+pkjMpWC1aMflxQbxvXcJFTzGbc4HslqJhbLXe/fwR -+2scOg8ZEt8Y94sF/7Y+GLDaJnV8ObmdMttzx7HWdQMtPkFvo4/h7fseG/bA4/SoX -+xQIDAQABo1MwUTAdBgNVHQ4EFgQUntWE93uYLQ+bbKqFswQyG0aqZkowHwYDVR0j -+BBgwFoAUntWE93uYLQ+bbKqFswQyG0aqZkowDwYDVR0TAQH/BAUwAwEB/zANBgkq -+hkiG9w0BAQsFAAOCAgEAt2+PAKmobIRb4+5vGgfhLzPW97yCi03szpfe9mUwmeFN -+EcLXRl1t2lyLc/Ucn8pSUTfEv1WT96JYbTurUkM1iLi+y5jJeS8qAA59Me1HcPvF -+vMy7MG/Fam0wU/wEC0wzWwPDDIUG5PM9rk9vkBmZ44TltE//i2wbh8Zo7z1nNUDy -+ms6K8pQjoG7SJefHbCjyqYrm17pb2/ClIZuZWs8rvot/9zslKiDKNK4ewdY0iONy -+q861PZ+TqdTpxm8ouBkpQA2ggIZNcfwO/KVr6nqBVp072dXlaSRiBD+z4CNnGb4b -+Gz931Iev0zTKY3m9uL8jNO36BRB4paIaDexeYxK01L2mFHkCZOukhYOB4qli8+4y -+/vlOaMuuhVeQNdjjq2t1k1wP1+1QjHdyimenDYFnvzTnu7hBr5Wgs0/sxCBug9aJ -+/v6rW/kItPbLmgoo6Q9sJWEzJBjUzacaus/7HYa2XMQ6qq+dP+HMcaCtDCzbKgyJ -+w1EMMd4f/uZeinE5BDljhSuJLl6vVP0WyBR3CYQdbpQlc1Koansr/j97OyZtwTmY -+6+xIh1WATcvrzSVJiLJb9zTcOg8SXtAHpAkpEGQk1kDiJUP+3AN2uOT3KrlxSjCg -+skbx0I2wRdK4UvTr3WAakSjdmxMoHzAyoZ1OqBiz9ndGWWY8i5acAlcgFIfa730= - -----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----- -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 -+k+WUbp8EAMRqFNRRLcPzcux5vlLvOtw= -+-----END PRIVATE KEY----- - PEM - - my ($pem_fh, $pem_filename) = ---- a/t/SSLEAY_test.t -+++ b/t/SSLEAY_test.t -@@ -21,34 +21,88 @@ - - 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= -+MIIFazCCA1OgAwIBAgIUA8Xm/EUFCN3yY1jqQqfivcJPAxcwDQYJKoZIhvcNAQEL -+BQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoM -+GEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAeFw0yMDA0MDExMzA5MDRaFw00NzA4 -+MTgxMzA5MDRaMEUxCzAJBgNVBAYTAkFVMRMwEQYDVQQIDApTb21lLVN0YXRlMSEw -+HwYDVQQKDBhJbnRlcm5ldCBXaWRnaXRzIFB0eSBMdGQwggIiMA0GCSqGSIb3DQEB -+AQUAA4ICDwAwggIKAoICAQDH7zYyow2nvRQeqa8dPtJCi65OcDvWUmL4Fazxas56 -+kYHv3gdEAVcxrW1AFhziDNvrsLiWE9WfFoav9xEPtXvDsY9+2rsNoiTUzPgvYaFG -+5Uz43sz4gqxbndxWTtMbpFA0zrhXnAHm4EUM2ykU04KQXHMGFTAHb+c7ARKMg7+B -+H6j4XiSEZenWRqh9bE71wIMs2gvsRuVzTZrobzYHSrHJYyhjBoEmWahm9PFAfkvF -+tZl9hmaz0jPYDmHdzqusMT3lNvZucGn76Z+8KCFmnMb8lGmfMBbumHpjiJ53DLGK -+KEhR7kK/86t9lnAdvcIPlDTJPk/xHoxXhbHcKtEnnKat1a3/THSTrGT96OYlpjm/ -+JwjbLoFGjT9D06oajWY/lt/CeAQy76qRHqJVJyZ2j9TXw3tEQvawTxPMPIE+iKfs -+78OG4d/j9M1R4tkPQdwD8VCVJB7e6+2HlbPai/djMUqkj2stMZ3sgv5ehHae0xth -+BM29I/TdOLfgP8S3EGqVVYcyRAWKYvGYwgGEvocmiUgXjowOsOt1h5a+CD/Qfodg -+6qfilPpD2aZYqcPSn5Htqp+pkjMpWC1aMflxQbxvXcJFTzGbc4HslqJhbLXe/fwR -+2scOg8ZEt8Y94sF/7Y+GLDaJnV8ObmdMttzx7HWdQMtPkFvo4/h7fseG/bA4/SoX -+xQIDAQABo1MwUTAdBgNVHQ4EFgQUntWE93uYLQ+bbKqFswQyG0aqZkowHwYDVR0j -+BBgwFoAUntWE93uYLQ+bbKqFswQyG0aqZkowDwYDVR0TAQH/BAUwAwEB/zANBgkq -+hkiG9w0BAQsFAAOCAgEAt2+PAKmobIRb4+5vGgfhLzPW97yCi03szpfe9mUwmeFN -+EcLXRl1t2lyLc/Ucn8pSUTfEv1WT96JYbTurUkM1iLi+y5jJeS8qAA59Me1HcPvF -+vMy7MG/Fam0wU/wEC0wzWwPDDIUG5PM9rk9vkBmZ44TltE//i2wbh8Zo7z1nNUDy -+ms6K8pQjoG7SJefHbCjyqYrm17pb2/ClIZuZWs8rvot/9zslKiDKNK4ewdY0iONy -+q861PZ+TqdTpxm8ouBkpQA2ggIZNcfwO/KVr6nqBVp072dXlaSRiBD+z4CNnGb4b -+Gz931Iev0zTKY3m9uL8jNO36BRB4paIaDexeYxK01L2mFHkCZOukhYOB4qli8+4y -+/vlOaMuuhVeQNdjjq2t1k1wP1+1QjHdyimenDYFnvzTnu7hBr5Wgs0/sxCBug9aJ -+/v6rW/kItPbLmgoo6Q9sJWEzJBjUzacaus/7HYa2XMQ6qq+dP+HMcaCtDCzbKgyJ -+w1EMMd4f/uZeinE5BDljhSuJLl6vVP0WyBR3CYQdbpQlc1Koansr/j97OyZtwTmY -+6+xIh1WATcvrzSVJiLJb9zTcOg8SXtAHpAkpEGQk1kDiJUP+3AN2uOT3KrlxSjCg -+skbx0I2wRdK4UvTr3WAakSjdmxMoHzAyoZ1OqBiz9ndGWWY8i5acAlcgFIfa730= - -----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----- -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 -+k+WUbp8EAMRqFNRRLcPzcux5vlLvOtw= -+-----END PRIVATE KEY----- - PEM - - my ($pem_fh, $pem_filename) = diff -Nru libnet-server-perl-2.009/lib/Net/Server/Daemonize.pm libnet-server-perl-2.010/lib/Net/Server/Daemonize.pm --- libnet-server-perl-2.009/lib/Net/Server/Daemonize.pm 2017-08-10 18:18:48.000000000 +0000 +++ libnet-server-perl-2.010/lib/Net/Server/Daemonize.pm 2021-03-22 15:03:29.000000000 +0000 @@ -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 -Nru libnet-server-perl-2.009/lib/Net/Server/HTTP.pm libnet-server-perl-2.010/lib/Net/Server/HTTP.pm --- libnet-server-perl-2.009/lib/Net/Server/HTTP.pm 2017-08-10 18:19:08.000000000 +0000 +++ libnet-server-perl-2.010/lib/Net/Server/HTTP.pm 2021-03-22 15:03:29.000000000 +0000 @@ -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 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 is passed, the access log entry will be written to +standard out. =item access_log_format diff -Nru libnet-server-perl-2.009/lib/Net/Server/PreFork.pm libnet-server-perl-2.010/lib/Net/Server/PreFork.pm --- libnet-server-perl-2.009/lib/Net/Server/PreFork.pm 2017-08-10 18:20:31.000000000 +0000 +++ libnet-server-perl-2.010/lib/Net/Server/PreFork.pm 2021-03-22 15:03:29.000000000 +0000 @@ -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 -Nru libnet-server-perl-2.009/lib/Net/Server/Proto/SSLEAY.pm libnet-server-perl-2.010/lib/Net/Server/Proto/SSLEAY.pm --- libnet-server-perl-2.009/lib/Net/Server/Proto/SSLEAY.pm 2017-08-10 18:21:00.000000000 +0000 +++ libnet-server-perl-2.010/lib/Net/Server/Proto/SSLEAY.pm 2021-03-22 15:13:18.000000000 +0000 @@ -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 -Nru libnet-server-perl-2.009/lib/Net/Server/Proto/SSL.pm libnet-server-perl-2.010/lib/Net/Server/Proto/SSL.pm --- libnet-server-perl-2.009/lib/Net/Server/Proto/SSL.pm 2017-08-10 18:21:11.000000000 +0000 +++ libnet-server-perl-2.010/lib/Net/Server/Proto/SSL.pm 2021-03-22 15:03:29.000000000 +0000 @@ -42,6 +42,7 @@ SSL_passwd_cb SSL_max_getline_length SSL_error_callback + SSL_verify_callback ); sub NS_proto { 'SSL' } diff -Nru libnet-server-perl-2.009/lib/Net/Server/Proto/UNIX.pm libnet-server-perl-2.010/lib/Net/Server/Proto/UNIX.pm --- libnet-server-perl-2.009/lib/Net/Server/Proto/UNIX.pm 2017-08-10 18:22:03.000000000 +0000 +++ libnet-server-perl-2.010/lib/Net/Server/Proto/UNIX.pm 2021-03-22 15:03:29.000000000 +0000 @@ -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 -Nru libnet-server-perl-2.009/lib/Net/Server.pm libnet-server-perl-2.010/lib/Net/Server.pm --- libnet-server-perl-2.009/lib/Net/Server.pm 2017-08-10 18:18:05.000000000 +0000 +++ libnet-server-perl-2.010/lib/Net/Server.pm 2021-03-22 15:03:49.000000000 +0000 @@ -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 -Nru libnet-server-perl-2.009/Makefile.PL libnet-server-perl-2.010/Makefile.PL --- libnet-server-perl-2.009/Makefile.PL 2017-08-10 19:05:23.000000000 +0000 +++ libnet-server-perl-2.010/Makefile.PL 2021-03-22 15:21:05.000000000 +0000 @@ -29,7 +29,7 @@ "Time::HiRes" => 0 }, "TEST_REQUIRES" => {}, - "VERSION" => "2.009", + "VERSION" => "2.010", "test" => { "TESTS" => "t/*.t" } diff -Nru libnet-server-perl-2.009/META.json libnet-server-perl-2.010/META.json --- libnet-server-perl-2.009/META.json 2017-08-10 19:05:48.000000000 +0000 +++ libnet-server-perl-2.010/META.json 2021-03-22 15:21:55.000000000 +0000 @@ -4,13 +4,13 @@ "Paul Seamons and Rob Brown " ], "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 -Nru libnet-server-perl-2.009/META.yml libnet-server-perl-2.010/META.yml --- libnet-server-perl-2.009/META.yml 2017-08-10 19:05:48.000000000 +0000 +++ libnet-server-perl-2.010/META.yml 2021-03-22 15:21:55.000000000 +0000 @@ -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 -Nru libnet-server-perl-2.009/t/SSLEAY_test.t libnet-server-perl-2.010/t/SSLEAY_test.t --- libnet-server-perl-2.009/t/SSLEAY_test.t 2017-08-10 18:58:57.000000000 +0000 +++ libnet-server-perl-2.010/t/SSLEAY_test.t 2021-03-22 14:45:57.000000000 +0000 @@ -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 -Nru libnet-server-perl-2.009/t/SSL_test.t libnet-server-perl-2.010/t/SSL_test.t --- libnet-server-perl-2.009/t/SSL_test.t 2017-08-10 18:59:01.000000000 +0000 +++ libnet-server-perl-2.010/t/SSL_test.t 2021-03-22 14:45:57.000000000 +0000 @@ -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 -Nru libnet-server-perl-2.009/t/UNIX_test.t libnet-server-perl-2.010/t/UNIX_test.t --- libnet-server-perl-2.009/t/UNIX_test.t 2017-08-10 18:59:09.000000000 +0000 +++ libnet-server-perl-2.010/t/UNIX_test.t 2021-03-22 15:03:29.000000000 +0000 @@ -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'};