diff options
Diffstat (limited to 'diplomacy/server/request_managers.py')
-rw-r--r-- | diplomacy/server/request_managers.py | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/diplomacy/server/request_managers.py b/diplomacy/server/request_managers.py index 59c0e88..ff93977 100644 --- a/diplomacy/server/request_managers.py +++ b/diplomacy/server/request_managers.py @@ -71,6 +71,9 @@ def on_clear_orders(server, request, connection_handler): """ level = verify_request(server, request, connection_handler, observer_role=False) assert_game_not_finished(level.game) + if not request.phase or request.phase != level.game.current_short_phase: + raise exceptions.ResponseException( + 'Invalid order phase, received %s, server phase is %s' % (request.phase, level.game.current_short_phase)) level.game.clear_orders(level.power_name) Notifier(server, ignore_addresses=[request.address_in_game]).notify_cleared_orders(level.game, level.power_name) @@ -988,6 +991,9 @@ def on_set_orders(server, request, connection_handler): """ level = verify_request(server, request, connection_handler, observer_role=False, require_power=True) assert_game_not_finished(level.game) + if not request.phase or request.phase != level.game.current_short_phase: + raise exceptions.ResponseException( + 'Invalid order phase, received %s, server phase is %s' % (request.phase, level.game.current_short_phase)) power = level.game.get_power(level.power_name) previous_wait = power.wait power.clear_orders() |