mercurial/httppeer.py
changeset 50441 315f537627c1
parent 50437 3a2df812e1c7
child 50578 35b274cba81d
equal deleted inserted replaced
50440:3b199593fedd 50441:315f537627c1
   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)()
   449             self._caps,
   452             self._caps,
   450             self.capable,
   453             self.capable,
   451             self._url,
   454             self._url,
   452             cmd,
   455             cmd,
   453             args,
   456             args,
       
   457             self._remotehidden,
   454         )
   458         )
   455 
   459 
   456         resp = sendrequest(self.ui, self._urlopener, req)
   460         resp = sendrequest(self.ui, self._urlopener, req)
   457 
   461 
   458         self._url, ct, resp = parsev1commandresponse(
   462         self._url, ct, resp = parsev1commandresponse(