X-Git-Url: https://gerrit.automotivelinux.org/gerrit/gitweb?a=blobdiff_plain;f=src%2Fsession.h;h=28f25991d4a655b03012e3e2695f290d804dbc5f;hb=11d36a9f7e16aa9992835f8ce06f0e1e5297b131;hp=e3b9b81171d3eef94d5ec9e77937db72773f70b9;hpb=520bbafb30ce49b94b7825ff553d8cb5bda6d612;p=src%2Fapp-framework-binder.git diff --git a/src/session.h b/src/session.h index e3b9b811..28f25991 100644 --- a/src/session.h +++ b/src/session.h @@ -14,11 +14,23 @@ * See the License for the specific language governing permissions and * limitations under the License. */ +// User Client Session Context -extern AFB_error ctxTokenRefresh (AFB_clientCtx *clientCtx, AFB_request *request); -extern AFB_error ctxTokenCreate (AFB_clientCtx *clientCtx, AFB_request *request); -extern AFB_error ctxTokenCheck (AFB_clientCtx *clientCtx, AFB_request *request); -extern AFB_error ctxTokenReset (AFB_clientCtx *clientCtx, AFB_request *request); -extern AFB_clientCtx *ctxClientGet (AFB_request *request); -extern void ctxStoreInit (int); +struct AFB_clientCtx +{ + time_t expiration; // expiration time of the token + int created; + unsigned refcount; + void **contexts; // application specific context [one per plugin] + char uuid[37]; // long term authentication of remote client + char token[37]; // short term authentication of remote client +}; + +extern void ctxStoreInit (int nbSession, int timeout, int apicount, const char *initok); + +extern struct AFB_clientCtx *ctxClientGet (const char *uuid); +extern void ctxClientPut(struct AFB_clientCtx *clientCtx); +extern void ctxClientClose (struct AFB_clientCtx *clientCtx); +extern int ctxTokenCheck (struct AFB_clientCtx *clientCtx, const char *token); +extern void ctxTokenNew (struct AFB_clientCtx *clientCtx);