refactor cookie to add #port
authorJosé Bollo <jose.bollo@iot.bzh>
Tue, 23 Feb 2016 08:48:15 +0000 (09:48 +0100)
committerJosé Bollo <jose.bollo@iot.bzh>
Tue, 23 Feb 2016 08:48:15 +0000 (09:48 +0100)
Change-Id: Ieac2936413a59b80db66e9ba69d586d7fa481ef8
Signed-off-by: José Bollo <jose.bollo@iot.bzh>
include/local-def.h
src/rest-api.c
src/session.c

index 01f1062..0bf0294 100644 (file)
@@ -54,7 +54,7 @@
 #define MAGIC_DB "/usr/share/misc/magic.mgc"
 #define OPA_INDEX "index.html"
 #define MAX_ALIAS 10           // max number of aliases
-#define COOKIE_NAME   "AJB_session"
+#define COOKIE_NAME   "afb-session"
 
 
 #define DEFLT_CNTX_TIMEOUT  3600   // default Client Connection Timeout
index c85fbea..b83e893 100644 (file)
@@ -514,7 +514,7 @@ ProcessApiCall:
     // client did not pass token on URI let's use cookies 
     if ((!request->restfull) && (request->context != NULL)) {
        char cookie[256]; 
-       snprintf (cookie, sizeof (cookie), "%s=%s;path=%s;max-age=%d", COOKIE_NAME, request->uuid, request->config->rootapi,request->config->cntxTimeout); 
+       snprintf (cookie, sizeof (cookie), "%s-%d=%s; Path=%s; Max-Age=%d; HttpOnly", COOKIE_NAME, request->config->httpdPort, request->uuid, request->config->rootapi,request->config->cntxTimeout); 
        MHD_add_response_header (webResponse, MHD_HTTP_HEADER_SET_COOKIE, cookie);
     }
     
index 9e25c27..481e04c 100644 (file)
@@ -449,8 +449,10 @@ PUBLIC AFB_clientCtx *ctxClientGet (AFB_request *request, int idx) {
     // if UUID in query we're restfull with no cookies otherwise check for cookie
     if (uuid != NULL) request->restfull = TRUE;
     else {
+        char cookie[64];
         request->restfull = FALSE;
-        uuid = MHD_lookup_connection_value (request->connection, MHD_COOKIE_KIND, COOKIE_NAME);  
+        snprintf(cookie, sizeof cookie, "%s-%d", COOKIE_NAME, request->config->httpdPort);
+        uuid = MHD_lookup_connection_value (request->connection, MHD_COOKIE_KIND, cookie);  
     };
     
     // Warning when no cookie defined MHD_lookup_connection_value may return something !!!