/** * TODO file description * * Created on 2019/07/13. */ #ifndef SESSION_UTILS_C_H #define SESSION_UTILS_C_H #include #include #include "httpd_utils/session_kvmap.h" #include "httpd_utils/session_store.h" /** * Start or resume a session. */ esp_err_t HTTP_GET_SESSION(sess_kv_map_t **ppkvstore, httpd_req_t *r) { sess_kv_map_t *kvstore; kvstore = httpd_req_find_session_and((r), SESS_GET_DATA); if (NULL == kvstore) { kvstore = sess_kv_map_alloc(); if (!kvstore) return ESP_ERR_NO_MEM; const char *cookie = session_new(kvstore, sess_kv_map_free); if (cookie == NULL) { // session alloc failed sess_kv_map_free(kvstore); *ppkvstore = NULL; return ESP_ERR_NO_MEM; } httpd_resp_set_session_cookie(r, cookie); } *ppkvstore = kvstore; return ESP_OK; } #endif //SESSION_UTILS_C_H