summaryrefslogtreecommitdiffstats
path: root/src/afb-hsrv.c
diff options
context:
space:
mode:
authorJosé Bollo <jose.bollo@iot.bzh>2017-03-31 16:11:07 +0200
committerJosé Bollo <jose.bollo@iot.bzh>2017-03-31 16:14:02 +0200
commit6797f9722dd3e5463e0f7c118397955bb59a40c7 (patch)
tree05f6aaf980d4080f871fc368509ff0156eaaec3b /src/afb-hsrv.c
parent20ea5089d0e5526afaa5231f30add7b25b2499bd (diff)
Factorize common code for handling requests
The common code for session handling is shared using struct afb_xreq. At the moment only hreq leverages the new feature. The objective is double: make the work of writing new internal requests more easy and prepare to check permissions. Change-Id: If3ca311d68c2d8c427d1125f31a2704b150c2c94 Signed-off-by: José Bollo <jose.bollo@iot.bzh>
Diffstat (limited to 'src/afb-hsrv.c')
-rw-r--r--src/afb-hsrv.c12
1 files changed, 2 insertions, 10 deletions
diff --git a/src/afb-hsrv.c b/src/afb-hsrv.c
index 577ef854..f0866f82 100644
--- a/src/afb-hsrv.c
+++ b/src/afb-hsrv.c
@@ -31,6 +31,7 @@
#include "afb-method.h"
#include "afb-context.h"
+#include "afb-xreq.h"
#include "afb-hreq.h"
#include "afb-hsrv.h"
#include <afb/afb-req-itf.h>
@@ -39,8 +40,6 @@
#include "afb-common.h"
-
-
#define JSON_CONTENT "application/json"
#define FORM_CONTENT MHD_HTTP_POST_ENCODING_MULTIPART_FORMDATA
@@ -68,8 +67,6 @@ struct afb_hsrv {
char *cache_to;
};
-static int global_reqids = 0;
-
static void reply_error(struct MHD_Connection *connection, unsigned int status)
{
struct MHD_Response *response = MHD_create_response_from_buffer(0, NULL, MHD_RESPMEM_PERSISTENT);
@@ -124,7 +121,7 @@ static int access_handler(
}
/* create the request */
- hreq = calloc(1, sizeof *hreq);
+ hreq = afb_hreq_create();
if (hreq == NULL) {
ERROR("Can't allocate 'hreq'");
reply_error(connection, MHD_HTTP_INTERNAL_SERVER_ERROR);
@@ -132,13 +129,8 @@ static int access_handler(
}
/* init the request */
- hreq->refcount = 1;
hreq->hsrv = hsrv;
hreq->cacheTimeout = hsrv->cache_to;
- hreq->reqid = ++global_reqids;
- hreq->scanned = 0;
- hreq->suspended = 0;
- hreq->replied = 0;
hreq->connection = connection;
hreq->method = method;
hreq->version = version;