replay_high_water.cpp 697 B

12345678910111213141516171819202122
  1. #include "replay_high_water.h"
  2. namespace sunrise::middleware::gameplay::dtls {
  3. /** Applies one expanded sequence to the authenticated receive high-water mark. */
  4. ReplayDecision update(ReplayHighWater& state, std::uint32_t sequence) noexcept {
  5. if (!state.initialized) {
  6. state.lastSequence = sequence;
  7. state.initialized = true;
  8. return ReplayDecision::accepted;
  9. }
  10. if (sequence == state.lastSequence) {
  11. return ReplayDecision::duplicate;
  12. }
  13. if (sequence < state.lastSequence) {
  14. return ReplayDecision::tooOld;
  15. }
  16. state.lastSequence = sequence;
  17. return ReplayDecision::accepted;
  18. }
  19. } // namespace sunrise::middleware::gameplay::dtls