update message id link to use https..

John-Mark Gurney jmg at funkthat.com
Mon Nov 5 16:42:18 UTC 2018


Eitan Adler wrote this message on Sat, Nov 03, 2018 at 15:23 -0700:
> On Sat, 3 Nov 2018 at 11:13, John-Mark Gurney <jmg at funkthat.com> wrote:
> >
> > I'd like to apply the following patch, so that the link at the bottom
> > of messages is by default https instead of http:
> >
> > Any objections?
> 
> LGTM

So, looks like I discovered a minor bug in our redirection part of mid.cgi.

do a:
fetch https://docs.freebsd.org/cgi/mid.cgi?20181101174032.GN81143@FreeBSD.org

and you'll get forbidden.  It turns out that we are sending a scheme relative
URL in the 302 Moved response, so apparently most web browsers handle this
correctly, BUT, if you read the RFC for HTTP/1.1, Location needs to be an
absoluteURI:
https://tools.ietf.org/html/rfc2616#section-14.30

and an absoluteURI per https://tools.ietf.org/html/rfc2396 requires a scheme..

Fetch doesn't handle this correctly, and per running w/ -vvv, you see that
it tries to fetch: https://docs.freebsd.org//docs.freebsd.org/cgi/getmsg.cgi?fetch=0+0+/usr/local/www/mailindex/archive/2018/freebsd-snapshots/20181104.freebsd-snapshots

and it goes on another redirect...

So, any objections to me adding https: to the front of the redirect?

This is fine, as we now redirect http to https for docs.freebsd.org
anyway, so we don't need to add protocol detction...

Comments?

I don't know how to test this to make sure I don't break anything.

Looks like the following patch should fix this:
Index: mid.cgi
===================================================================
--- mid.cgi	(revision 52381)
+++ mid.cgi	(working copy)
@@ -89,7 +89,7 @@
 	local($id, $file, $start) = split($", $idlist[0]);
 	$location =~ s%/[^/]+$%%;
 	local($host) = $ENV{'HTTP_HOST'};
-	$location = '//' . $host . $location;
+	$location = 'https://' . $host . $location;
 	$start =~ s/\s+$//;
 
 	print "Location: $location/getmsg.cgi?fetch=$start+0+" .

-- 
  John-Mark Gurney				Voice: +1 415 225 5579

     "All that I will do, has been done, All that I have, has not."


More information about the freebsd-doc mailing list