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