/*
- * Copyright (C) 2016 "IoT.bzh"
+ * Copyright (C) 2016, 2017 "IoT.bzh"
* Author: José Bollo <jose.bollo@iot.bzh>
*
* Licensed under the Apache License, Version 2.0 (the "License");
#include "afb-context.h"
#include "afb-hreq.h"
#include "afb-subcall.h"
-#include "session.h"
+#include "afb-session.h"
#include "verbose.h"
#include "locale-root.h"
const char *result = NULL;
#if defined(INFER_EXTENSION)
+ /*
+ * Set some well-known extensions
+ * Note that it is mandatory for example for css files in order to provide
+ * right mimetype that must be text/css (otherwise chrome browser will not
+ * load correctly css file) while libmagic returns text/plain.
+ */
const char *extension = strrchr(filename, '.');
if (extension) {
static const char *const known[][2] = {
{ ".js", "text/javascript" },
{ ".html", "text/html" },
{ ".css", "text/css" },
+ { ".ico", "image/x-icon"},
+ { ".png", "image/png" },
+ { ".svg", "image/svg+xml" },
+ { ".ttf", "application/x-font-ttf"},
{ NULL, NULL }
};
int i = 0;
}
afb_context_disconnect(&hreq->context);
json_object_put(hreq->json);
+ free(hreq->api);
+ free(hreq->verb);
free(hreq);
}
afb_subcall(&hreq->context, api, verb, args, callback, closure, (struct afb_req){ .itf = &afb_hreq_req_itf, .closure = hreq });
}
+int afb_hreq_init_req_call(struct afb_hreq *hreq, const char *api, size_t lenapi, const char *verb, size_t lenverb)
+{
+ free(hreq->api);
+ free(hreq->verb);
+ hreq->api = strndup(api, lenapi);
+ hreq->verb = strndup(verb, lenverb);
+ if (hreq->api == NULL || hreq->verb == NULL) {
+ ERROR("Out of memory");
+ errno = ENOMEM;
+ return -1;
+ }
+ return afb_hreq_init_context(hreq);
+}
+
int afb_hreq_init_context(struct afb_hreq *hreq)
{
const char *uuid;