X-Git-Url: https://gerrit.automotivelinux.org/gerrit/gitweb?a=blobdiff_plain;f=src%2Fafb-config.h;h=b47670d3b6743e9b369120d846ad67208d2e4e22;hb=f23bc8bdcb4420b9a7ee825a6fdf7a2c47680f5f;hp=7bbad4dfa09c6a94b2dd30fbd7362331a50604f2;hpb=a758d774aa5dacc07d2840f1b7ccef793863389f;p=src%2Fapp-framework-binder.git diff --git a/src/afb-config.h b/src/afb-config.h index 7bbad4df..b47670d3 100644 --- a/src/afb-config.h +++ b/src/afb-config.h @@ -16,51 +16,60 @@ #pragma once -/* other definitions --------------------------------------------------- */ - -// Note: because of a bug in libmagic MAGIC_DB NULL should not be used for default -#define MAX_ALIAS 10 // max number of aliases - -#define DEFLT_CNTX_TIMEOUT 3600 // default Client Connection Timeout -#define DEFLT_API_TIMEOUT 20 // default Plugin API Timeout [0=NoLimit for Debug Only] -#define DEFLT_CACHE_TIMEOUT 100000 // default Static File Chache [Client Side Cache 100000~=1day] -#define DEFLT_AUTH_TOKEN NULL // expect for debug should == NULL -#define DEFLT_HTTP_TIMEOUT 15 // Max MibMicroHttp timeout - -#define CTX_NBCLIENTS 10 // allow a default of 10 authenticated clients +/* + * other definitions --------------------------------------------------- + */ -struct afb_config_item -{ - struct afb_config_item *previous; - int kind; +struct afb_config_list { + struct afb_config_list *next; char *value; }; // main config structure -struct afb_config -{ - char *console; // console device name (can be a file or a tty) - int httpdPort; - char *ldpaths; // list of plugins directories - char *rootdir; // base dir for files - char *roothttp; // directory for http files - char *rootbase; // Angular HTML5 base URL - char *rootapi; // Base URL for REST APIs - char *sessiondir; // where to store mixer session files - char *token; // initial authentication token [default NULL no session] - int background; // run in backround mode - int readyfd; // a #fd to signal when ready to serve - int cacheTimeout; - int apiTimeout; - int cntxTimeout; // Client Session Context timeout - int nbSessionMax; // max count of sessions - int mode; // mode of listening - int aliascount; - int tracereq; - struct afb_config_item *items; - struct { - char *url; - char *path; - } aliasdir[MAX_ALIAS]; // alias mapping for icons,apps,... +struct afb_config { + char *console; // console device name (can be a file or a tty) + char *rootdir; // base dir for files + char *roothttp; // directory for http files + char *rootbase; // Angular HTML5 base URL + char *rootapi; // Base URL for REST APIs + char *workdir; // where to run the program + char *uploaddir; // where to store transient files + char *token; // initial authentication token [default NULL no session] + char *name; /* name to set to the daemon */ + + struct afb_config_list *aliases; + struct afb_config_list *dbus_clients; + struct afb_config_list *dbus_servers; + struct afb_config_list *ws_clients; + struct afb_config_list *ws_servers; + struct afb_config_list *so_bindings; + struct afb_config_list *ldpaths; + struct afb_config_list *weak_ldpaths; + struct afb_config_list *calls; + + char **exec; + + /* integers */ + int httpdPort; + int cacheTimeout; + int apiTimeout; + int cntxTimeout; // Client Session Context timeout + int nbSessionMax; // max count of sessions + + /* enums */ + int mode; // mode of listening + int tracereq; + int traceditf; + int tracesvc; + int traceevt; + + /* booleans */ + unsigned no_ldpaths: 1; /* disable default ldpaths */ + unsigned noHttpd: 1; + unsigned background: 1; /* run in backround mode */ + unsigned monitoring: 1; /* activates monitoring */ + unsigned random_token: 1; /* expects a random token */ }; +extern struct afb_config *afb_config_parse_arguments(int argc, char **argv); +extern void afb_config_dump(struct afb_config *config);