Description of problem: perl-IO-Socket-IP-0.19 and perl-IO-Socket-SSL-1.88 are incompatible as explained here: Excerpted from https://rt.cpan.org/Public/Bug/Display.html?id=81932#txn-1211956 -- BEGIN EXCERPT -- ... C:\strawberry\perl\bin\perl.exe "-MExtUtils::Command::MM" "-e" "test_harness(0, 'blib\lib', 'blib\arch')" t/*.t t/loadmodule.t .. ok t/testmodule.t .. 1/9 Not a HASH reference at C:/strawberry/perl/vendor/lib/IO/Socket/SSL.pm line 600. Terminating on signal SIGINT(2) ... The bug initially described here is fixed by installing at least IO::Socket::IP version 0.20, or by using IO::Socket::SSL version 1.89, which will not use older IO::Socket::IP versions. -- END EXCERPT -- Version-Release number of selected component (if applicable): [root@vm-00 scripts]# rpm -q perl-IO-Socket-IP perl-IO-Socket-SSL perl-HTTP-Daemon-SSL perl-IO-Socket-IP-0.19-1.fc19.noarch perl-IO-Socket-SSL-1.88-2.fc19.noarch perl-HTTP-Daemon-SSL-1.04-9.fc18.noarch How reproducible: Consistent Steps to Reproduce: 1. # generate a valid certificate and key in pem format and put them in the "certs" subdirectory of the test.pl script's working directory. cd /etc/pki/tls/certs make cert-and-key.pem ... Common Name (eg, your name or your server's hostname) [?]: your.fqdn ... mkdir /tmp/certs cat cert-and-key.pem | perl -e '$/=undef; <> =~ /(.*)\n\n/ms && print "$1\n"' > /tmp/certs/server-key.pem cat cert-and-key.pem | perl -e '$/=undef; <> =~ /\n\n(.*)/ms && print "$1"' > /tmp/certs/server-cert.pem 2. # create and run the test.pl script cat > /tmp/test.pl # copy-n-paste the below script and end with Ctrl^D on an empty line #!/usr/bin/perl use IO::Select; use HTTP::Daemon::SSL; use HTTP::Headers; use HTTP::Status; $daemon = HTTP::Daemon::SSL->new(Listen => 3, LocalAddr => 'your.fqdn', LocalPort => 443, ReuseAddr => 1) || die "$!\n"; $select = IO::Select->new( $daemon ); while(@ready = $select->can_read()) { foreach $fh (@ready) { if($fh == $daemon) { ($c, $ip) = $daemon->accept(); $select->add($c); } else { if($request = $fh->get_request()) { $header = HTTP::Headers->new(Content_Type => 'text/plain'); $fh->send_response(HTTP::Response->new(RC_OK, undef(), $header, 'Hello World!')); } else { $select->remove($fh); $fh->close(); $fh = undef(); } } } } 3. # with the script running, query it on its listening port wget -O - https://your.fqdn/ 2>/dev/null | cat Actual results: "Not a HASH reference at /usr/share/perl5/vendor_perl/IO/Socket/SSL.pm line 689." printed on server console. Expected results: "Hello World!" printed on the client console. Additional info: [root@vm-00 tmp]# cat /etc/issue Fedora release 19 (Schrödinger’s Cat) Kernel \r on an \m (\l) [root@vm-00 tmp]# uname -a Linux vm-00 3.11.8-200.fc19.x86_64 #1 SMP Wed Nov 13 16:29:59 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux
Thanks for the report. I'm going to push the latest fixes to f19+.
perl-IO-Socket-IP-0.29-1.fc20 has been submitted as an update for Fedora 20. https://admin.fedoraproject.org/updates/perl-IO-Socket-IP-0.29-1.fc20
perl-IO-Socket-IP-0.29-1.fc19 has been submitted as an update for Fedora 19. https://admin.fedoraproject.org/updates/perl-IO-Socket-IP-0.29-1.fc19
perl-IO-Socket-IP-0.29-1.fc19 worked for me. I consider this issue resolved. I'll go ahead and close the bug. Thanks, gb
perl-IO-Socket-IP-0.29-1.fc20 has been pushed to the Fedora 20 stable repository. If problems still persist, please make note of it in this bug report.
perl-IO-Socket-IP-0.29-1.fc19 has been pushed to the Fedora 19 stable repository. If problems still persist, please make note of it in this bug report.