Mercurial > public > mercurial-scm > hg-stable
comparison mercurial/httprepo.py @ 14149:091c86a77d19
httprepo: proper handling of invalid responses without content-type (issue2019)
This can currently be tested on http://sf.net/
author | Mads Kiilerich <mads@kiilerich.com> |
---|---|
date | Mon, 07 Mar 2011 14:47:30 +0100 |
parents | cc9366a3751b |
children | e7525a555a64 |
comparison
equal
deleted
inserted
replaced
14148:cc9366a3751b | 14149:091c86a77d19 |
---|---|
126 self.ui.status(_('real URL is %s\n') % resp_url) | 126 self.ui.status(_('real URL is %s\n') % resp_url) |
127 self._url = resp_url | 127 self._url = resp_url |
128 try: | 128 try: |
129 proto = resp.getheader('content-type') | 129 proto = resp.getheader('content-type') |
130 except AttributeError: | 130 except AttributeError: |
131 proto = resp.headers['content-type'] | 131 proto = resp.headers.get('content-type', '') |
132 | 132 |
133 safeurl = util.hidepassword(self._url) | 133 safeurl = util.hidepassword(self._url) |
134 # accept old "text/plain" and "application/hg-changegroup" for now | 134 # accept old "text/plain" and "application/hg-changegroup" for now |
135 if not (proto.startswith('application/mercurial-') or | 135 if not (proto.startswith('application/mercurial-') or |
136 proto.startswith('text/plain') or | 136 proto.startswith('text/plain') or |
137 proto.startswith('application/hg-changegroup')): | 137 proto.startswith('application/hg-changegroup')): |
138 self.ui.debug("requested URL: '%s'\n" % util.hidepassword(cu)) | 138 self.ui.debug("requested URL: '%s'\n" % util.hidepassword(cu)) |
139 raise error.RepoError( | 139 raise error.RepoError( |
140 _("'%s' does not appear to be an hg repository:\n" | 140 _("'%s' does not appear to be an hg repository:\n" |
141 "---%%<--- (%s)\n%s\n---%%<---\n") | 141 "---%%<--- (%s)\n%s\n---%%<---\n") |
142 % (safeurl, proto, resp.read())) | 142 % (safeurl, proto or 'no content-type', resp.read())) |
143 | 143 |
144 if proto.startswith('application/mercurial-'): | 144 if proto.startswith('application/mercurial-'): |
145 try: | 145 try: |
146 version = proto.split('-', 1)[1] | 146 version = proto.split('-', 1)[1] |
147 version_info = tuple([int(n) for n in version.split('.')]) | 147 version_info = tuple([int(n) for n in version.split('.')]) |