summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorFulup Ar Foll <fulup@iot.bzh>2015-12-29 02:15:07 +0100
committerManuel Bachmann <manuel.bachmann@iot.bzh>2015-12-29 02:15:26 +0100
commitda9b5d47f01f786f3170c80724a1a6d8f9b94ebb (patch)
treee5183502c07df8a8597a9f13a3d06c6190371147
parent07c775201fbd9477bd4a69cee3d48a95eb612bc6 (diff)
Switch to unique token model
Token/Session Plugin is now able to issue a globally-valid token (re-useable with all Plugins, so that an application using multiple plugins is not forced to manage multiple tokens anymore). Adapt Audio & Radio Plugins to this model (init functions do not create a token anymore, check for a prior existing one). Signed-off-by: Manuel Bachmann <manuel.bachmann@iot.bzh> Author: Fulup Ar Foll <fulup@iot.bzh> Author: Manuel Bachmann <manuel.bachmann@iot.bzh>
-rw-r--r--plugins/audio/audio-api.c4
-rw-r--r--plugins/radio/radio-api.c4
-rw-r--r--src/rest-api.c2
3 files changed, 5 insertions, 5 deletions
diff --git a/plugins/audio/audio-api.c b/plugins/audio/audio-api.c
index 4c7df8b0..3877ce5b 100644
--- a/plugins/audio/audio-api.c
+++ b/plugins/audio/audio-api.c
@@ -58,7 +58,7 @@ STATIC void freeAudio (void *context) {
/* ------ PUBLIC PLUGIN FUNCTIONS --------- */
-STATIC json_object* init (AFB_request *request) { /* AFB_SESSION_CREATE */
+STATIC json_object* init (AFB_request *request) { /* AFB_SESSION_CHECK */
json_object *jresp;
int idx;
@@ -225,7 +225,7 @@ STATIC json_object* ping (AFB_request *request) { /* AFB_SESSION_NONE */
}
STATIC AFB_restapi pluginApis[]= {
- {"init" , AFB_SESSION_CREATE, (AFB_apiCB)init , "Audio API - init"},
+ {"init" , AFB_SESSION_CHECK, (AFB_apiCB)init , "Audio API - init"},
{"volume" , AFB_SESSION_CHECK, (AFB_apiCB)volume , "Audio API - volume"},
{"channels", AFB_SESSION_CHECK, (AFB_apiCB)channels , "Audio API - channels"},
{"mute" , AFB_SESSION_CHECK, (AFB_apiCB)mute , "Audio API - mute"},
diff --git a/plugins/radio/radio-api.c b/plugins/radio/radio-api.c
index 1cbf3149..b09cea86 100644
--- a/plugins/radio/radio-api.c
+++ b/plugins/radio/radio-api.c
@@ -126,7 +126,7 @@ STATIC void freeRadio (void *context, void *handle) {
/* ------ PUBLIC PLUGIN FUNCTIONS --------- */
-STATIC json_object* init (AFB_request *request) { /* AFB_SESSION_CREATE */
+STATIC json_object* init (AFB_request *request) { /* AFB_SESSION_CHECK */
json_object *jresp;
@@ -306,7 +306,7 @@ STATIC json_object* ping (AFB_request *request) { /* AFB_SESSION_NONE */
STATIC AFB_restapi pluginApis[]= {
- {"init" , AFB_SESSION_CREATE, (AFB_apiCB)init , "Radio API - init"},
+ {"init" , AFB_SESSION_CHECK, (AFB_apiCB)init , "Radio API - init"},
{"power" , AFB_SESSION_CHECK, (AFB_apiCB)power , "Radio API - power"},
{"mode" , AFB_SESSION_CHECK, (AFB_apiCB)mode , "Radio API - mode"},
{"freq" , AFB_SESSION_CHECK, (AFB_apiCB)freq , "Radio API - freq"},
diff --git a/src/rest-api.c b/src/rest-api.c
index 398ba577..2596f305 100644
--- a/src/rest-api.c
+++ b/src/rest-api.c
@@ -510,7 +510,7 @@ ProcessApiCall:
// client did not pass token on URI let's use cookies
if ((!request->restfull) && (request->context != NULL)) {
char cookie[64];
- snprintf (cookie, sizeof (cookie), "%s=%s", COOKIE_NAME, request->uuid);
+ snprintf (cookie, sizeof (cookie), "%s=%s;path=/api;max-age=%d", COOKIE_NAME, request->uuid, request->config->cntxTimeout);
MHD_add_response_header (webResponse, MHD_HTTP_HEADER_SET_COOKIE, cookie);
}