summaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
authorFulup Ar Foll <fulup@iot.bzh>2015-12-12 13:26:14 +0100
committerFulup Ar Foll <fulup@iot.bzh>2015-12-12 13:26:14 +0100
commitd00571d3c5365f40e7ec2ec3ab0f636afa0db480 (patch)
treeec9048323196e91ffe233dc4e317479c75b86e8f /include
parente7c246a1b0d30b8156c7033061a61ecb5d2bdfc8 (diff)
Fixed Plugin.private bug, added "no session mode" fixed plugin API
Diffstat (limited to 'include')
-rw-r--r--include/local-def.h14
-rw-r--r--include/proto-def.h13
2 files changed, 15 insertions, 12 deletions
diff --git a/include/local-def.h b/include/local-def.h
index df66a09e..791f4c19 100644
--- a/include/local-def.h
+++ b/include/local-def.h
@@ -59,6 +59,7 @@
#define DEFLT_API_TIMEOUT 0 // default Plugin API Timeout [0=NoLimit for Debug Only]
#define DEFLT_API_TIMEOUT 0 // default Plugin API Timeout
#define DEFLT_CACHE_TIMEOUT 100000 // default Static File Chache [Client Side Cache 100000~=1day]
+#define DEFLT_AUTH_TOKEN NULL // expect for debug should == NULL
typedef int BOOL;
#ifndef FALSE
@@ -74,6 +75,10 @@ typedef int BOOL;
extern int verbose; // this is the only global variable
+
+// Plugin Type
+typedef enum {AFB_PLUGIN_JSON=123456789, AFB_PLUGIN_JSCRIPT=987654321, AFB_PLUGIN_RAW=987123546} AFB_pluginT;
+
// prebuild json error are constructed in config.c
typedef enum { AFB_FALSE, AFB_TRUE, AFB_FATAL, AFB_FAIL, AFB_WARNING, AFB_EMPTY, AFB_SUCCESS, AFB_DONE} AFB_error;
@@ -85,8 +90,7 @@ extern char *ERROR_LABEL[];
#define MAX_POST_SIZE 4096 // maximum size for POST data
#define CTX_NBCLIENTS 10 // allow a default of 10 authenticated clients
-// use to check anonymous data when using dynamic loadable lib
-typedef enum {AFB_PLUGIN=1234, AFB_REQUEST=5678} AFB_type;
+
typedef json_object* (*AFB_apiCB)();
// Error code are requested through function to manage json usage count
@@ -136,7 +140,8 @@ typedef struct {
char *pidfile; // where to store pid when running background
char *sessiondir; // where to store mixer session files
char *configfile; // where to store configuration on gateway exit
- char *setuid;
+ char *setuid; // downgrade uid to username
+ char *token; // initial authentication token [default NULL no session]
int cacheTimeout;
int apiTimeout;
int cntxTimeout; // Client Session Context timeout
@@ -196,7 +201,7 @@ typedef struct {
// Plugin definition
typedef struct {
- AFB_type type;
+ AFB_pluginT type;
char *info;
char *prefix;
size_t prefixlen;
@@ -204,7 +209,6 @@ typedef struct {
AFB_restapi *apis;
void *handle;
int ctxCount;
- AFB_clientCtx *ctxGlobal;
} AFB_plugin;
diff --git a/include/proto-def.h b/include/proto-def.h
index 25834524..b6cdb94e 100644
--- a/include/proto-def.h
+++ b/include/proto-def.h
@@ -22,7 +22,7 @@
// Rest-api
-PUBLIC json_object* apiPingTest(AFB_request *request);
+PUBLIC json_object* apiPingTest(AFB_request *request, void *pluginHandle);
PUBLIC const char* getQueryValue (AFB_request * request, char *name);
PUBLIC int getQueryAll(AFB_request * request, char *query, size_t len);
@@ -38,18 +38,17 @@ PUBLIC AFB_plugin* dbusRegister ();
PUBLIC AFB_plugin* alsaRegister ();
PUBLIC AFB_plugin* radioRegister (AFB_session *session);
-
-
// Session handling
PUBLIC AFB_error sessionCheckdir (AFB_session *session);
PUBLIC json_object *sessionList (AFB_session *session, AFB_request *request);
PUBLIC json_object *sessionToDisk (AFB_session *session, AFB_request *request, char *name,json_object *jsonSession);
PUBLIC json_object *sessionFromDisk (AFB_session *session, AFB_request *request, char *name);
-PUBLIC char* ctxTokenRefresh (AFB_request *request);
-PUBLIC char* ctxTokenCreate (AFB_request *request);
+
+PUBLIC AFB_error ctxTokenRefresh (AFB_request *request);
+PUBLIC AFB_error ctxTokenCreate (AFB_request *request);
PUBLIC AFB_error ctxTokenCheck (AFB_request *request);
-PUBLIC int ctxTokenReset (AFB_request *request);
-PUBLIC int ctxClientGet (AFB_request *request);
+PUBLIC AFB_error ctxTokenReset (AFB_request *request);
+PUBLIC AFB_error ctxClientGet (AFB_request *request);