Mercurial > public > mercurial-scm > hg
comparison mercurial/httprepo.py @ 14503:4e958f2a193f stable
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 | bda5f35fbf67 |
children | c59968e8b579 |
comparison
equal
deleted
inserted
replaced
14502:deb82fdda94e | 14503:4e958f2a193f |
---|---|
105 self.ui.status(_('real URL is %s\n') % resp_url) | 105 self.ui.status(_('real URL is %s\n') % resp_url) |
106 self._url = resp_url | 106 self._url = resp_url |
107 try: | 107 try: |
108 proto = resp.getheader('content-type') | 108 proto = resp.getheader('content-type') |
109 except AttributeError: | 109 except AttributeError: |
110 proto = resp.headers['content-type'] | 110 proto = resp.headers.get('content-type', '') |
111 | 111 |
112 safeurl = url.hidepassword(self._url) | 112 safeurl = url.hidepassword(self._url) |
113 # accept old "text/plain" and "application/hg-changegroup" for now | 113 # accept old "text/plain" and "application/hg-changegroup" for now |
114 if not (proto.startswith('application/mercurial-') or | 114 if not (proto.startswith('application/mercurial-') or |
115 proto.startswith('text/plain') or | 115 proto.startswith('text/plain') or |
116 proto.startswith('application/hg-changegroup')): | 116 proto.startswith('application/hg-changegroup')): |
117 self.ui.debug("requested URL: '%s'\n" % url.hidepassword(cu)) | 117 self.ui.debug("requested URL: '%s'\n" % url.hidepassword(cu)) |
118 raise error.RepoError( | 118 raise error.RepoError( |
119 _("'%s' does not appear to be an hg repository:\n" | 119 _("'%s' does not appear to be an hg repository:\n" |
120 "---%%<--- (%s)\n%s\n---%%<---\n") | 120 "---%%<--- (%s)\n%s\n---%%<---\n") |
121 % (safeurl, proto, resp.read())) | 121 % (safeurl, proto or 'no content-type', resp.read())) |
122 | 122 |
123 if proto.startswith('application/mercurial-'): | 123 if proto.startswith('application/mercurial-'): |
124 try: | 124 try: |
125 version = proto.split('-', 1)[1] | 125 version = proto.split('-', 1)[1] |
126 version_info = tuple([int(n) for n in version.split('.')]) | 126 version_info = tuple([int(n) for n in version.split('.')]) |