summaryrefslogtreecommitdiff
path: root/distbuild/initiator_connection.py
diff options
context:
space:
mode:
authorLauren Perry <lauren.perry@codethink.co.uk>2015-02-13 13:23:16 +0000
committerLauren Perry <lauren.perry@codethink.co.uk>2015-02-25 12:21:58 +0000
commit44124646579f5d7f0579bc70395723d4c0bdbcb5 (patch)
tree73ca146a896f70b3f78976b2fbbd3d52cdecbdf7 /distbuild/initiator_connection.py
parent88e8767791d85aa0d01715f04b7e0f311f54759e (diff)
downloadmorph-44124646579f5d7f0579bc70395723d4c0bdbcb5.tar.gz
Add protocol versioning for distbuild systems
Diffstat (limited to 'distbuild/initiator_connection.py')
-rw-r--r--distbuild/initiator_connection.py12
1 files changed, 12 insertions, 0 deletions
diff --git a/distbuild/initiator_connection.py b/distbuild/initiator_connection.py
index c7f9dec7..86df28f1 100644
--- a/distbuild/initiator_connection.py
+++ b/distbuild/initiator_connection.py
@@ -102,6 +102,18 @@ class InitiatorConnection(distbuild.StateMachine):
try:
if event.msg['type'] == 'build-request':
+ if (event.msg.get('protocol_version') !=
+ distbuild.protocol.VERSION):
+ msg = distbuild.message('build-failed',
+ id=event.msg['id'],
+ reason=('Protocol version mismatch between server & '
+ 'initiator: distbuild network uses distbuild '
+ 'protocol version %i, but client uses version'
+ ' %i.', distbuild.protocol.VERSION,
+ event.msg.get('protocol_version')))
+ self.jm.send(msg)
+ self._log_send(msg)
+ return
new_id = self._idgen.next()
self.our_ids.add(new_id)
self._route_map.add(event.msg['id'], new_id)