Re: ConnCache not been used in LWP::UserAgent

Gisle Aas <[email protected]>
Newsgroups gmane.comp.lang.perl.modules.lwp
Message-ID <[email protected]>
Alexis Marrero <[email protected]> writes:

> I'm trying to put together a short script to test a Keep-Alive
> connection:
> 
> ##### CODE BEGINS #####
> #!env perl -w
> use strict;
> 
> use LWP::UserAgent;
> use LWP::ConnCache;
> 
> my $browser = LWP::UserAgent->new(conn_cache => 1);

This parameter is wrong, but should not really matter as it is
overwritten in the next statement:

> $browser->conn_cache(LWP::ConnCache->new());
> my @lines = ("mind is a terrible thing to waste\n") x 10;
> my $start = time;
> my $url = 'http://yourhost/yourpath';
> my $count = 0;
> 
> foreach (@lines) {
>      my $response = $browser->post( $url,
>                                     [  'pos' => $count,
>                                      'block' => $_,
>                                     ],
>                                     'Content_Type' => 'form-data',
>      );
> 
>      $count += length $_;
> }
> 
> 
> print time() - $start;
> print " secs\n";
> 
> ##### CODE ENDS #####
> 
> I noticed that when the request is made the HTTP headers don't
> include "Connection: Keep-Alive".  It does include "Connection: TE".

'Connection: Keep-Alive' is only used when talking to HTTP/1.0
servers.  For HTTP/1.1 it shouldn't be used.

> Reading the UserAgent.pm source code I noticed that the connection
> cache is stored in $self->{conn_cache} but that value is never used
> in the module.  May be is used by reference in other places by
> passing $self.

Yes.  It's picked up directly by LWP/Protocol/http.pm. 

> The point is that the client is opening connections for every request.

Does not happen when I test your pogram against my server, so I do
belive LWP does the right thing..

Regards,
Gisle
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.