Improve url parsing to handle some urls containing illegal [] characters in their paths.
Ie, "https://archive.org/download/zoom-2/Zoom - Release 2 (1996)(Active Software)[!].iso"
This commit is contained in:
parent
866982aa3a
commit
829007d629
3 changed files with 14 additions and 2 deletions
|
@ -139,7 +139,7 @@ startWeb relaxed optfile pathdepth s = go $ fromMaybe bad $ parseURI urlstring
|
||||||
where
|
where
|
||||||
(urlstring, downloader) = getDownloader s
|
(urlstring, downloader) = getDownloader s
|
||||||
bad = fromMaybe (error $ "bad url " ++ urlstring) $
|
bad = fromMaybe (error $ "bad url " ++ urlstring) $
|
||||||
parseURI $ escapeURIString isUnescapedInURI urlstring
|
Url.parseURIRelaxed $ urlstring
|
||||||
go url = case downloader of
|
go url = case downloader of
|
||||||
QuviDownloader -> usequvi
|
QuviDownloader -> usequvi
|
||||||
_ ->
|
_ ->
|
||||||
|
|
|
@ -263,7 +263,17 @@ download' quiet url file uo = do
|
||||||
|
|
||||||
{- Allows for spaces and other stuff in urls, properly escaping them. -}
|
{- Allows for spaces and other stuff in urls, properly escaping them. -}
|
||||||
parseURIRelaxed :: URLString -> Maybe URI
|
parseURIRelaxed :: URLString -> Maybe URI
|
||||||
parseURIRelaxed = parseURI . escapeURIString isAllowedInURI
|
parseURIRelaxed s = maybe (go escapemore) Just $ go isAllowedInURI
|
||||||
|
where
|
||||||
|
go f = parseURI $ escapeURIString f s
|
||||||
|
{- Some characters like '[' are allowed in eg, the address of
|
||||||
|
- an uri, but cannot appear unescaped elsewhere in the uri.
|
||||||
|
- If parsing fails with those characters unescaped, fall back
|
||||||
|
- to escaping them too.
|
||||||
|
-}
|
||||||
|
escapemore '[' = False
|
||||||
|
escapemore ']' = False
|
||||||
|
escapemore c = isAllowedInURI c
|
||||||
|
|
||||||
hAcceptEncoding :: CI.CI B.ByteString
|
hAcceptEncoding :: CI.CI B.ByteString
|
||||||
hAcceptEncoding = "Accept-Encoding"
|
hAcceptEncoding = "Accept-Encoding"
|
||||||
|
|
2
debian/changelog
vendored
2
debian/changelog
vendored
|
@ -28,6 +28,8 @@ git-annex (5.20150529) UNRELEASED; urgency=medium
|
||||||
* Fix bug that prevented enumerating locally present objects in repos
|
* Fix bug that prevented enumerating locally present objects in repos
|
||||||
tuned with annex.tune.objecthash1=true.
|
tuned with annex.tune.objecthash1=true.
|
||||||
Fixes: unused, object count in info, unannex.
|
Fixes: unused, object count in info, unannex.
|
||||||
|
* Improve url parsing to handle some urls containing illegal []
|
||||||
|
characters in their paths.
|
||||||
|
|
||||||
-- Joey Hess <id@joeyh.name> Sat, 30 May 2015 02:07:18 -0400
|
-- Joey Hess <id@joeyh.name> Sat, 30 May 2015 02:07:18 -0400
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue