libwww-SSL Post Issue

libwww-SSL Post Issue

am 02.08.2006 22:04:14 von AZSTYX

Hello 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.

Re: libwww-SSL Post Issue

am 03.08.2006 01:33:48 von Sisyphus

"AZSTYX" wrote in message
news:1154549054.646278.192020@p79g2000cwp.googlegroups.com.. .
> Hello 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

It's not clear to me at precisely which point the script is failing. Is it
the call to new() ? or perhaps the $ua->request() ? or perhaps something
else ?

I think the first thing to do is to determine just where (in the script) the
rot sets in - by examining (immediately) the return values of such things as
the new() call.

Cheers,
Rob

Re: libwww-SSL Post Issue

am 04.08.2006 00:21:53 von AZSTYX

Sisyphus wrote:
> "AZSTYX" wrote in message
> news:1154549054.646278.192020@p79g2000cwp.googlegroups.com.. .
> > Hello 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
>
> It's not clear to me at precisely which point the script is failing. Is it
> the call to new() ? or perhaps the $ua->request() ? or perhaps something
> else ?
>

new() is a constructor....it has no return value; the first item with a
return status is the ->request which returns code 500.
> I think the first thing to do is to determine just where (in the script) the
> rot sets in - by examining (immediately) the return values of such things as
> the new() call.
>
> Cheers,
> Rob

Re: libwww-SSL Post Issue

am 04.08.2006 16:59:27 von Stephan Titard

> new() is a constructor....it has no return value; the first item with a
> return status is the ->request which returns code 500.
>> I think the first thing to do is to determine just where (in the script) the
>> rot sets in - by examining (immediately) the return values of such things as
>> the new() call.
>>
>> Cheers,
>> Rob
>
not true... new returns $ua, isn'it?
a reference to your user agent

use LWP's debug mode
hth
--stephan