Show More
@@ -138,6 +138,46 b' class _multifile(object):' | |||
|
138 | 138 | f.seek(0) |
|
139 | 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 | 181 | class httppeer(wireproto.wirepeer): |
|
142 | 182 | def __init__(self, ui, path, url, opener, requestbuilder): |
|
143 | 183 | self.ui = ui |
@@ -152,41 +192,6 b' class httppeer(wireproto.wirepeer):' | |||
|
152 | 192 | h.close() |
|
153 | 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 | 195 | # Begin of ipeerconnection interface. |
|
191 | 196 | |
|
192 | 197 | def url(self): |
@@ -322,7 +327,7 b' class httppeer(wireproto.wirepeer):' | |||
|
322 | 327 | self.ui.debug("sending %d bytes\n" % size) |
|
323 | 328 | req.add_unredirected_header(r'Content-Length', r'%d' % size) |
|
324 | 329 | try: |
|
325 |
resp = self. |
|
|
330 | resp = sendrequest(self.ui, self._urlopener, req) | |
|
326 | 331 | except urlerr.httperror as inst: |
|
327 | 332 | if inst.code == 401: |
|
328 | 333 | raise error.Abort(_('authorization failed')) |
General Comments 0
You need to be logged in to leave comments.
Login now