mirror of
https://github.com/jcreek/CosmicClash.git
synced 2026-09-14 18:12:03 +00:00
feat: fence expired allocated reconnects
This commit is contained in:
@@ -54,9 +54,15 @@ func test_allocated_join_authorisation_is_allowlisted_and_bound_to_server() -> v
|
||||
wrong_claims["ServerID"] = "other-server"
|
||||
var wrong_token := Marshalls.raw_to_base64(JSON.stringify({"Authorisation": wrong_claims, "Signature": "trusted-signature"}).to_utf8_buffer())
|
||||
assert_true(not match_net._valid_join_authorisation(wrong_token), "wrong server claim is rejected")
|
||||
assert_true(not match_net.is_join_authorisation_active(token), "validated token is not active before admission")
|
||||
match_net._active_join_peers[token] = 42
|
||||
assert_true(match_net.is_join_authorisation_active(token), "active token is visible to the duplicate-admission guard")
|
||||
assert_eq(match_net._reserve_join_authorisation(token, 42), 1, "first admission receives generation one")
|
||||
assert_true(match_net.is_join_authorisation_active(token), "admitted token is active")
|
||||
assert_eq(match_net._reserve_join_authorisation(token, 43), -1, "active token cannot be admitted concurrently")
|
||||
match_net._remove_player(42)
|
||||
assert_true(not match_net.is_join_authorisation_active(token), "disconnect releases active token")
|
||||
assert_eq(match_net._reserve_join_authorisation(token, 43), 2, "reclaim receives the next server-owned generation")
|
||||
match_net._remove_player(43)
|
||||
match_net._join_history[token]["lost_at"] = Time.get_unix_time_from_system() - MatchNet.RECONNECT_GRACE_SECONDS - 1.0
|
||||
assert_eq(match_net._reserve_join_authorisation(token, 44), -1, "reclaim after the grace window is fenced")
|
||||
|
||||
|
||||
func test_allocated_join_authorisation_verifies_canonical_hmac() -> void:
|
||||
|
||||
Reference in New Issue
Block a user