diff --git a/libnet-3.09-Override-timeout-method-in-Net-FTP-and-other-subclas.patch b/libnet-3.09-Override-timeout-method-in-Net-FTP-and-other-subclas.patch new file mode 100644 index 0000000..7d2fa91 --- /dev/null +++ b/libnet-3.09-Override-timeout-method-in-Net-FTP-and-other-subclas.patch @@ -0,0 +1,91 @@ +From 72d07cb0d6a2e32a6a18a1794a592a8f6bf71665 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Petr=20P=C3=ADsa=C5=99?= +Date: Wed, 27 Jul 2016 12:57:23 +0200 +Subject: [PATCH] Override timeout method in Net::FTP and other subclasses +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +After adding Net::Cmd::timeout() in commit +91e593b615334fa76ef0454c4e601b98b6663841, the method masked +IO::Socket:IP::timeout() in Net::FTP objects causing infitive block in +select() on a FTP connection. + +CPAN RT#116345 + +Signed-off-by: Petr Písař +--- + lib/Net/FTP.pm | 5 +++++ + lib/Net/NNTP.pm | 6 ++++++ + lib/Net/POP3.pm | 5 +++++ + lib/Net/SMTP.pm | 5 +++++ + 4 files changed, 21 insertions(+) + +diff --git a/lib/Net/FTP.pm b/lib/Net/FTP.pm +index 905d830..42c33f5 100644 +--- a/lib/Net/FTP.pm ++++ b/lib/Net/FTP.pm +@@ -1210,6 +1210,11 @@ sub _data_cmd { + ## + + ++sub timeout { ++ $IOCLASS->can('timeout')->(@_); ++} ++ ++ + sub debug_text { $_[2] =~ /^(pass|resp|acct)/i ? "$1 ....\n" : $_[2]; } + + +diff --git a/lib/Net/NNTP.pm b/lib/Net/NNTP.pm +index 764d580..f1b5c17 100644 +--- a/lib/Net/NNTP.pm ++++ b/lib/Net/NNTP.pm +@@ -419,6 +419,12 @@ sub slave { + $nntp->_SLAVE; + } + ++ ++sub timeout { ++ $ISA[-1]->can('timeout')->(@_); ++} ++ ++ + ## + ## The following methods are not implemented by all servers + ## +diff --git a/lib/Net/POP3.pm b/lib/Net/POP3.pm +index bb18aaf..7f1cf5a 100644 +--- a/lib/Net/POP3.pm ++++ b/lib/Net/POP3.pm +@@ -387,6 +387,11 @@ sub quit { + } + + ++sub timeout { ++ $ISA[-1]->can('timeout')->(@_); ++} ++ ++ + sub DESTROY { + my $me = shift; + +diff --git a/lib/Net/SMTP.pm b/lib/Net/SMTP.pm +index 0dd966f..895c884 100644 +--- a/lib/Net/SMTP.pm ++++ b/lib/Net/SMTP.pm +@@ -586,6 +586,11 @@ sub quit { + } + + ++sub timeout { ++ $ISA[-1]->can('timeout')->(@_); ++} ++ ++ + sub DESTROY { + + # ignore +-- +2.5.5 + diff --git a/perl-libnet.spec b/perl-libnet.spec index 68f299d..eb6d619 100644 --- a/perl-libnet.spec +++ b/perl-libnet.spec @@ -1,6 +1,6 @@ Name: perl-libnet Version: 3.09 -Release: 1%{?dist} +Release: 2%{?dist} Summary: Perl clients for various network protocols License: GPL+ or Artistic Group: Development/Libraries @@ -10,6 +10,8 @@ Source0: http://www.cpan.org/authors/id/S/SH/SHAY/libnet-%{version}.tar.g Patch0: libnet-3.09-Normalize-Changes-encoding.patch # Do not create Net/libnet.cfg, bug #1238689 Patch1: libnet-3.08-Do-not-create-Net-libnet.cfg.patch +# Fix blocking in Net::FTP and other subclasses, bug #1360610, CPAN RT#116345 +Patch2: libnet-3.09-Override-timeout-method-in-Net-FTP-and-other-subclas.patch BuildArch: noarch BuildRequires: findutils BuildRequires: make @@ -93,6 +95,7 @@ protocols used in the internet community. %setup -q -n libnet-%{version} %patch0 -p1 %patch1 -p1 +%patch2 -p1 %build perl Makefile.PL INSTALLDIRS=vendor - 3.09-2 +- Fix blocking in Net::FTP and other subclasses (bug #1360610) + * Wed Jul 20 2016 Petr Pisar - 3.09-1 - 3.09 bump