aboutsummaryrefslogtreecommitdiffstats
path: root/src/afb-hreq.h
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-hreq.h
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-hreq.h')
-rw-r--r--src/afb-hreq.h17
1 files changed, 4 insertions, 13 deletions
diff --git a/src/afb-hreq.h b/src/afb-hreq.h
index 5cb86091..47d6aa53 100644
--- a/src/afb-hreq.h
+++ b/src/afb-hreq.h
@@ -17,22 +17,16 @@
#pragma once
+#include "afb-xreq.h"
+
struct afb_session;
struct json_object;
struct hreq_data;
struct afb_hsrv;
-struct afb_req_itf;
struct locale_search;
-extern const struct afb_req_itf afb_hreq_req_itf;
-
struct afb_hreq {
- /*
- * CAUTION: 'context' field should be the first because there
- * is an implicit convertion to struct afb_context
- */
- struct afb_context context;
- int refcount;
+ struct afb_xreq xreq;
struct afb_hsrv *hsrv;
const char *cacheTimeout;
struct MHD_Connection *connection;
@@ -51,8 +45,6 @@ struct afb_hreq {
struct hreq_data *data;
struct json_object *json;
int upgrade;
- char *api;
- char *verb;
};
extern int afb_hreq_unprefix(struct afb_hreq *request, const char *prefix, size_t length);
@@ -83,8 +75,6 @@ extern int afb_hreq_post_add_file(struct afb_hreq *hreq, const char *name, const
extern int afb_hreq_post_add(struct afb_hreq *hreq, const char *name, const char *data, size_t size);
-extern struct afb_req afb_hreq_to_req(struct afb_hreq *hreq);
-
extern int afb_hreq_init_req_call(struct afb_hreq *hreq, const char *api, size_t lenapi, const char *verb, size_t lenverb);
extern int afb_hreq_init_context(struct afb_hreq *hreq);
@@ -105,3 +95,4 @@ extern void afb_hreq_addref(struct afb_hreq *hreq);
extern void afb_hreq_unref(struct afb_hreq *hreq);
+extern struct afb_hreq *afb_hreq_create();