X-Git-Url: https://gerrit.automotivelinux.org/gerrit/gitweb?a=blobdiff_plain;f=src%2Fafb-config.h;h=f1a27f7add18cbdda4f93c0a55e76ed82d9c9bb0;hb=9bc48026a93e8330a2bd2795e78d5951c16b7d33;hp=bd8d07a0deb6bf0106b21558150898670b3edb71;hpb=67966a2f96613d833f493ef3773c442d35f8ed31;p=src%2Fapp-framework-binder.git diff --git a/src/afb-config.h b/src/afb-config.h index bd8d07a0..f1a27f7a 100644 --- a/src/afb-config.h +++ b/src/afb-config.h @@ -1,61 +1,75 @@ /* - local-def.h -- provide a REST/HTTP interface + * Copyright (C) 2015, 2016, 2017 "IoT.bzh" + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ - Copyright (C) 2015, Fulup Ar Foll +#pragma once - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. +/* + * other definitions --------------------------------------------------- + */ - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. +struct afb_config_list { + struct afb_config_list *next; + char *value; +}; -*/ -#ifndef LOCAL_DEF_H -#define LOCAL_DEF_H +// main config structure +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 */ -/* other definitions --------------------------------------------------- */ + 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; -// Note: because of a bug in libmagic MAGIC_DB NULL should not be used for default -#define MAX_ALIAS 10 // max number of aliases + char **exec; -#define DEFLT_CNTX_TIMEOUT 3600 // default Client Connection Timeout -#define DEFLT_API_TIMEOUT 0 // 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 + /* integers */ + int httpdPort; + int cacheTimeout; + int apiTimeout; + int cntxTimeout; // Client Session Context timeout + int nbSessionMax; // max count of sessions -#define CTX_NBCLIENTS 10 // allow a default of 10 authenticated clients + /* enums */ + int mode; // mode of listening + int tracereq; + int traceditf; + int tracesvc; + int traceevt; -// 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 httpd file download - 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 mode; // mode of listening - int aliascount; - struct { - char *url; - char *path; - } aliasdir[MAX_ALIAS]; // alias mapping for icons,apps,... + /* 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 */ }; -#endif /* LOCAL_DEF_H */ +extern struct afb_config *afb_config_parse_arguments(int argc, char **argv); +extern void afb_config_dump(struct afb_config *config);