Mercurial > hg
diff mercurial/wireprotov2server.py @ 37782:99accae4cc59
wireproto: reimplement dispatch() for version 2 server
The code is minimal. I'm trying to create a cleaner break between
version 1 and version 2 server code.
Differential Revision: https://phab.mercurial-scm.org/D3397
author | Gregory Szorc <gregory.szorc@gmail.com> |
---|---|
date | Mon, 16 Apr 2018 22:00:52 -0700 |
parents | 352932a11905 |
children | 9d818539abfa |
line wrap: on
line diff
--- a/mercurial/wireprotov2server.py Mon Apr 16 21:52:33 2018 -0700 +++ b/mercurial/wireprotov2server.py Mon Apr 16 22:00:52 2018 -0700 @@ -296,7 +296,7 @@ res.setbodybytes(_('command in frame must match command in URL')) return True - rsp = wireproto.dispatch(repo, proto, command['command']) + rsp = dispatch(repo, proto, command['command']) res.status = b'200 OK' res.headers[b'Content-Type'] = FRAMINGTYPE @@ -328,6 +328,17 @@ raise error.ProgrammingError('unhandled event from reactor: %s' % action) +def getdispatchrepo(repo, proto, command): + return repo.filtered('served') + +def dispatch(repo, proto, command): + repo = getdispatchrepo(repo, proto, command) + + func, spec = wireproto.commandsv2[command] + args = proto.getargs(spec) + + return func(repo, proto, **args) + @zi.implementer(wireprototypes.baseprotocolhandler) class httpv2protocolhandler(object): def __init__(self, req, ui, args=None):