# HG changeset patch # User Gregory Szorc # Date 2018-01-31 19:09:07 # Node ID ef3a24a023ec10dd16c1feabc91dc3c8ed5655c9 # Parent 69d7fcd91696f42303085ffb3a6d1f26b5a36ee9 wireprotoserver: rename hgweb.protocol to wireprotoserver (API) The HTTP wire protocol server / response handler is currently defined in the hgweb sub-package. That only kind of makes sense. hgweb does contain most of the HTTP server code. However, hgweb is more tailored for providing HTTP server and WSGI scaffolding and serving hgweb requests. The wire protocol is kind of its own beast. In addition, the code for HTTP and SSH wire protocol handling is actually pretty small and it needs to stay in sync to ensure parity between the transport implementations. We rename mercurial/hgweb/protocol.py to mercurial/wireprotoserver.py. The new module will eventually become the home of the SSH handler as well. .. api:: Content from mercurial.hgweb.protocol has been moved to mercurial.wireprotoserver. Differential Revision: https://phab.mercurial-scm.org/D1965 diff --git a/mercurial/hgweb/hgweb_mod.py b/mercurial/hgweb/hgweb_mod.py --- a/mercurial/hgweb/hgweb_mod.py +++ b/mercurial/hgweb/hgweb_mod.py @@ -36,10 +36,10 @@ from .. import ( templater, ui as uimod, util, + wireprotoserver, ) from . import ( - protocol, webcommands, webutil, wsgicgi, @@ -362,13 +362,13 @@ class hgweb(object): # and the clients always use the old URL structure cmd = pycompat.sysbytes(req.form.get(r'cmd', [r''])[0]) - if protocol.iscmd(cmd): + if wireprotoserver.iscmd(cmd): try: if query: raise ErrorResponse(HTTP_NOT_FOUND) if cmd in perms: self.check_perm(rctx, req, perms[cmd]) - return protocol.call(rctx.repo, req, cmd) + return wireprotoserver.call(rctx.repo, req, cmd) except ErrorResponse as inst: # A client that sends unbundle without 100-continue will # break if we respond early. @@ -379,7 +379,7 @@ class hgweb(object): req.drain() else: req.headers.append((r'Connection', r'Close')) - req.respond(inst, protocol.HGTYPE, + req.respond(inst, wireprotoserver.HGTYPE, body='0\n%s\n' % inst) return '' diff --git a/mercurial/hgweb/protocol.py b/mercurial/wireprotoserver.py rename from mercurial/hgweb/protocol.py rename to mercurial/wireprotoserver.py --- a/mercurial/hgweb/protocol.py +++ b/mercurial/wireprotoserver.py @@ -1,4 +1,3 @@ -# # Copyright 21 May 2005 - (c) 2005 Jake Edge # Copyright 2005-2007 Matt Mackall # @@ -10,16 +9,16 @@ from __future__ import absolute_import import cgi import struct -from .common import ( +from .hgweb.common import ( HTTP_OK, ) - -from .. import ( +from . import ( error, pycompat, util, wireproto, ) + stringio = util.stringio urlerr = util.urlerr