diff options
| author | Your Name <you@example.com> | 2026-05-17 01:39:03 +0530 |
|---|---|---|
| committer | Your Name <you@example.com> | 2026-05-17 01:39:03 +0530 |
| commit | 32844ac7c4a135659714aabf7d2414f156176d72 (patch) | |
| tree | 414e6272a9a174bd50566c65e432ed62b29236b3 /main/session.c | |
| parent | 60e0a1042e5c56fe7d4b46d760441391df4ff809 (diff) | |
test_cashu (10/10) + test_session (18/18): all 86 unit tests passing
- Expand esp_http_client.h stub: full config struct + method enum + init/perform/cleanup
- Add portTICK_PERIOD_MS + esp_err_to_name to stubs
- session.c: reject duplicate spent secrets in session_create (double-spend protection)
- .gitignore: add test binaries
Diffstat (limited to 'main/session.c')
| -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])) { |