diff options
Diffstat (limited to 'main')
| -rw-r--r-- | main/session.c | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/main/session.c b/main/session.c index 5d2efee..521b74a 100644 --- a/main/session.c +++ b/main/session.c | |||
| @@ -50,6 +50,13 @@ session_t *session_create(uint32_t client_ip, uint64_t allotment_ms, | |||
| 50 | return existing; | 50 | return existing; |
| 51 | } | 51 | } |
| 52 | 52 | ||
| 53 | for (int i = 0; i < secret_count; i++) { | ||
| 54 | if (session_is_secret_spent(spent_secrets[i])) { | ||
| 55 | ESP_LOGW(TAG, "Duplicate secret rejected"); | ||
| 56 | return NULL; | ||
| 57 | } | ||
| 58 | } | ||
| 59 | |||
| 53 | if (s_session_count >= SESSION_MAX_CLIENTS) { | 60 | if (s_session_count >= SESSION_MAX_CLIENTS) { |
| 54 | for (int i = 0; i < SESSION_MAX_CLIENTS; i++) { | 61 | for (int i = 0; i < SESSION_MAX_CLIENTS; i++) { |
| 55 | if (!s_sessions[i].active || session_is_expired(&s_sessions[i])) { | 62 | if (!s_sessions[i].active || session_is_expired(&s_sessions[i])) { |