upleb.uk

Public git repos — served from a NIP-34 GRASP relay at git.upleb.uk

summaryrefslogtreecommitdiff
path: root/main/session.c
diff options
context:
space:
mode:
authorYour Name <you@example.com>2026-05-17 01:39:03 +0530
committerYour Name <you@example.com>2026-05-17 01:39:03 +0530
commit32844ac7c4a135659714aabf7d2414f156176d72 (patch)
tree414e6272a9a174bd50566c65e432ed62b29236b3 /main/session.c
parent60e0a1042e5c56fe7d4b46d760441391df4ff809 (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.c7
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])) {