From d00571d3c5365f40e7ec2ec3ab0f636afa0db480 Mon Sep 17 00:00:00 2001 From: Fulup Ar Foll Date: Sat, 12 Dec 2015 13:26:14 +0100 Subject: Fixed Plugin.private bug, added "no session mode" fixed plugin API --- include/local-def.h | 14 +++++++++----- include/proto-def.h | 13 ++++++------- 2 files changed, 15 insertions(+), 12 deletions(-) (limited to 'include') 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); -- cgit 1.2.3-korg