[perl-Net-HTTP] Handle IO::Socket::SSL as non-blocking

Petr Pisar ppisar at fedoraproject.org
Fri Mar 8 15:00:33 UTC 2013


commit 961ceee0e49f1639c8f2c5c84e29b18d396ba308
Author: Petr Písař <ppisar at redhat.com>
Date:   Fri Mar 8 15:51:48 2013 +0100

    Handle IO::Socket::SSL as non-blocking

 ...-Socket-SSL-doesn-t-play-well-with-select.patch |   25 ++++++++++++++++++++
 perl-Net-HTTP.spec                                 |   16 ++++++++----
 2 files changed, 36 insertions(+), 5 deletions(-)
---
diff --git a/Net-HTTP-6.05-IO-Socket-SSL-doesn-t-play-well-with-select.patch b/Net-HTTP-6.05-IO-Socket-SSL-doesn-t-play-well-with-select.patch
new file mode 100644
index 0000000..d70d44a
--- /dev/null
+++ b/Net-HTTP-6.05-IO-Socket-SSL-doesn-t-play-well-with-select.patch
@@ -0,0 +1,25 @@
+From 744fb936829d27c7bf0d95167aa5d89c9afd5dc9 Mon Sep 17 00:00:00 2001
+From: Jesse Luehrs <doy at tozt.net>
+Date: Wed, 2 Jan 2013 21:38:25 -0600
+Subject: [PATCH] IO::Socket::SSL doesn't play well with select()
+
+This should fix RT#81237, although I'm not sure if it re-breaks RT#72676 (I'm not sure what to do to test it).
+---
+ lib/Net/HTTP/Methods.pm | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/lib/Net/HTTP/Methods.pm b/lib/Net/HTTP/Methods.pm
+index 77e3038..378dad4 100644
+--- a/lib/Net/HTTP/Methods.pm
++++ b/lib/Net/HTTP/Methods.pm
+@@ -283,6 +283,7 @@ sub my_readline {
+ sub can_read {
+     my $self = shift;
+     return 1 unless defined(fileno($self));
++    return 1 if $self->isa('IO::Socket::SSL') && $self->pending;
+ 
+     # With no timeout, wait forever.  An explict timeout of 0 can be
+     # used to just check if the socket is readable without waiting.
+-- 
+1.8.1.4
+
diff --git a/perl-Net-HTTP.spec b/perl-Net-HTTP.spec
index bbdbb71..c0c1bfa 100644
--- a/perl-Net-HTTP.spec
+++ b/perl-Net-HTTP.spec
@@ -1,12 +1,15 @@
 Name:           perl-Net-HTTP
 Version:        6.05
-Release:        2%{?dist}
+Release:        3%{?dist}
 Summary:        Low-level HTTP connection (client)
 License:        GPL+ or Artistic
 Group:          Development/Libraries
 URL:            http://search.cpan.org/dist/Net-HTTP/
 Source0:        http://www.cpan.org/authors/id/G/GA/GAAS/Net-HTTP-%{version}.tar.gz
+# Do not block with IO::Socket::SSL, rhbz#768394, CPAN RT#81237
+Patch0:         Net-HTTP-6.05-IO-Socket-SSL-doesn-t-play-well-with-select.patch
 BuildArch:      noarch
+BuildRequires:  perl
 BuildRequires:  perl(ExtUtils::MakeMaker)
 BuildRequires:  perl(Getopt::Long)
 # Run-time:
@@ -22,7 +25,7 @@ BuildRequires:  perl(Data::Dumper)
 BuildRequires:  perl(Socket)
 BuildRequires:  perl(Test)
 BuildRequires:  perl(Test::More)
-Requires:       perl(:MODULE_COMPAT_%(eval "`%{__perl} -V:version`"; echo $version))
+Requires:       perl(:MODULE_COMPAT_%(eval "`perl -V:version`"; echo $version))
 Requires:       perl(Compress::Raw::Zlib)
 Requires:       perl(IO::Uncompress::Gunzip)
 Requires:       perl(IO::Select)
@@ -40,15 +43,15 @@ and HTTP/1.1.
 
 %prep
 %setup -q -n Net-HTTP-%{version}
+%patch0 -p1
 
 %build
-%{__perl} Makefile.PL INSTALLDIRS=vendor
+perl Makefile.PL INSTALLDIRS=vendor
 make %{?_smp_mflags}
 
 %install
-make pure_install PERL_INSTALL_ROOT=$RPM_BUILD_ROOT
+make pure_install DESTDIR=$RPM_BUILD_ROOT
 find $RPM_BUILD_ROOT -type f -name .packlist -exec rm -f {} \;
-find $RPM_BUILD_ROOT -depth -type d -exec rmdir {} 2>/dev/null \;
 %{_fixperms} $RPM_BUILD_ROOT/*
 
 %check
@@ -60,6 +63,9 @@ make test
 %{_mandir}/man3/*
 
 %changelog
+* Fri Mar 08 2013 Petr Pisar <ppisar at redhat.com> - 6.05-3
+- Handle IO::Socket::SSL as non-blocking (bug #768394)
+
 * Thu Feb 14 2013 Fedora Release Engineering <rel-eng at lists.fedoraproject.org> - 6.05-2
 - Rebuilt for https://fedoraproject.org/wiki/Fedora_19_Mass_Rebuild
 


More information about the scm-commits mailing list