summaryrefslogtreecommitdiff
path: root/perl/perl-SOAP-Lite/SOAP-Lite-0.712_sysread.patch
diff options
context:
space:
mode:
Diffstat (limited to 'perl/perl-SOAP-Lite/SOAP-Lite-0.712_sysread.patch')
-rw-r--r--perl/perl-SOAP-Lite/SOAP-Lite-0.712_sysread.patch38
1 files changed, 38 insertions, 0 deletions
diff --git a/perl/perl-SOAP-Lite/SOAP-Lite-0.712_sysread.patch b/perl/perl-SOAP-Lite/SOAP-Lite-0.712_sysread.patch
new file mode 100644
index 0000000000..85289fcada
--- /dev/null
+++ b/perl/perl-SOAP-Lite/SOAP-Lite-0.712_sysread.patch
@@ -0,0 +1,38 @@
+From 8f49c0e970261f59bc043a8104a9a730ec69dcf4 Mon Sep 17 00:00:00 2001
+From: Christian Ruppert <idl0r@gentoo.org>
+Date: Wed, 23 Mar 2011 18:04:19 +0100
+Subject: [PATCH] Use read() instead of sysread() when using mod_perl
+
+https://rt.cpan.org/Public/Bug/Display.html?id=58538
+---
+ lib/SOAP/Transport/HTTP.pm | 14 +++++++++++---
+ 1 files changed, 11 insertions(+), 3 deletions(-)
+
+diff --git a/lib/SOAP/Transport/HTTP.pm b/lib/SOAP/Transport/HTTP.pm
+index f16b990..57ebbf3 100644
+--- a/lib/SOAP/Transport/HTTP.pm
++++ b/lib/SOAP/Transport/HTTP.pm
+@@ -566,9 +566,17 @@ sub handle {
+ if ( !$chunked ) {
+ my $buffer;
+ binmode(STDIN);
+- while ( sysread( STDIN, $buffer, $length ) ) {
+- $content .= $buffer;
+- last if ( length($content) >= $length );
++ if ( defined($ENV{"MOD_PERL"}) ) {
++ while ( read( STDIN, $buffer, $length ) ) {
++ $content .= $buffer;
++ last if ( length($content) >= $length );
++ }
++ }
++ else {
++ while ( sysread( STDIN, $buffer, $length ) ) {
++ $content .= $buffer;
++ last if ( length($content) >= $length );
++ }
+ }
+ }
+
+--
+1.7.3.4
+