changeset 11618:83070a9cd526

protocol: command must be checked before passing in
author Dirkjan Ochtman <dirkjan@ochtman.nl>
date Fri, 16 Jul 2010 19:01:34 +0200
parents 9f10adb70a04
children 48667abddd60
files mercurial/hgweb/protocol.py mercurial/sshserver.py mercurial/wireproto.py
diffstat 3 files changed, 4 insertions(+), 5 deletions(-) [+]
line wrap: on
line diff
--- a/mercurial/hgweb/protocol.py	Tue Jul 20 10:05:30 2010 +0200
+++ b/mercurial/hgweb/protocol.py	Fri Jul 16 19:01:34 2010 +0200
@@ -67,5 +67,5 @@
 
 def call(repo, req, cmd):
     p = webproto(req)
-    r = wireproto.dispatch(repo, p, cmd)
+    wireproto.dispatch(repo, p, cmd)
     yield p.response
--- a/mercurial/sshserver.py	Tue Jul 20 10:05:30 2010 +0200
+++ b/mercurial/sshserver.py	Fri Jul 16 19:01:34 2010 +0200
@@ -93,7 +93,9 @@
 
     def serve_one(self):
         cmd = self.fin.readline()[:-1]
-        if cmd and not wireproto.dispatch(self.repo, self, cmd):
+        if cmd and cmd in wireproto.commands:
+            wireproto.dispatch(self.repo, self, cmd)
+        elif cmd:
             impl = getattr(self, 'do_' + cmd, None)
             if impl:
                 r = impl()
--- a/mercurial/wireproto.py	Tue Jul 20 10:05:30 2010 +0200
+++ b/mercurial/wireproto.py	Fri Jul 16 19:01:34 2010 +0200
@@ -134,14 +134,11 @@
 # server side
 
 def dispatch(repo, proto, command):
-    if command not in commands:
-        return False
     func, spec = commands[command]
     args = proto.getargs(spec)
     r = func(repo, proto, *args)
     if r != None:
         proto.respond(r)
-    return True
 
 def between(repo, proto, pairs):
     pairs = [decodelist(p, '-') for p in pairs.split(" ")]