diff options
| author | Christopher Larson <kergoth@gmail.com> | 2012-05-21 16:34:49 -0700 |
|---|---|---|
| committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2012-05-22 14:56:16 +0100 |
| commit | 532f96ddcc2e3641db25b08d4ca93ce4d196a984 (patch) | |
| tree | 2ce79df367143b7e32a1574196487639d4297ec8 | |
| parent | 5c880fb3018629c00783a9869bc48685d23b58b8 (diff) | |
| download | poky-532f96ddcc2e3641db25b08d4ca93ce4d196a984.tar.gz | |
fetch2: quote/unquote url paths
This ensures we can handle things like %-encoded characters in the path
portion of urls.
(Bitbake rev: b1dbc24ebcc4e5100c32568c2c41fd982fb4bcce)
Signed-off-by: Christopher Larson <kergoth@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
| -rw-r--r-- | bitbake/lib/bb/fetch2/__init__.py | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/bitbake/lib/bb/fetch2/__init__.py b/bitbake/lib/bb/fetch2/__init__.py index 6cd389a296..0b976c4079 100644 --- a/bitbake/lib/bb/fetch2/__init__.py +++ b/bitbake/lib/bb/fetch2/__init__.py | |||
| @@ -28,6 +28,7 @@ from __future__ import absolute_import | |||
| 28 | from __future__ import print_function | 28 | from __future__ import print_function |
| 29 | import os, re | 29 | import os, re |
| 30 | import logging | 30 | import logging |
| 31 | import urllib | ||
| 31 | import bb.persist_data, bb.utils | 32 | import bb.persist_data, bb.utils |
| 32 | from bb import data | 33 | from bb import data |
| 33 | 34 | ||
| @@ -147,14 +148,14 @@ def decodeurl(url): | |||
| 147 | s1, s2 = s.split('=') | 148 | s1, s2 = s.split('=') |
| 148 | p[s1] = s2 | 149 | p[s1] = s2 |
| 149 | 150 | ||
| 150 | return (type, host, path, user, pswd, p) | 151 | return type, host, urllib.unquote(path), user, pswd, p |
| 151 | 152 | ||
| 152 | def encodeurl(decoded): | 153 | def encodeurl(decoded): |
| 153 | """Encodes a URL from tokens (scheme, network location, path, | 154 | """Encodes a URL from tokens (scheme, network location, path, |
| 154 | user, password, parameters). | 155 | user, password, parameters). |
| 155 | """ | 156 | """ |
| 156 | 157 | ||
| 157 | (type, host, path, user, pswd, p) = decoded | 158 | type, host, path, user, pswd, p = decoded |
| 158 | 159 | ||
| 159 | if not path: | 160 | if not path: |
| 160 | raise MissingParameterError('path', "encoded from the data %s" % str(decoded)) | 161 | raise MissingParameterError('path', "encoded from the data %s" % str(decoded)) |
| @@ -168,7 +169,7 @@ def encodeurl(decoded): | |||
| 168 | url += "@" | 169 | url += "@" |
| 169 | if host and type != "file": | 170 | if host and type != "file": |
| 170 | url += "%s" % host | 171 | url += "%s" % host |
| 171 | url += "%s" % path | 172 | url += "%s" % urllib.quote(path) |
| 172 | if p: | 173 | if p: |
| 173 | for parm in p: | 174 | for parm in p: |
| 174 | url += ";%s=%s" % (parm, p[parm]) | 175 | url += ";%s=%s" % (parm, p[parm]) |
