mirror of
https://github.com/jcreek/CosmicClash.git
synced 2026-09-11 08:23:45 +00:00
fix(multiplayer): harden live registration verification
This commit is contained in:
@@ -72,10 +72,10 @@ const AdvanceServerRegistrationSQL = `WITH matched AS (
|
||||
WHERE match_id = $1 AND server_id = $2 AND state = $3 AND protocol_version = $7
|
||||
AND EXISTS (SELECT 1 FROM allocations WHERE match_id = $1 AND server_id = $2 AND allocation_id = $5 AND protocol_version = $7 AND state = 'ALLOCATED')
|
||||
AND ($4 <> 'ASSIGNMENT_READY' OR (SELECT count(*) FROM assignments WHERE match_id = $1 AND expires_at > $6) = (SELECT count(*) FROM match_participants WHERE match_id = $1))
|
||||
RETURNING match_id
|
||||
RETURNING match_id, revision
|
||||
), advanced AS (
|
||||
UPDATE queue_tickets q
|
||||
SET state = $4, revision = revision + 1
|
||||
SET state = $4, revision = q.revision + 1
|
||||
FROM match_participants mp JOIN matched m ON m.match_id = mp.match_id
|
||||
WHERE q.ticket_id = mp.ticket_id AND q.player_id = mp.player_id AND q.state = $3
|
||||
RETURNING q.ticket_id
|
||||
|
||||
Reference in New Issue
Block a user