summaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
authorFulup Ar Foll <fulup@iot.bzh>2015-12-13 10:21:46 +0100
committerFulup Ar Foll <fulup@iot.bzh>2015-12-13 10:21:46 +0100
commit1dc25c6396d8dbb6b1505751babaa499d4a68315 (patch)
tree47dcc60010448ac04ed6a1e56f815c7297be30cf /include
parentb8b7b338bc4bc6ac03c53a0e51716eca153f95a5 (diff)
Fixed Session Context Free with ctxFreeCB
Diffstat (limited to 'include')
-rw-r--r--include/local-def.h42
-rw-r--r--include/proto-def.h4
2 files changed, 22 insertions, 24 deletions
diff --git a/include/local-def.h b/include/local-def.h
index b37cd757..2f8fd202 100644
--- a/include/local-def.h
+++ b/include/local-def.h
@@ -169,26 +169,37 @@ typedef struct {
AFB_privateApi *private;
} AFB_restapi;
+// Plugin definition
+typedef struct {
+ AFB_pluginT type;
+ char *info;
+ char *prefix;
+ size_t prefixlen;
+ json_object *jtype;
+ AFB_restapi *apis;
+ void *handle;
+ int ctxCount;
+ AFB_apiCB freeCtxCB; // callback to free application context [null for standard free]
+} AFB_plugin;
+
// User Client Session Context
typedef struct {
- int cid; // index 0 if global
- char uuid[37]; // long term authentication of remote client
- char token[37]; // short term authentication of remote client
- time_t timeStamp; // last time token was refresh
- int restfull; // client does not use cookie
- void *handle; // application specific context
- AFB_apiCB freeHandleCB; // callback to free application handle [null for standard free]
+ int cid; // index 0 if global
+ char uuid[37]; // long term authentication of remote client
+ char token[37]; // short term authentication of remote client
+ time_t timeStamp; // last time token was refresh
+ int restfull; // client does not use cookie
+ void *ctx; // application specific context
+ AFB_plugin *plugin; // provide callback and easy access to plugin
} AFB_clientCtx;
-
// MHD_lookup_connection_value(connection, MHD_GET_ARGUMENT_KIND, "value");
typedef struct {
const char *url;
char *plugin;
char *api;
char *post;
- int loa;
json_object *jresp;
AFB_clientCtx *client; // needed because libmicrohttp cannot create an empty response
int restfull; // request is resfull [uuid token provided]
@@ -199,19 +210,6 @@ typedef struct {
} AFB_request;
-// Plugin definition
-typedef struct {
- AFB_pluginT type;
- char *info;
- char *prefix;
- size_t prefixlen;
- json_object *jtype;
- AFB_restapi *apis;
- void *handle;
- int ctxCount;
-} AFB_plugin;
-
-
typedef struct {
AFB_config *config; // pointer to current config
// List of commands to execute
diff --git a/include/proto-def.h b/include/proto-def.h
index b6cdb94e..55585e7b 100644
--- a/include/proto-def.h
+++ b/include/proto-def.h
@@ -22,7 +22,7 @@
// Rest-api
-PUBLIC json_object* apiPingTest(AFB_request *request, void *pluginHandle);
+PUBLIC json_object* apiPingTest(AFB_request *request);
PUBLIC const char* getQueryValue (AFB_request * request, char *name);
PUBLIC int getQueryAll(AFB_request * request, char *query, size_t len);
@@ -48,7 +48,7 @@ PUBLIC AFB_error ctxTokenRefresh (AFB_request *request);
PUBLIC AFB_error ctxTokenCreate (AFB_request *request);
PUBLIC AFB_error ctxTokenCheck (AFB_request *request);
PUBLIC AFB_error ctxTokenReset (AFB_request *request);
-PUBLIC AFB_error ctxClientGet (AFB_request *request);
+PUBLIC AFB_error ctxClientGet (AFB_request *request, AFB_plugin *plugin);