meta: Ensure that the url specified by xrds-location is absolute.

With a relative xrds-location, the openid perl client module will fail.
I haven't checked the specs to see if it needs to be absolute, but all
examples I've seen are absolute, so it seems a very good idea.
master
Joey Hess 2010-09-19 20:15:34 -04:00
parent 2ca4ff8ae6
commit 8063b960ad
2 changed files with 11 additions and 1 deletions

View File

@ -198,8 +198,12 @@ sub preprocess (@) {
'" rel="openid2.local_id" />' if $delegate ne 1;
}
if (exists $params{"xrds-location"} && safeurl($params{"xrds-location"})) {
# force url absolute
eval q{use URI};
error($@) if $@;
my $url=URI->new_abs($params{"xrds-location"}, $config{url});
push @{$metaheaders{$page}}, '<meta http-equiv="X-XRDS-Location" '.
'content="'.encode_entities($params{"xrds-location"}).'" />';
'content="'.encode_entities($url).'" />';
}
}
elsif ($key eq 'redir') {

6
debian/changelog vendored
View File

@ -1,3 +1,9 @@
ikiwiki (3.20100916) UNRELEASED; urgency=low
* meta: Ensure that the url specified by xrds-location is absolute.
-- Joey Hess <joeyh@debian.org> Sun, 19 Sep 2010 20:13:06 -0400
ikiwiki (3.20100915) unstable; urgency=low
* needsbuild hook interface changed; the hooks should now return