From c2bda43c447016a20ed061078b0dff3e64d09940 Mon Sep 17 00:00:00 2001 From: Fulup Ar Foll Date: Mon, 7 Dec 2015 01:39:27 +0100 Subject: Almost working --- include/local-def.h | 16 +++++++++++----- include/proto-def.h | 23 +++++++++++++++-------- 2 files changed, 26 insertions(+), 13 deletions(-) (limited to 'include') diff --git a/include/local-def.h b/include/local-def.h index f69ddcbe..3f0a26a0 100644 --- a/include/local-def.h +++ b/include/local-def.h @@ -17,7 +17,6 @@ along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - $Id: $ */ #define _GNU_SOURCE @@ -35,7 +34,7 @@ #include #include #include - +#include #define AJQ_VERSION "0.1" @@ -54,7 +53,8 @@ typedef int BOOL; #define FAILED -1 // prebuild json error are constructed in config.c -typedef enum { AFB_FALSE, AFB_TRUE, AFB_FATAL, AFB_FAIL, AFB_WARNING, AFB_EMPTY, AFB_SUCCESS} AFB_ERROR; +typedef enum { AFB_FALSE, AFB_TRUE, AFB_FATAL, AFB_FAIL, AFB_WARNING, AFB_EMPTY, AFB_SUCCESS} AFB_error; + extern char *ERROR_LABEL[]; #define ERROR_LABEL_DEF {"false", "true","fatal", "fail", "warning", "empty", "success"} @@ -70,7 +70,7 @@ typedef struct { int level; char* label; json_object *json; -} AFB_ErrorT; +} AFB_errorT; // Post handler typedef struct { @@ -79,6 +79,11 @@ typedef struct { int uid; } AFB_HttpPost; +typedef struct { + char path[512]; + int fd; +} AFB_staticfile; + // some usefull static object initialized when entering listen loop. extern int verbose; @@ -112,7 +117,6 @@ typedef struct { char *configfile; // where to store configuration on gateway exit uid_t setuid; int cacheTimeout; - AFB_redirect_msg html5; // html5 redirect message } AFB_config; // Command line structure hold cli --command + help text @@ -137,6 +141,7 @@ typedef struct { AFB_type type; char *info; char *prefix; + size_t prefixlen; json_object *jtype; AFB_restapi *apis; } AFB_plugin; @@ -154,6 +159,7 @@ typedef struct { int fakemod; // respond to GET/POST request without interacting with sndboard int forceexit; // when autoconfig from script force exit before starting server AFB_plugin **plugins; // pointer to REST/API plugins + magic_t magic; // Mime type file magic lib } AFB_session; diff --git a/include/proto-def.h b/include/proto-def.h index 934bf30f..d1b0c3fb 100644 --- a/include/proto-def.h +++ b/include/proto-def.h @@ -23,31 +23,38 @@ // Rest-api PUBLIC json_object* pingSample (AFB_plugin *plugin, AFB_session *session, AFB_request *post); PUBLIC const char* getQueryValue (AFB_request * request, char *name); -PUBLIC AFB_plugin *afsvRegister (AFB_session *session); PUBLIC int doRestApi(struct MHD_Connection *connection, AFB_session *session, const char *method, const char* url); +void initPlugins (AFB_session *session); + +typedef AFB_plugin* (*AFB_pluginCB)(AFB_session *session); +PUBLIC AFB_plugin* afsvRegister (AFB_session *session); +PUBLIC AFB_plugin* dbusRegister (AFB_session *session); +PUBLIC AFB_plugin* alsaRegister (AFB_session *session); + + // Session handling -PUBLIC AFB_ERROR sessionCheckdir (AFB_session *session); +PUBLIC AFB_error sessionCheckdir (AFB_session *session); PUBLIC json_object *sessionList (AFB_session *session, AFB_request *request); PUBLIC json_object *sessionToDisk (AFB_session *session, AFB_request *request, char *name,json_object *jsonSession); PUBLIC json_object *sessionFromDisk (AFB_session *session, AFB_request *request, char *name); // Httpd server -PUBLIC AFB_ERROR httpdStart (AFB_session *session); -PUBLIC AFB_ERROR httpdLoop (AFB_session *session); +PUBLIC AFB_error httpdStart (AFB_session *session); +PUBLIC AFB_error httpdLoop (AFB_session *session); PUBLIC void httpdStop (AFB_session *session); // config management PUBLIC char *configTime (void); PUBLIC AFB_session *configInit (void); -PUBLIC json_object *jsonNewMessage (AFB_ERROR level, char* format, ...); -PUBLIC json_object *jsonNewStatus (AFB_ERROR level); +PUBLIC json_object *jsonNewMessage (AFB_error level, char* format, ...); +PUBLIC json_object *jsonNewStatus (AFB_error level); PUBLIC json_object *jsonNewjtype (void); -PUBLIC json_object *jsonNewMessage (AFB_ERROR level, char* format, ...); +PUBLIC json_object *jsonNewMessage (AFB_error level, char* format, ...); PUBLIC void jsonDumpObject (json_object * jObject); -PUBLIC AFB_ERROR configLoadFile (AFB_session * session, AFB_config *cliconfig); +PUBLIC AFB_error configLoadFile (AFB_session * session, AFB_config *cliconfig); PUBLIC void configStoreFile (AFB_session * session); -- cgit 1.2.3-korg