Double-slashes in URLs
Jon TURNEY
jon.turney@dronecode.org.uk
Tue Sep 22 13:39:00 GMT 2015
On 17/09/2015 16:18, Michael Bisbjerg wrote:
> I noticed once I set up a mirror of my own, that Cygwin Setup will
> prepend all it's URL's with a double-slash. This does not seem to be
> intentional, and I found the place in the sources where I believe the
> error to be.
>
> On line 160 of "download.cc", we see that the "n->key" is the source
> of the repository, including a "/", as it is used as the name of the
> local cache, which always has a "%2f" in its name. That key is then
> used on line 165 in "get_url_to_file", where it is concatenated with
> another slash and "pkgsource.Canonical" to make the final URL.
This analysis seems correct. It would be nice if you went a bit further
and confirmed that the URL is always canonicalized to end with a '/'.
> My (untested) patch removes this slash, so that the resulting URL's
> will be with a single slash.
Thanks.
This looks correct, and appears to work.
In future, please try to use git format-patch, this makes it much
quicker and easier to apply the patch with the correct attribution.
> ------ PATCH -----
> diff --git a/download.cc b/download.cc
> index a5aebe0..e319ed4 100644
> --- a/download.cc
> +++ b/download.cc
> @@ -162,7 +162,7 @@ download_one (packagesource & pkgsource, HWND owner)
> pkgsource.Canonical ();
> io_stream::mkpath_p (PATH_TO_FILE, "file://" + local, 0);
>
> - if (get_url_to_file(n->key + "/" + pkgsource.Canonical (),
> + if (get_url_to_file(n->key + pkgsource.Canonical (),
> local + ".tmp", pkgsource.size, owner))
> {
> /* FIXME: note new source ? */
> ------ PATCH -----
More information about the Cygwin-apps
mailing list