diff -r c22fd3c4c23e -r 0b7475ea38cf mercurial/wireprotoserver.py --- a/mercurial/wireprotoserver.py Wed Mar 28 10:52:40 2018 -0700 +++ b/mercurial/wireprotoserver.py Wed Mar 28 14:55:13 2018 -0700 @@ -12,6 +12,9 @@ import threading from .i18n import _ +from .thirdparty import ( + cbor, +) from .thirdparty.zope import ( interface as zi, ) @@ -563,6 +566,12 @@ action, meta = reactor.onbytesresponseready(outstream, command['requestid'], rsp.data) + elif isinstance(rsp, wireprototypes.cborresponse): + encoded = cbor.dumps(rsp.value, canonical=True) + action, meta = reactor.onbytesresponseready(outstream, + command['requestid'], + encoded, + iscbor=True) else: action, meta = reactor.onapplicationerror( _('unhandled response type from wire proto command')) @@ -600,10 +609,10 @@ for k in args.split(): if k == '*': raise NotImplementedError('do not support * args') - else: + elif k in self._args: data[k] = self._args[k] - return [data[k] for k in args.split()] + return data def getprotocaps(self): # Protocol capabilities are currently not implemented for HTTP V2.