/*
- * 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");
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
// Loop on Sessions Table and remove anything that is older than timeout
for (idx=0; idx < sessions.max; idx++) {
- ctx = ctxClientAddRef(sessions.store[idx]);
+ ctx = sessions.store[idx];
if (ctx != NULL && ctxStoreTooOld(ctx, now)) {
ctxClientClose (ctx);
}
- ctxClientUnref(ctx);
}
}
ctxUuidFreeCB (clientCtx);
while(clientCtx->listeners != NULL)
ctxClientEventListenerRemove(clientCtx, clientCtx->listeners->listener);
+ if (clientCtx->refcount == 0) {
+ ctxStoreDel (clientCtx);
+ free(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);