X-Git-Url: https://gerrit.automotivelinux.org/gerrit/gitweb?a=blobdiff_plain;f=src%2Fafb-session.c;h=e1d5a458ffe7e1977dfea666b9a213d23413e33d;hb=7fb96ff96cffa977e8bde60d3f1f876608c1bd66;hp=2b649efe4b3a5340bb69794762bf3a21f00d112b;hpb=79ccbbb1843431c8b4acb3230e82d5cff415c7a4;p=src%2Fapp-framework-binder.git diff --git a/src/afb-session.c b/src/afb-session.c index 2b649efe..e1d5a458 100644 --- a/src/afb-session.c +++ b/src/afb-session.c @@ -59,7 +59,7 @@ struct afb_session // Session UUID are store in a simple array [for 10 sessions this should be enough] static struct { pthread_mutex_t mutex; // declare a mutex to protect hash table - struct afb_session **store; // sessions store + struct afb_session **store; // sessions store int count; // current number of sessions int max; int timeout; @@ -97,7 +97,7 @@ static inline void unlock(struct afb_session *session) } // Free context [XXXX Should be protected again memory abort XXXX] -static void free_data (struct afb_session *session) +static void remove_all_cookies(struct afb_session *session) { int idx; struct cookie *cookie, *next; @@ -351,7 +351,7 @@ void afb_session_close (struct afb_session *session) assert(session != NULL); if (session->uuid[0] != 0) { session->uuid[0] = 0; - free_data (session); + remove_all_cookies(session); if (session->refcount == 0) { destroy (session); free(session); @@ -388,18 +388,21 @@ void afb_session_new_token (struct afb_session *session) session->expiration = NOW + session->timeout; } +/* Returns the uuid of 'session' */ const char *afb_session_uuid (struct afb_session *session) { assert(session != NULL); return session->uuid; } +/* Returns the token of 'session' */ const char *afb_session_token (struct afb_session *session) { assert(session != NULL); return session->token; } +/* Set, get, replace, remove a cookie key */ void *afb_session_cookie(struct afb_session *session, const void *key, void *(*makecb)(void *closure), void (*freecb)(void *item), void *closure, int replace) { int idx;