From c203cdf6846c162da3e9269726edc3b0024fb3dd Mon Sep 17 00:00:00 2001 From: Roi Feng Date: Mon, 2 Jun 2025 18:51:05 -0400 Subject: [PATCH] feat: Waiting room checker --- internal/check/WaitingRoom.go | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) create mode 100644 internal/check/WaitingRoom.go diff --git a/internal/check/WaitingRoom.go b/internal/check/WaitingRoom.go new file mode 100644 index 0000000..1da8761 --- /dev/null +++ b/internal/check/WaitingRoom.go @@ -0,0 +1,25 @@ +package check + +import ( + "server_torii/internal/action" + "server_torii/internal/config" + "server_torii/internal/dataType" +) + +func WaitingRoom(reqData dataType.UserRequest, ruleSet *config.RuleSet, decision *action.Decision, sharedMem *dataType.SharedMemory) { + if !ruleSet.WaitingRoomRule.Enabled { + decision.Set(action.Continue) + return + } + + sessionID := reqData.ToriiSessionID + canEnter, newSessionID, _ := sharedMem.WaitingRoom.CanEnterSite(reqData, sessionID, ruleSet.CAPTCHARule.SecretKey) + + if canEnter { + sharedMem.WaitingRoom.UpdateLastAccess(newSessionID, reqData, ruleSet.CAPTCHARule.SecretKey) + decision.Set(action.Continue) + return + } + + decision.SetResponse(action.Done, []byte("WAITING_ROOM"), []byte(newSessionID)) +}