Show More
@@ -138,6 +138,46 class _multifile(object): | |||||
138 | f.seek(0) |
|
138 | f.seek(0) | |
139 | self._index = 0 |
|
139 | self._index = 0 | |
140 |
|
140 | |||
|
141 | def sendrequest(ui, opener, req): | |||
|
142 | """Send a prepared HTTP request. | |||
|
143 | ||||
|
144 | Returns the response object. | |||
|
145 | """ | |||
|
146 | if (ui.debugflag | |||
|
147 | and ui.configbool('devel', 'debug.peer-request')): | |||
|
148 | dbg = ui.debug | |||
|
149 | line = 'devel-peer-request: %s\n' | |||
|
150 | dbg(line % '%s %s' % (req.get_method(), req.get_full_url())) | |||
|
151 | hgargssize = None | |||
|
152 | ||||
|
153 | for header, value in sorted(req.header_items()): | |||
|
154 | if header.startswith('X-hgarg-'): | |||
|
155 | if hgargssize is None: | |||
|
156 | hgargssize = 0 | |||
|
157 | hgargssize += len(value) | |||
|
158 | else: | |||
|
159 | dbg(line % ' %s %s' % (header, value)) | |||
|
160 | ||||
|
161 | if hgargssize is not None: | |||
|
162 | dbg(line % ' %d bytes of commands arguments in headers' | |||
|
163 | % hgargssize) | |||
|
164 | ||||
|
165 | if req.has_data(): | |||
|
166 | data = req.get_data() | |||
|
167 | length = getattr(data, 'length', None) | |||
|
168 | if length is None: | |||
|
169 | length = len(data) | |||
|
170 | dbg(line % ' %d bytes of data' % length) | |||
|
171 | ||||
|
172 | start = util.timer() | |||
|
173 | ||||
|
174 | res = opener.open(req) | |||
|
175 | if ui.configbool('devel', 'debug.peer-request'): | |||
|
176 | dbg(line % ' finished in %.4f seconds (%s)' | |||
|
177 | % (util.timer() - start, res.code)) | |||
|
178 | ||||
|
179 | return res | |||
|
180 | ||||
141 | class httppeer(wireproto.wirepeer): |
|
181 | class httppeer(wireproto.wirepeer): | |
142 | def __init__(self, ui, path, url, opener, requestbuilder): |
|
182 | def __init__(self, ui, path, url, opener, requestbuilder): | |
143 | self.ui = ui |
|
183 | self.ui = ui | |
@@ -152,41 +192,6 class httppeer(wireproto.wirepeer): | |||||
152 | h.close() |
|
192 | h.close() | |
153 | getattr(h, "close_all", lambda: None)() |
|
193 | getattr(h, "close_all", lambda: None)() | |
154 |
|
194 | |||
155 | def _openurl(self, req): |
|
|||
156 | if (self.ui.debugflag |
|
|||
157 | and self.ui.configbool('devel', 'debug.peer-request')): |
|
|||
158 | dbg = self.ui.debug |
|
|||
159 | line = 'devel-peer-request: %s\n' |
|
|||
160 | dbg(line % '%s %s' % (req.get_method(), req.get_full_url())) |
|
|||
161 | hgargssize = None |
|
|||
162 |
|
||||
163 | for header, value in sorted(req.header_items()): |
|
|||
164 | if header.startswith('X-hgarg-'): |
|
|||
165 | if hgargssize is None: |
|
|||
166 | hgargssize = 0 |
|
|||
167 | hgargssize += len(value) |
|
|||
168 | else: |
|
|||
169 | dbg(line % ' %s %s' % (header, value)) |
|
|||
170 |
|
||||
171 | if hgargssize is not None: |
|
|||
172 | dbg(line % ' %d bytes of commands arguments in headers' |
|
|||
173 | % hgargssize) |
|
|||
174 |
|
||||
175 | if req.has_data(): |
|
|||
176 | data = req.get_data() |
|
|||
177 | length = getattr(data, 'length', None) |
|
|||
178 | if length is None: |
|
|||
179 | length = len(data) |
|
|||
180 | dbg(line % ' %d bytes of data' % length) |
|
|||
181 |
|
||||
182 | start = util.timer() |
|
|||
183 |
|
||||
184 | ret = self._urlopener.open(req) |
|
|||
185 | if self.ui.configbool('devel', 'debug.peer-request'): |
|
|||
186 | dbg(line % ' finished in %.4f seconds (%s)' |
|
|||
187 | % (util.timer() - start, ret.code)) |
|
|||
188 | return ret |
|
|||
189 |
|
||||
190 | # Begin of ipeerconnection interface. |
|
195 | # Begin of ipeerconnection interface. | |
191 |
|
196 | |||
192 | def url(self): |
|
197 | def url(self): | |
@@ -322,7 +327,7 class httppeer(wireproto.wirepeer): | |||||
322 | self.ui.debug("sending %d bytes\n" % size) |
|
327 | self.ui.debug("sending %d bytes\n" % size) | |
323 | req.add_unredirected_header(r'Content-Length', r'%d' % size) |
|
328 | req.add_unredirected_header(r'Content-Length', r'%d' % size) | |
324 | try: |
|
329 | try: | |
325 |
resp = self. |
|
330 | resp = sendrequest(self.ui, self._urlopener, req) | |
326 | except urlerr.httperror as inst: |
|
331 | except urlerr.httperror as inst: | |
327 | if inst.code == 401: |
|
332 | if inst.code == 401: | |
328 | raise error.Abort(_('authorization failed')) |
|
333 | raise error.Abort(_('authorization failed')) |
General Comments 0
You need to be logged in to leave comments.
Login now