Mercurial > public > mercurial-scm > hg-stable
diff mercurial/wireprotoserver.py @ 36108:90ca4986616c
wireprotoserver: rename getfile() to forwardpayload() (API)
"file" can mean a lot of things. Let's rename the interface
method to something more descriptive.
While I was here, I moved the docs about the payload format to
the implementation of the SSH protocol, because it was lying
about what the HTTP payload looked like.
Differential Revision: https://phab.mercurial-scm.org/D2085
author | Gregory Szorc <gregory.szorc@gmail.com> |
---|---|
date | Thu, 01 Feb 2018 17:12:07 -0800 |
parents | 957e773614d0 |
children | 038bcb759b75 |
line wrap: on
line diff
--- a/mercurial/wireprotoserver.py Wed Feb 07 20:24:22 2018 -0800 +++ b/mercurial/wireprotoserver.py Thu Feb 01 17:12:07 2018 -0800 @@ -64,14 +64,10 @@ returns a list of values (same order as <args>)""" @abc.abstractmethod - def getfile(self, fp): - """write the whole content of a file into a file like object + def forwardpayload(self, fp): + """Read the raw payload and forward to a file. - The file is in the form:: - - (<chunk-size>\n<chunk>)+0\n - - chunk size is the ascii version of the int. + The payload is read in full before the function returns. """ @abc.abstractmethod @@ -145,7 +141,7 @@ args.update(cgi.parse_qs(argvalue, keep_blank_values=True)) return args - def getfile(self, fp): + def forwardpayload(self, fp): length = int(self._req.env[r'CONTENT_LENGTH']) # If httppostargs is used, we need to read Content-Length # minus the amount that was consumed by args. @@ -392,7 +388,12 @@ data[arg] = val return [data[k] for k in keys] - def getfile(self, fpout): + def forwardpayload(self, fpout): + # The file is in the form: + # + # <chunk size>\n<chunk> + # ... + # 0\n _sshv1respondbytes(self._fout, b'') count = int(self._fin.readline()) while count: