#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>
#include "afb-common.h"
-
-
#define JSON_CONTENT "application/json"
#define FORM_CONTENT MHD_HTTP_POST_ENCODING_MULTIPART_FORMDATA
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);
}
/* 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);
}
/* 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;
struct afb_hreq *hreq;
hreq = *recordreq;
- if (hreq->upgrade)
- MHD_suspend_connection (connection);
- afb_hreq_unref(hreq);
+ if (hreq) {
+ if (hreq->upgrade)
+ MHD_suspend_connection (connection);
+ afb_hreq_unref(hreq);
+ }
}
void run_micro_httpd(struct afb_hsrv *hsrv)