You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
41 lines
941 B
41 lines
941 B
/**
|
|
* TODO file description
|
|
*
|
|
* Created on 2019/07/13.
|
|
*/
|
|
|
|
#ifndef SESSION_UTILS_C_H
|
|
#define SESSION_UTILS_C_H
|
|
|
|
#include <esp_err.h>
|
|
#include <esp_http_server.h>
|
|
#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
|
|
|