Re: LWP::UserAgent bug with relative url redirection with URI::URL::strict(1)

Gisle Aas (aas@bergen.sn.no)
22 Jan 1997 14:34:46 +0000


Clinton Wong <clintdw@netcom.com> writes:

> I think lines 286-289 can be rewritten to work with URI::URL::strict(1)
> like this:
> 
> my $referral_uri = (URI::URL->new($response->header('Location'),
>                                   $response->base))->abs();

Looks good.  Thanks.

Index: UserAgent.pm
===================================================================
RCS file: /f/stovner/utvikling/CVSROOT/aas/perl/mods/libwww-perl/lib/LWP/UserAgent.pm,v
retrieving revision 1.39
diff -u -r1.39 UserAgent.pm
--- UserAgent.pm	1996/12/04 15:24:29	1.39
+++ UserAgent.pm	1997/01/22 14:33:24
@@ -283,10 +283,13 @@
 
 	# Make a copy of the request and initialize it with the new URI
 	my $referral = $request->clone;
-	my $referral_uri = URI::URL->new($response->header('Location'));
-	# some servers erroneously return a relative URL for redirects,
-	# so make it absolute.
-	$referral_uri = $referral_uri->abs($response->base);
+
+	# And then we update the URL based on the Location:-header.
+	# Some servers erroneously return a relative URL for redirects,
+	# so make it absolute if it not already is.
+	my $referral_uri = (URI::URL->new($response->header('Location'),
+					  $response->base))->abs();
+
 	$referral->url($referral_uri);
 
 	return $response unless $self->redirect_ok($referral);


Regards,
Gisle