X-Git-Url: https://gerrit.automotivelinux.org/gerrit/gitweb?a=blobdiff_plain;f=src%2Fsession.c;h=16dc836903021bef8cfd9f36bf9ebf496d4ebd84;hb=90372ba496ea884af0c16f02618af93d8625c713;hp=326b16af067777cd792a580851f31bf9dd754f05;hpb=146f95b776c7a424e672b27386fbb8392bc0ffb7;p=src%2Fapp-framework-binder.git diff --git a/src/session.c b/src/session.c index 326b16af..16dc8369 100644 --- a/src/session.c +++ b/src/session.c @@ -1,5 +1,5 @@ /* - * Copyright (C) 2015 "IoT.bzh" + * Copyright (C) 2015, 2016 "IoT.bzh" * Author "Fulup Ar Foll" * * Licensed under the Apache License, Version 2.0 (the "License"); @@ -48,6 +48,7 @@ struct afb_event_listener_list struct AFB_clientCtx { unsigned refcount; + unsigned loa; time_t expiration; // expiration time of the token time_t access; char uuid[37]; // long term authentication of remote client @@ -434,6 +435,18 @@ const char *ctxClientGetToken (struct AFB_clientCtx *clientCtx) return clientCtx->token; } +unsigned ctxClientGetLOA (struct AFB_clientCtx *clientCtx) +{ + assert(clientCtx != NULL); + return clientCtx->loa; +} + +void ctxClientSetLOA (struct AFB_clientCtx *clientCtx, unsigned loa) +{ + assert(clientCtx != NULL); + clientCtx->loa = loa; +} + void *ctxClientValueGet(struct AFB_clientCtx *clientCtx, int index) { assert(clientCtx != NULL); @@ -450,6 +463,6 @@ void ctxClientValueSet(struct AFB_clientCtx *clientCtx, int index, void *value, assert(index < sessions.apicount); prev = clientCtx->values[index]; clientCtx->values[index] = (struct client_value){.value = value, .free_value = free_value}; - if (prev.value != NULL && prev.free_value != NULL) + if (prev.value != NULL && prev.value != value && prev.free_value != NULL) prev.free_value(prev.value); }