comparison tests/sshprotoext.py @ 36065:bf676267f64f

wireprotoserver: split ssh protocol handler and server We want to formalize the interface for protocol handlers. Today, server functionality (which is domain specific) is interleaved with protocol handling functionality (which conforms to a generic interface) in the sshserver class. This commit splits the ssh protocol handling code out of the sshserver class. Differential Revision: https://phab.mercurial-scm.org/D2080
author Gregory Szorc <gregory.szorc@gmail.com>
date Wed, 07 Feb 2018 20:17:05 -0800
parents 5767664d39a5
children 2f7290555c96
comparison
equal deleted inserted replaced
36064:5767664d39a5 36065:bf676267f64f
46 assert l == b'hello\n' 46 assert l == b'hello\n'
47 # Respond to unknown commands with an empty reply. 47 # Respond to unknown commands with an empty reply.
48 wireprotoserver._sshv1respondbytes(self._fout, b'') 48 wireprotoserver._sshv1respondbytes(self._fout, b'')
49 l = self._fin.readline() 49 l = self._fin.readline()
50 assert l == b'between\n' 50 assert l == b'between\n'
51 rsp = wireproto.dispatch(self._repo, self, b'between') 51 rsp = wireproto.dispatch(self._repo, self._proto, b'between')
52 wireprotoserver._sshv1respondbytes(self._fout, rsp) 52 wireprotoserver._sshv1respondbytes(self._fout, rsp)
53 53
54 super(prehelloserver, self).serve_forever() 54 super(prehelloserver, self).serve_forever()
55 55
56 class upgradev2server(wireprotoserver.sshserver): 56 class upgradev2server(wireprotoserver.sshserver):
71 assert l == 'pairs 81\n' 71 assert l == 'pairs 81\n'
72 self._fin.read(81) 72 self._fin.read(81)
73 73
74 # Send the upgrade response. 74 # Send the upgrade response.
75 self._fout.write(b'upgraded %s %s\n' % (token, name)) 75 self._fout.write(b'upgraded %s %s\n' % (token, name))
76 servercaps = wireproto.capabilities(self._repo, self) 76 servercaps = wireproto.capabilities(self._repo, self._proto)
77 rsp = b'capabilities: %s' % servercaps 77 rsp = b'capabilities: %s' % servercaps
78 self._fout.write(b'%d\n' % len(rsp)) 78 self._fout.write(b'%d\n' % len(rsp))
79 self._fout.write(rsp) 79 self._fout.write(rsp)
80 self._fout.write(b'\n') 80 self._fout.write(b'\n')
81 self._fout.flush() 81 self._fout.flush()