# HG changeset patch # User Gregory Szorc # Date 1517533927 28800 # Node ID 90ca4986616c3ce5895400b148fbf5cb892cfad1 # Parent 957e773614d0183c8f92f31adb0b926d9e3eb59a 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 diff -r 957e773614d0 -r 90ca4986616c hgext/largefiles/proto.py --- a/hgext/largefiles/proto.py Wed Feb 07 20:24:22 2018 -0800 +++ b/hgext/largefiles/proto.py Thu Feb 01 17:12:07 2018 -0800 @@ -40,7 +40,7 @@ tmpfp = util.atomictempfile(path, createmode=repo.store.createmode) try: - proto.getfile(tmpfp) + proto.forwardpayload(tmpfp) tmpfp._fp.seek(0) if sha != lfutil.hexsha1(tmpfp._fp): raise IOError(0, _('largefile contents do not match hash')) diff -r 957e773614d0 -r 90ca4986616c mercurial/wireproto.py --- a/mercurial/wireproto.py Wed Feb 07 20:24:22 2018 -0800 +++ b/mercurial/wireproto.py Thu Feb 01 17:12:07 2018 -0800 @@ -1008,7 +1008,7 @@ fp = os.fdopen(fd, pycompat.sysstr('wb+')) r = 0 try: - proto.getfile(fp) + proto.forwardpayload(fp) fp.seek(0) gen = exchange.readbundle(repo.ui, fp, None) if (isinstance(gen, changegroupmod.cg1unpacker) diff -r 957e773614d0 -r 90ca4986616c mercurial/wireprotoserver.py --- 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 )""" @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:: - - (\n)+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: + # + # \n + # ... + # 0\n _sshv1respondbytes(self._fout, b'') count = int(self._fin.readline()) while count: