Package: libsoap-lite-perl Version: 0.712-2 Severity: normal
Hi folks, SOAP::Transport::HTTP fails when it is called from mod_perl A patch is attached -- System Information: Debian Release: 6.0.4 APT prefers stable APT policy: (500, 'stable') Architecture: amd64 (x86_64) Kernel: Linux 2.6.32-5-amd64 (SMP w/2 CPU cores) Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8) Shell: /bin/sh linked to /bin/dash Versions of packages libsoap-lite-perl depends on: ii libclass-inspector-per 1.24-1 Perl module that provides informat ii libcrypt-ssleay-perl 0.57-2 Support for https protocol in LWP ii libfcgi-perl 0.71-1+squeeze1 helper module for FastCGI ii libio-socket-ssl-perl 1.33-1+squeeze1 Perl module implementing object or ii libio-stringy-perl 2.110-4 Perl modules for IO from scalars a ii libmime-tools-perl 5.428-1 Perl5 modules for MIME-compliant m ii libossp-uuid-perl 1.6.2-1 perl OSSP::UUID - OSSP uuid Perl B ii libtask-weaken-perl 1.03-1 Ensure that a platform has weaken ii liburi-perl 1.54-2 module to manipulate and access UR ii libwww-perl 5.836-1 Perl HTTP/WWW client/server librar ii libxml-parser-perl 2.36-1.1+b1 Perl module for parsing XML files ii perl [libio-compress-p 5.10.1-17squeeze3 Larry Wall's Practical Extraction ii perl-modules [libversi 5.10.1-17squeeze3 Core Perl modules libsoap-lite-perl recommends no packages. Versions of packages libsoap-lite-perl suggests: pn libapache2-mod-perl2 <none> (no description available) ii libmime-lite-perl 3.027-1 module for convenient MIME message pn libnet-jabber-perl <none> (no description available) -- no debconf information
--- /usr/share/perl5/SOAP/Transport/HTTP.pm 2010-06-04 00:35:51.000000000 +0200 +++ HTTP.pm 2012-03-19 14:54:37.000000000 +0100 @@ -566,10 +566,17 @@ 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 ); + } + } } $self->request(