libwww-SSL Post Issue
am 02.08.2006 22:04:14 von AZSTYXHello Perl Mongers!
Environment:
libwww-perl: 5.805
Crypt::SSLeay -- 0.51
OS: Solaris 8
Perl: 5.8.4
Issue Summary:
Issue with SSL POST operation.
I have a script that randomly fails against devices using HTTPS
example: I run the script 3 times aganst the same device and all works
ok. Then the next 3 runs fail. Then the next run works.
I receive these types of messages:
StatusLine[500 Server closed connection without sending any data back]
StatusLine[500 EOF]
When the script is run on our old dev server using libwww-perl: 5.79;
it seems to work everytime ok.
However, it randomly fails when using libwww-perl: 5.803 or 5.805.
Any suggestions on how to debug this?
I would appreciate any feedback at all!
:)
[code]
use LWP;
$ua = LWP::UserAgent->new; # create new user agent object
$url = "$baseUrl$urlConfigFile"; # create URL for getting config ascii
file
# set up HTTP REQUEST object
$httpReq = HTTP::Request->new(POST=>$url) ; # init Request object
$httpReq-> content_type('application/x-www-form-urlencoded') ;
$httpReq->content('DownloadFormat=ascii'); # pass form variables
$httpReq-> authorization_basic($UID, $upassw) ; # credentials
$strReq = $httpReq->as_string( ); # debug dump of Request object
print "\nThe Request:\n$strReq\n";
print "\n\nNow get the WSD config ascii file.\n";
print "Submitting browser request using url [$url].\n";
$httpResp = $ua->request($httpReq) ; # launch request
$statusLine = $httpResp->status_line();
$statusCode = $httpResp->code();
$statusMsg = $httpResp->message();
print "HTTP Response: StatusLine[$statusLine] Code[$statusCode]
Message[$statusMsg]\n";
if ($httpResp->is_success) {
print "Request OK.\n";
}
else {
die "Request failed.\n";
}
# ok, save content to file
open(FILEO, ">$asciiFile") || die "Error $! Could not open file
$asciiFile.\n";
print FILEO $httpResp->content;
close(FILEO);
[/code]
Example run:
../getwsd4.pl device-b 10.10.10.10 1900 admin admin
Processing devName [device-b] ip addr [10.10.10.10].
Using libwww-perl-5.803
Output file is [/export/ieapps/local/test/device-b.asc].
Base URL [https://10.10.10.10:1900]
The Request:
POST
https://10.10.10.10:1900/dynamic/File/Configuration/Receivef romDevice
Authorization: Basic ZG16c3VwcDpmaXNINHNAIWU=
Content-Type: application/x-www-form-urlencoded
DownloadFormat=ascii
Now get the WSD config ascii file.
Submitting browser request using url
[https://10.10.10.10:1900/dynamic/File/Configuration/Receive fromDevice].
HTTP Response: StatusLine[500 EOF] Code[500] Message[EOF]
Request failed.