106 f.seek(0) |
106 f.seek(0) |
107 self._index = 0 |
107 self._index = 0 |
108 |
108 |
109 |
109 |
110 def makev1commandrequest( |
110 def makev1commandrequest( |
111 ui, requestbuilder, caps, capablefn, repobaseurl, cmd, args |
111 ui, |
|
112 requestbuilder, |
|
113 caps, |
|
114 capablefn, |
|
115 repobaseurl, |
|
116 cmd, |
|
117 args, |
|
118 remotehidden=False, |
112 ): |
119 ): |
113 """Make an HTTP request to run a command for a version 1 client. |
120 """Make an HTTP request to run a command for a version 1 client. |
114 |
121 |
115 ``caps`` is a set of known server capabilities. The value may be |
122 ``caps`` is a set of known server capabilities. The value may be |
116 None if capabilities are not yet known. |
123 None if capabilities are not yet known. |
125 data = args.pop(b'data', None) |
132 data = args.pop(b'data', None) |
126 headers = args.pop(b'headers', {}) |
133 headers = args.pop(b'headers', {}) |
127 |
134 |
128 ui.debug(b"sending %s command\n" % cmd) |
135 ui.debug(b"sending %s command\n" % cmd) |
129 q = [(b'cmd', cmd)] |
136 q = [(b'cmd', cmd)] |
|
137 if remotehidden: |
|
138 q.append(('access-hidden', '1')) |
130 headersize = 0 |
139 headersize = 0 |
131 # Important: don't use self.capable() here or else you end up |
140 # Important: don't use self.capable() here or else you end up |
132 # with infinite recursion when trying to look up capabilities |
141 # with infinite recursion when trying to look up capabilities |
133 # for the first time. |
142 # for the first time. |
134 postargsok = caps is not None and b'httppostargs' in caps |
143 postargsok = caps is not None and b'httppostargs' in caps |
383 class httppeer(wireprotov1peer.wirepeer): |
392 class httppeer(wireprotov1peer.wirepeer): |
384 def __init__( |
393 def __init__( |
385 self, ui, path, url, opener, requestbuilder, caps, remotehidden=False |
394 self, ui, path, url, opener, requestbuilder, caps, remotehidden=False |
386 ): |
395 ): |
387 super().__init__(ui, path=path, remotehidden=remotehidden) |
396 super().__init__(ui, path=path, remotehidden=remotehidden) |
388 if remotehidden: |
|
389 msg = _( |
|
390 b"ignoring `--remote-hidden` request\n" |
|
391 b"(access to hidden changeset for http peers not " |
|
392 b"supported yet)\n" |
|
393 ) |
|
394 ui.warn(msg) |
|
395 self._url = url |
397 self._url = url |
396 self._caps = caps |
398 self._caps = caps |
397 self.limitedarguments = caps is not None and b'httppostargs' not in caps |
399 self.limitedarguments = caps is not None and b'httppostargs' not in caps |
398 self._urlopener = opener |
400 self._urlopener = opener |
399 self._requestbuilder = requestbuilder |
401 self._requestbuilder = requestbuilder |
|
402 self._remotehidden = remotehidden |
400 |
403 |
401 def __del__(self): |
404 def __del__(self): |
402 for h in self._urlopener.handlers: |
405 for h in self._urlopener.handlers: |
403 h.close() |
406 h.close() |
404 getattr(h, "close_all", lambda: None)() |
407 getattr(h, "close_all", lambda: None)() |