From 757fd2bbd952770088c42ec082df73bc8ff60464 Mon Sep 17 00:00:00 2001 From: Sung-jae Park Date: Tue, 30 Sep 2014 16:00:54 +0900 Subject: [PATCH] Replace local conf loader with service conf loader. [model] Redwood,Kiran,B3(Wearable) [binary_type] AP [customer] Docomo/Orange/ATT/Open [issue#] N/A [problem] [cause] [solution] [team] HomeTF [request] [horizontal_expansion] Change-Id: I71ae4a29941f23736ecc4b2bffff68aee5d5469b --- CMakeLists.txt | 2 +- include/conf.h | 179 +-------- include/debug.h | 2 + src/buffer_handler.c | 27 +- src/client_rpc.c | 3 +- src/conf.c | 1048 +------------------------------------------------- src/critical_log.c | 13 +- src/event.c | 7 +- src/fault_manager.c | 5 +- src/instance.c | 21 +- src/io.c | 10 +- src/main.c | 51 ++- src/package.c | 17 +- src/parser.c | 9 +- src/script_handler.c | 15 +- src/server.c | 49 +-- src/setting.c | 3 +- src/slave_life.c | 66 ++-- src/slave_rpc.c | 7 +- src/util.c | 80 ++-- src/xmonitor.c | 13 +- 21 files changed, 223 insertions(+), 1404 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 569b20a..ecc8ea1 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -100,7 +100,6 @@ SET(BUILD_SOURCE src/badge_service.c src/notification_service.c src/service_common.c - src/conf.c ) IF (LIVEBOX) @@ -126,6 +125,7 @@ IF (LIVEBOX) src/pkgmgr.c src/event.c src/file_service.c + src/conf.c ) IF (WAYLAND_SUPPORT) diff --git a/include/conf.h b/include/conf.h index 06d1109..a4d0603 100644 --- a/include/conf.h +++ b/include/conf.h @@ -15,176 +15,14 @@ */ struct conf { - int width; - int height; - - int base_width; - int base_height; - double minimum_period; - - struct { - char *script; - char *abi; - char *pd_group; - double period; - int pixels; - } default_conf; - - struct { - char *name; - char *secured; - char *abi; - } launch_key; - - double default_packet_time; - - char *empty_content; - char *empty_title; - - char *default_content; - char *default_title; - - unsigned long minimum_space; - - char *replace_tag; - - double slave_ttl; - double slave_activate_time; - double slave_relaunch_time; - int slave_relaunch_count; - - int max_log_line; - int max_log_file; - - unsigned long sqlite_flush_max; - - struct { - char *conf; - char *image; - char *script; - char *root; - char *script_port; - char *slave_log; - char *reader; - char *always; - char *db; - char *input; - } path; - - int max_size_type; - - int slave_max_load; - - double ping_time; - - char *vconf_sys_cluster; - int max_pended_ctx_events; - - int use_sw_backend; - char *provider_method; int debug_mode; - int overwrite_content; - int com_core_thread; - int use_xmonitor; - int premultiplied; - - double scale_width_factor; - double scale_height_factor; - - double pd_request_timeout; - - char *emergency_disk; - char *services; - int auto_align; - int use_event_time; - int check_lcd; + int slave_max_load; }; extern struct conf g_conf; -extern int conf_loader(void); -extern void conf_update_size(void); -extern void conf_reset(void); -extern void conf_init(void); - -#define BASE_W g_conf.base_width -#define BASE_H g_conf.base_height - -#define CR 13 -#define LF 10 - -#define EMERGENCY_DISK g_conf.emergency_disk -#define SCALE_WIDTH_FACTOR g_conf.scale_width_factor -#define SCALE_HEIGHT_FACTOR g_conf.scale_height_factor - -#define USE_SW_BACKEND g_conf.use_sw_backend -#define PROVIDER_METHOD g_conf.provider_method -#define DEBUG_MODE g_conf.debug_mode -#define OVERWRITE_CONTENT g_conf.overwrite_content -#define COM_CORE_THREAD g_conf.com_core_thread - -#define MINIMUM_PERIOD g_conf.minimum_period - -#define DEFAULT_SCRIPT g_conf.default_conf.script -#define DEFAULT_ABI g_conf.default_conf.abi -#define DEFAULT_GROUP g_conf.default_conf.pd_group -#define DEFAULT_PERIOD g_conf.default_conf.period -#define DEFAULT_PIXELS g_conf.default_conf.pixels -#define PRIORITY_NO_CHANGE -1.0f - -#define BUNDLE_SLAVE_NAME g_conf.launch_key.name -#define BUNDLE_SLAVE_SECURED g_conf.launch_key.secured -#define BUNDLE_SLAVE_ABI g_conf.launch_key.abi -#define PACKET_TIME g_conf.default_packet_time -#define CONTENT_NO_CHANGE g_conf.empty_content -#define TITLE_NO_CHANGE g_conf.empty_title -#define DEFAULT_TITLE g_conf.default_title -#define DEFAULT_CONTENT g_conf.default_content -#define MINIMUM_SPACE g_conf.minimum_space - -#define IMAGE_PATH g_conf.path.image -#define SCRIPT_PATH g_conf.path.script -#define SCRIPT_PORT_PATH g_conf.path.script_port -#define CONF_PATH g_conf.path.conf -#define ROOT_PATH g_conf.path.root -#define SLAVE_LOG_PATH g_conf.path.slave_log -#define READER_PATH g_conf.path.reader -#define ALWAYS_PATH g_conf.path.always -#define INPUT_PATH g_conf.path.input - -#define REPLACE_TAG_APPID g_conf.replace_tag -#define SLAVE_TTL g_conf.slave_ttl -#define SLAVE_ACTIVATE_TIME g_conf.slave_activate_time -#define SLAVE_RELAUNCH_TIME g_conf.slave_relaunch_time -#define SLAVE_RELAUNCH_COUNT g_conf.slave_relaunch_count - -#define MAX_LOG_LINE g_conf.max_log_line -#define MAX_LOG_FILE g_conf.max_log_file - -#define SQLITE_FLUSH_MAX g_conf.sqlite_flush_max -#define DBFILE g_conf.path.db - -#define GBAR_REQUEST_TIMEOUT g_conf.pd_request_timeout - -#define SLAVE_MAX_LOAD g_conf.slave_max_load -#define DEFAULT_PING_TIME g_conf.ping_time -#define PREMULTIPLIED_COLOR g_conf.premultiplied -#define SERVICES g_conf.services - -#define SERVICE_LIVEBOX "[dynamicbox]" -#define SERVICE_NOTIFICATION "[notification]" -#define SERVICE_BADGE "[badge]" -#define SERVICE_SHORTCUT "[shortcut]" -#define SERVICE_UTILITY "[utility]" -#define SERVICE_FILE "[file]" - -#define PAUSED_FILE "/tmp/.live.paused" - -#define MAX_ABI 256 -#define MAX_PKGNAME 512 -#define DELAY_TIME 0.0000001f -#define DEFAULT_CLUSTER "user,created" -#define MINIMUM_REACTIVATION_TIME 10 +#define DELAY_TIME 0.0000001f +#define HAPI __attribute__((visibility("hidden"))) #if !defined(VCONFKEY_MASTER_STARTED) #define VCONFKEY_MASTER_STARTED "memory/data-provider-master/started" @@ -194,14 +32,7 @@ extern void conf_init(void); #define VCONFKEY_MASTER_RESTART_COUNT "memory/private/data-provider-master/restart_count" #endif -#define USE_XMONITOR g_conf.use_xmonitor -#define AUTO_ALIGN g_conf.auto_align -#define USE_EVENT_TIME g_conf.use_event_time -#define CHECK_LCD g_conf.check_lcd - -#define HAPI __attribute__((visibility("hidden"))) -/*! - * EAPI is defined from eina.h - */ +#define CR 13 +#define LF 10 /* End of a file */ diff --git a/include/debug.h b/include/debug.h index cc4911f..ac1a079 100644 --- a/include/debug.h +++ b/include/debug.h @@ -67,4 +67,6 @@ extern FILE *__file_log_fp; #define PERF_MARK(tag) #endif +#define HAPI __attribute__((visibility("hidden"))) + /* End of a file */ diff --git a/src/buffer_handler.c b/src/buffer_handler.c index c561c27..495e48d 100644 --- a/src/buffer_handler.c +++ b/src/buffer_handler.c @@ -45,6 +45,7 @@ #include #include #include +#include #include "debug.h" #include "conf.h" @@ -331,7 +332,7 @@ static inline int create_gem(dynamicbox_fb_t buffer) return DBOX_STATUS_ERROR_FAULT; } - if (AUTO_ALIGN && gem->dri2_buffer->pitch != gem->w * gem->depth) { + if (DYNAMICBOX_CONF_AUTO_ALIGN && gem->dri2_buffer->pitch != gem->w * gem->depth) { gem->compensate_data = calloc(1, gem->w * gem->h * gem->depth); if (!gem->compensate_data) { ErrPrint("Failed to allocate heap\n"); @@ -340,7 +341,7 @@ static inline int create_gem(dynamicbox_fb_t buffer) DbgPrint("dri2_buffer: %p, name: %p, %dx%d, pitch: %d, buf_count: %d, depth: %d, compensate: %p (%d)\n", gem->dri2_buffer, gem->dri2_buffer->name, gem->w, gem->h, - gem->dri2_buffer->pitch, gem->buf_count, gem->depth, gem->compensate_data, AUTO_ALIGN); + gem->dri2_buffer->pitch, gem->buf_count, gem->depth, gem->compensate_data, DYNAMICBOX_CONF_AUTO_ALIGN); return DBOX_STATUS_ERROR_NONE; } @@ -514,7 +515,7 @@ static inline int load_file_buffer(struct buffer_info *info) char *new_id; int len; - len = strlen(IMAGE_PATH) + 40; + len = strlen(DYNAMICBOX_CONF_IMAGE_PATH) + 40; new_id = malloc(len); if (!new_id) { ErrPrint("Heap: %s\n", strerror(errno)); @@ -522,7 +523,7 @@ static inline int load_file_buffer(struct buffer_info *info) } timestamp = util_timestamp(); - snprintf(new_id, len, SCHEMA_FILE "%s%lf", IMAGE_PATH, timestamp); + snprintf(new_id, len, SCHEMA_FILE "%s%lf", DYNAMICBOX_CONF_IMAGE_PATH, timestamp); size = sizeof(*buffer) + info->w * info->h * info->pixel_size; if (!size) { @@ -1367,7 +1368,7 @@ HAPI int buffer_handler_init(void) return DBOX_STATUS_ERROR_NONE; } - if (USE_SW_BACKEND) { + if (DYNAMICBOX_CONF_USE_SW_BACKEND) { DbgPrint("Fallback to the S/W Backend\n"); s_info.evt_base = 0; s_info.err_base = 0; @@ -1535,7 +1536,7 @@ static inline dynamicbox_fb_t raw_open_pixmap(unsigned int pixmap) { dynamicbox_fb_t buffer; - buffer = calloc(1, sizeof(*buffer) + DEFAULT_PIXELS); + buffer = calloc(1, sizeof(*buffer) + DYNAMICBOX_CONF_DEFAULT_PIXELS); if (!buffer) { ErrPrint("Heap: %s\n", strerror(errno)); return NULL; @@ -1664,7 +1665,7 @@ EAPI int buffer_handler_pixels(struct buffer_info *info) EAPI int buffer_handler_auto_align(void) { - return AUTO_ALIGN; + return DYNAMICBOX_CONF_AUTO_ALIGN; } EAPI int buffer_handler_stride(struct buffer_info *info) @@ -1775,9 +1776,9 @@ HAPI struct buffer_info *buffer_handler_create(struct inst_info *inst, enum dyna switch (type) { case DBOX_FB_TYPE_SHM: - if (pixel_size != DEFAULT_PIXELS) { - DbgPrint("SHM only supportes %d bytes pixels (requested: %d)\n", DEFAULT_PIXELS, pixel_size); - pixel_size = DEFAULT_PIXELS; + if (pixel_size != DYNAMICBOX_CONF_DEFAULT_PIXELS) { + DbgPrint("SHM only supportes %d bytes pixels (requested: %d)\n", DYNAMICBOX_CONF_DEFAULT_PIXELS, pixel_size); + pixel_size = DYNAMICBOX_CONF_DEFAULT_PIXELS; } info->id = strdup(SCHEMA_SHM "-1"); @@ -1788,9 +1789,9 @@ HAPI struct buffer_info *buffer_handler_create(struct inst_info *inst, enum dyna } break; case DBOX_FB_TYPE_FILE: - if (pixel_size != DEFAULT_PIXELS) { - DbgPrint("FILE only supportes %d bytes pixels (requested: %d)\n", DEFAULT_PIXELS, pixel_size); - pixel_size = DEFAULT_PIXELS; + if (pixel_size != DYNAMICBOX_CONF_DEFAULT_PIXELS) { + DbgPrint("FILE only supportes %d bytes pixels (requested: %d)\n", DYNAMICBOX_CONF_DEFAULT_PIXELS, pixel_size); + pixel_size = DYNAMICBOX_CONF_DEFAULT_PIXELS; } info->id = strdup(SCHEMA_FILE "/tmp/.live.undefined"); diff --git a/src/client_rpc.c b/src/client_rpc.c index 0693ad7..723b37c 100644 --- a/src/client_rpc.c +++ b/src/client_rpc.c @@ -24,6 +24,7 @@ #include #include #include +#include #include "client_life.h" #include "instance.h" @@ -151,7 +152,7 @@ static inline void push_command(struct command *command) return; } - s_info.command_consumer = ecore_timer_add(PACKET_TIME, command_consumer_cb, NULL); + s_info.command_consumer = ecore_timer_add(DYNAMICBOX_CONF_PACKET_TIME, command_consumer_cb, NULL); if (!s_info.command_consumer) { ErrPrint("Failed to add command consumer\n"); s_info.command_list = eina_list_remove(s_info.command_list, command); diff --git a/src/conf.c b/src/conf.c index c92e847..8f52983 100644 --- a/src/conf.c +++ b/src/conf.c @@ -1,1048 +1,8 @@ -/* - * Copyright 2013 Samsung Electronics Co., Ltd - * - * Licensed under the Flora License, Version 1.1 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://floralicense.org/license/ - * - * 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. - */ - -#include -#include -#include -#include -#include -#include // access - -#include -#if defined(HAVE_LIVEBOX) -#include -#else -#include "lite-errno.h" -#endif -#include - #include "conf.h" -#include "util.h" -#include "debug.h" - -static const char *CONF_DEFAULT_SERVICES = "[dynamicbox],[shortcut],[notification],[badge],[utility],[file]"; -static const char *CONF_DEFAULT_EMERGENCY_DISK = "source=tmpfs;type=tmpfs;option=size=6M"; -static const char *CONF_DEFAULT_PATH_CONF = "/opt/usr/live/%s/etc/%s.conf"; -static const char *CONF_DEFAULT_PATH_IMAGE = "/opt/usr/share/live_magazine/"; -static const char *CONF_DEFAULT_PATH_LOG = "/opt/usr/share/live_magazine/log"; -static const char *CONF_DEFAULT_PATH_READER = "/opt/usr/share/live_magazine/reader"; -static const char *CONF_DEFAULT_PATH_ALWAYS = "/opt/usr/share/live_magazine/always"; -static const char *CONF_DEFAULT_PATH_SCRIPT = "/opt/usr/live/%s/res/script/%s.edj"; -static const char *CONF_DEFAULT_PATH_ROOT = "/opt/usr/live/"; -static const char *CONF_DEFAULT_PATH_SCRIPT_PORT = "/usr/share/data-provider-master/plugin-script/"; -static const char *CONF_DEFAULT_PATH_DB = "/opt/dbspace/.dynamicbox.db"; -static const char *CONF_DEFAULT_PATH_INPUT = "/dev/input/event2"; -static const char *CONF_DEFAULT_SCRIPT_TYPE = "edje"; -static const char *CONF_DEFAULT_ABI = "c"; -static const char *CONF_DEFAULT_GBAR_GROUP = "disclosure"; -static const char *CONF_DEFAULT_LAUNCH_BUNDLE_NAME = "name"; -static const char *CONF_DEFAULT_LAUNCH_BUNDLE_SECURED = "secured"; -static const char *CONF_DEFAULT_LAUNCH_BUNDLE_ABI = "abi"; -static const char *CONF_DEFAULT_CONTENT = "default"; -static const char *CONF_DEFAULT_TITLE = ""; -static const char *CONF_DEFAULT_EMPTY_CONTENT = ""; -static const char *CONF_DEFAULT_EMPTY_TITLE = ""; -static const char *CONF_DEFAULT_REPLACE_TAG = "/APPID/"; -static const char *CONF_DEFAULT_PROVIDER_METHOD = "pixmap"; -static const int CONF_DEFAULT_WIDTH = 0; -static const int CONF_DEFAULT_HEIGHT = 0; -static const int CONF_DEFAULT_BASE_WIDTH = 720; -static const int CONF_DEFAULT_BASE_HEIGHT = 1280; -static const double CONF_DEFAULT_MINIMUM_PERIOD = 1.0f; -static const double CONF_DEFAULT_PERIOD = -1.0f; -static const double CONF_DEFAULT_PACKET_TIME = 0.0001f; -static const unsigned long CONF_DEFAULT_MINIMUM_SPACE = 5242880; -static const double CONF_DEFAULT_SLAVE_TTL = 30.0f; -static const double CONF_DEFAULT_SLAVE_ACTIVATE_TIME = 30.0f; -static const double CONF_DEFAULT_SLAVE_RELAUNCH_TIME = 3.0f; -static const int CONF_DEFAULT_SLAVE_RELAUNCH_COUNT = 3; -static const int CONF_DEFAULT_MAX_LOG_LINE = 1000; -static const int CONF_DEFAULT_MAX_LOG_FILE = 3; -static const int CONF_DEFAULT_SQLITE_FLUSH_MAX = 1048576; -static const double CONF_DEFAULT_PING_TIME = 240.0f; -static const int CONF_DEFAULT_SLAVE_MAX_LOAD = 30; -static const int CONF_DEFAULT_USE_SW_BACKEND = 0; -static const int CONF_DEFAULT_DEBUG_MODE = 0; -static const int CONF_DEFAULT_OVERWRITE_CONTENT = 0; -static const int CONF_DEFAULT_COM_CORE_THREAD = 1; -static const int CONF_DEFAULT_USE_XMONITOR = 0; -static const int CONF_DEFAULT_PREMULTIPLIED = 1; -static const double CONF_DEFAULT_SCALE_WIDTH_FACTOR = 1.0f; -static const double CONF_DEFAULT_SCALE_HEIGHT_FACTOR = 1.0f; -static const double CONF_DEFAULT_GBAR_REQUEST_TIMEOUT = 5.0f; -static const int CONF_DEFAULT_PIXELS = sizeof(int); -static const int CONF_DEFAULT_AUTO_ALIGN = 1; -static const int CONF_DEFAULT_USE_EVENT_TIME = 1; -static const int CONF_DEFAULT_CHECK_LCD = 1; - -#define CONF_PATH_FORMAT "/usr/share/data-provider-master/%dx%d/conf.ini" - -int errno; - -HAPI struct conf g_conf; - -HAPI void conf_update_size(void) -{ - util_screen_size_get(&g_conf.width, &g_conf.height); - - g_conf.scale_width_factor = (double)g_conf.width / (double)BASE_W; - g_conf.scale_height_factor = (double)g_conf.height / (double)BASE_H; -} - -static void use_xmonitor(char *buffer) -{ - g_conf.use_xmonitor = !strcasecmp(buffer, "true"); -} - -static void emergency_disk_handler(char *buffer) -{ - g_conf.emergency_disk = strdup(buffer); - if (!g_conf.emergency_disk) { - ErrPrint("Heap: %s\n", strerror(errno)); - } -} - -static void check_lcd_handler(char *buffer) -{ - g_conf.check_lcd = !strcasecmp(buffer, "true"); -} - -static void use_event_time_handler(char *buffer) -{ - g_conf.use_event_time = !strcasecmp(buffer, "true"); -} - -static void auto_align_handler(char *buffer) -{ - g_conf.auto_align = !strcasecmp(buffer, "true"); -} - -static void services_handler(char *buffer) -{ - g_conf.services = strdup(buffer); - if (!g_conf.services) { - ErrPrint("Heap: %s\n", strerror(errno)); - } -} - -static void use_sw_backend_handler(char *buffer) -{ - g_conf.use_sw_backend = !strcasecmp(buffer, "true"); -} - -static void provider_method_handler(char *buffer) -{ - g_conf.provider_method = strdup(buffer); - if (!g_conf.provider_method) { - ErrPrint("Heap: %s\n", strerror(errno)); - } -} - -static void debug_mode_handler(char *buffer) -{ - g_conf.debug_mode = !strcasecmp(buffer, "true"); -} - -static void overwrite_content_handler(char *buffer) -{ - g_conf.overwrite_content = !strcasecmp(buffer, "true"); -} - -static void com_core_thread_handler(char *buffer) -{ - g_conf.com_core_thread = !strcasecmp(buffer, "true"); -} - -static void base_width_handler(char *buffer) -{ - if (sscanf(buffer, "%d", &g_conf.base_width) != 1) { - if (!strncasecmp(buffer, "screen", strlen("screen"))) { - int h; - - util_screen_size_get(&g_conf.base_width, &h); - DbgPrint("Base width: %d\n", g_conf.base_width); - } else { - ErrPrint("Failed to parse the base_width\n"); - } - } -} - -static void base_height_handler(char *buffer) -{ - if (sscanf(buffer, "%d", &g_conf.base_height) != 1) { - if (!strncasecmp(buffer, "screen", strlen("screen"))) { - int w; - util_screen_size_get(&w, &g_conf.base_height); - } else { - ErrPrint("Failed to parse the base_height\n"); - } - } -} - -static void minimum_period_handler(char *buffer) -{ - if (sscanf(buffer, "%lf", &g_conf.minimum_period) != 1) { - ErrPrint("Failed to parse the minimum_period\n"); - } - DbgPrint("Minimum period: %lf\n", g_conf.minimum_period); -} - -static void pixels_handler(char *buffer) -{ - if (sscanf(buffer, "%d", &g_conf.default_conf.pixels) != 1) { - ErrPrint("Failed to parse the minimum_period\n"); - } - DbgPrint("Default pixels: %lf\n", g_conf.default_conf.pixels); -} - -static void script_handler(char *buffer) -{ - g_conf.default_conf.script = strdup(buffer); - if (!g_conf.default_conf.script) { - ErrPrint("Heap: %s\n", strerror(errno)); - } -} - -static void default_abi_handler(char *buffer) -{ - g_conf.default_conf.abi = strdup(buffer); - if (!g_conf.default_conf.abi) { - ErrPrint("Heap: %s\n", strerror(errno)); - } -} - -static void default_group_handler(char *buffer) -{ - g_conf.default_conf.pd_group = strdup(buffer); - if (!g_conf.default_conf.pd_group) { - ErrPrint("Heap: %s\n", strerror(errno)); - } -} - -static void default_period_handler(char *buffer) -{ - if (sscanf(buffer, "%lf", &g_conf.default_conf.period) != 1) { - ErrPrint("Failed to parse the default_period\n"); - } - DbgPrint("Default Period: %lf\n", g_conf.default_conf.period); -} - -static void default_packet_time_handler(char *buffer) -{ - if (sscanf(buffer, "%lf", &g_conf.default_packet_time) != 1) { - ErrPrint("Failed to parse the default_packet_time\n"); - } - DbgPrint("Default packet time: %lf\n", g_conf.default_packet_time); -} - -static void default_content_handler(char *buffer) -{ - g_conf.default_content = strdup(buffer); - if (!g_conf.default_content) { - ErrPrint("Heap: %s\n", strerror(errno)); - } -} - -static void default_title_handler(char *buffer) -{ - g_conf.default_title = strdup(buffer); - if (!g_conf.default_title) { - ErrPrint("Heap: %s\n", strerror(errno)); - } -} - -static void minimum_space_handler(char *buffer) -{ - if (sscanf(buffer, "%lu", &g_conf.minimum_space) != 1) { - ErrPrint("Failed to parse the minimum_space\n"); - } -} - -static void replace_tag_handler(char *buffer) -{ - g_conf.replace_tag = strdup(buffer); - if (!g_conf.replace_tag) { - ErrPrint("Heap: %s\n", strerror(errno)); - } -} - -static void slave_ttl_handler(char *buffer) -{ - if (sscanf(buffer, "%lf", &g_conf.slave_ttl) != 1) { - ErrPrint("Failed to parse the slave_ttl\n"); - } - DbgPrint("Slave TTL: %lf\n", g_conf.slave_ttl); -} - -static void slave_activate_time_handler(char *buffer) -{ - if (sscanf(buffer, "%lf", &g_conf.slave_activate_time) != 1) { - ErrPrint("Failed to parse the slave_activate_time\n"); - } - DbgPrint("Slave activate time: %lf\n", g_conf.slave_activate_time); -} - -static void slave_relaunch_time_handler(char *buffer) -{ - if (sscanf(buffer, "%lf", &g_conf.slave_relaunch_time) != 1) { - ErrPrint("Failed to parse the slave_activate_time\n"); - } - DbgPrint("Slave relaunch time: %lf\n", g_conf.slave_relaunch_time); -} - -static void slave_relaunch_count_handler(char *buffer) -{ - if (sscanf(buffer, "%d", &g_conf.slave_relaunch_count) != 1) { - ErrPrint("Failed to parse the max_log_line\n"); - } -} - -static void max_log_line_handler(char *buffer) -{ - if (sscanf(buffer, "%d", &g_conf.max_log_line) != 1) { - ErrPrint("Failed to parse the max_log_line\n"); - } -} - -static void max_log_file_handler(char *buffer) -{ - if (sscanf(buffer, "%d", &g_conf.max_log_file) != 1) { - ErrPrint("Failed to parse the max_log_file\n"); - } -} - -static void sqlite_flush_max_handler(char *buffer) -{ - if (sscanf(buffer, "%lu", &g_conf.sqlite_flush_max) != 1) { - ErrPrint("Failed to parse the sqlite_flush_max\n"); - } -} - -static void db_path_handler(char *buffer) -{ - g_conf.path.db = strdup(buffer); - if (!g_conf.path.db) { - ErrPrint("Heap: %s\n", strerror(errno)); - } -} - -static void reader_path_handler(char *buffer) -{ - g_conf.path.reader = strdup(buffer); - if (!g_conf.path.reader) { - ErrPrint("Heap: %s\n", strerror(errno)); - } -} - -static void always_path_handler(char *buffer) -{ - g_conf.path.always = strdup(buffer); - if (!g_conf.path.always) { - ErrPrint("Heap: %s\n", strerror(errno)); - } -} - -static void log_path_handler(char *buffer) -{ - g_conf.path.slave_log = strdup(buffer); - if (!g_conf.path.slave_log) { - ErrPrint("Heap: %s\n", strerror(errno)); - } -} - -static void script_port_path_handler(char *buffer) -{ - g_conf.path.script_port = strdup(buffer); - if (!g_conf.path.script_port) { - ErrPrint("Heap: %s\n", strerror(errno)); - } -} - -static void share_path_handler(char *buffer) -{ - g_conf.path.image = strdup(buffer); - if (!g_conf.path.image) { - ErrPrint("Heap: %s\n", strerror(errno)); - } -} - -static void input_path_handler(char *buffer) -{ - g_conf.path.input = strdup(buffer); - if (!g_conf.path.input) { - ErrPrint("Heap: %s\n", strerror(errno)); - } -} - -static void ping_time_handler(char *buffer) -{ - if (sscanf(buffer, "%lf", &g_conf.ping_time) != 1) { - ErrPrint("Failed to parse the ping_time\n"); - } - DbgPrint("Default ping time: %lf\n", g_conf.ping_time); -} - -static void slave_max_loader(char *buffer) -{ - if (sscanf(buffer, "%d", &g_conf.slave_max_load) != 1) { - ErrPrint("Failed to parse the slave_max_load\n"); - } -} - -static void premultiplied_handler(char *buffer) -{ - if (sscanf(buffer, "%d", &g_conf.premultiplied) != 1) { - ErrPrint("Failed to parse the premultiplied color\n"); - } - - DbgPrint("Premultiplied: %d\n", g_conf.premultiplied); -} - -static void pd_request_timeout_handler(char *buffer) -{ - if (sscanf(buffer, "%lf", &g_conf.pd_request_timeout) != 1) { - ErrPrint("Failed to parse the request_timeout\n"); - } - DbgPrint("Default GBAR request timeout: %lf\n", g_conf.pd_request_timeout); -} - -HAPI void conf_init(void) -{ - g_conf.width = CONF_DEFAULT_WIDTH; - g_conf.height = CONF_DEFAULT_HEIGHT; - g_conf.base_width = CONF_DEFAULT_BASE_WIDTH; - g_conf.base_height = CONF_DEFAULT_BASE_HEIGHT; - g_conf.minimum_period = CONF_DEFAULT_MINIMUM_PERIOD; - g_conf.default_conf.period = CONF_DEFAULT_PERIOD; - g_conf.default_conf.pixels = CONF_DEFAULT_PIXELS; - g_conf.minimum_space = CONF_DEFAULT_MINIMUM_SPACE; - g_conf.default_packet_time = CONF_DEFAULT_PACKET_TIME; - g_conf.slave_ttl = CONF_DEFAULT_SLAVE_TTL; - g_conf.slave_activate_time = CONF_DEFAULT_SLAVE_ACTIVATE_TIME; - g_conf.slave_relaunch_time = CONF_DEFAULT_SLAVE_RELAUNCH_TIME; - g_conf.slave_relaunch_count = CONF_DEFAULT_SLAVE_RELAUNCH_COUNT; - g_conf.max_log_line = CONF_DEFAULT_MAX_LOG_LINE; - g_conf.max_log_file = CONF_DEFAULT_MAX_LOG_FILE; - g_conf.sqlite_flush_max = CONF_DEFAULT_SQLITE_FLUSH_MAX; - g_conf.ping_time = CONF_DEFAULT_PING_TIME; - g_conf.slave_max_load = CONF_DEFAULT_SLAVE_MAX_LOAD; - g_conf.use_sw_backend = CONF_DEFAULT_USE_SW_BACKEND; - g_conf.debug_mode = CONF_DEFAULT_DEBUG_MODE; - g_conf.overwrite_content = CONF_DEFAULT_OVERWRITE_CONTENT; - g_conf.com_core_thread = CONF_DEFAULT_COM_CORE_THREAD; - g_conf.use_xmonitor = CONF_DEFAULT_USE_XMONITOR; - g_conf.scale_width_factor = CONF_DEFAULT_SCALE_WIDTH_FACTOR; - g_conf.scale_height_factor = CONF_DEFAULT_SCALE_HEIGHT_FACTOR; - g_conf.pd_request_timeout = CONF_DEFAULT_GBAR_REQUEST_TIMEOUT; - g_conf.premultiplied = CONF_DEFAULT_PREMULTIPLIED; - g_conf.default_conf.script = (char *)CONF_DEFAULT_SCRIPT_TYPE; - g_conf.default_conf.abi = (char *)CONF_DEFAULT_ABI; - g_conf.default_conf.pd_group = (char *)CONF_DEFAULT_GBAR_GROUP; - g_conf.launch_key.name = (char *)CONF_DEFAULT_LAUNCH_BUNDLE_NAME; - g_conf.launch_key.secured = (char *)CONF_DEFAULT_LAUNCH_BUNDLE_SECURED; - g_conf.launch_key.abi = (char *)CONF_DEFAULT_LAUNCH_BUNDLE_ABI; - g_conf.empty_content = (char *)CONF_DEFAULT_EMPTY_CONTENT; - g_conf.empty_title = (char *)CONF_DEFAULT_EMPTY_TITLE; - g_conf.default_content = (char *)CONF_DEFAULT_CONTENT; - g_conf.default_title = (char *)CONF_DEFAULT_TITLE; - g_conf.replace_tag = (char *)CONF_DEFAULT_REPLACE_TAG; - g_conf.path.conf = (char *)CONF_DEFAULT_PATH_CONF; - g_conf.path.image = (char *)CONF_DEFAULT_PATH_IMAGE; - g_conf.path.slave_log = (char *)CONF_DEFAULT_PATH_LOG; - g_conf.path.reader = (char *)CONF_DEFAULT_PATH_READER; - g_conf.path.always = (char *)CONF_DEFAULT_PATH_ALWAYS; - g_conf.path.script = (char *)CONF_DEFAULT_PATH_SCRIPT; - g_conf.path.root = (char *)CONF_DEFAULT_PATH_ROOT; - g_conf.path.script_port = (char *)CONF_DEFAULT_PATH_SCRIPT_PORT; - g_conf.path.db = (char *)CONF_DEFAULT_PATH_DB; - g_conf.path.input = (char *)CONF_DEFAULT_PATH_INPUT; - g_conf.provider_method = (char *)CONF_DEFAULT_PROVIDER_METHOD; - g_conf.emergency_disk = (char *)CONF_DEFAULT_EMERGENCY_DISK; - g_conf.services = (char *)CONF_DEFAULT_SERVICES; - g_conf.auto_align = CONF_DEFAULT_AUTO_ALIGN; - g_conf.use_event_time = CONF_DEFAULT_USE_EVENT_TIME; - g_conf.check_lcd = CONF_DEFAULT_CHECK_LCD; -} - -/* - * Find proper configuration and install(link) it to conf path. - */ -static char *conf_path(void) -{ - int w; - int h; - char *path; - int length; - - if (util_screen_size_get(&w, &h) != DBOX_STATUS_ERROR_NONE) { - return NULL; - } - - length = strlen(CONF_PATH_FORMAT) + 12; // 12 == RESERVED SPACE - path = calloc(1, length); - if (!path) { - ErrPrint("calloc: %s\n", strerror(errno)); - return NULL; - } - - snprintf(path, length, CONF_PATH_FORMAT, w, h); - DbgPrint("Selected conf file: %s\n", path); - if (access(path, F_OK) != 0) { - ErrPrint("Fallback to default, access: %s\n", strerror(errno)); - strncpy(path, DEFAULT_MASTER_CONF, length); - if (access(path, F_OK) != 0) { - ErrPrint("Serious error - there is no conf file, use default setting: %s\n", strerror(errno)); - DbgFree(path); - path = NULL; - } - } - - return path; -} - - -HAPI int conf_loader(void) -{ - char *conf_file; - FILE *fp; - int c; - enum state { - START, - SPACE, - TOKEN, - VALUE, - ERROR, - COMMENT, - END - } state; - int ch_idx; - int token_idx; - int buffer_idx; - int quote; - int linelen; - char buffer[256]; - static const struct token_parser { - const char *name; - void (*handler)(char *buffer); - } token_handler[] = { - { - .name = "base_width", - .handler = base_width_handler, - }, - { - .name = "base_height", - .handler = base_height_handler, - }, - { - .name = "minimum_period", - .handler = minimum_period_handler, - }, - { - .name = "script", - .handler = script_handler, - }, - { - .name = "pixels", - .handler = pixels_handler, - }, - { - .name = "default_abi", - .handler = default_abi_handler, - }, - { - .name = "default_group", - .handler = default_group_handler, - }, - { - .name = "default_period", - .handler = default_period_handler, - }, - { - .name = "default_packet_time", - .handler = default_packet_time_handler, - }, - { - .name = "default_content", - .handler = default_content_handler, - }, - { - .name = "default_title", - .handler = default_title_handler, - }, - { - .name = "minimum_space", - .handler = minimum_space_handler, - }, - { - .name = "replace_tag", - .handler = replace_tag_handler, - }, - { - .name = "slave_ttl", - .handler = slave_ttl_handler, - }, - { - .name = "slave_activate_time", - .handler = slave_activate_time_handler, - }, - { - .name = "slave_relaunch_time", - .handler = slave_relaunch_time_handler, - }, - { - .name = "slave_relaunch_count", - .handler = slave_relaunch_count_handler, - }, - { - .name = "max_log_line", - .handler = max_log_line_handler, - }, - { - .name = "max_log_file", - .handler = max_log_file_handler, - }, - { - .name = "sqilte_flush_max", - .handler = sqlite_flush_max_handler, - }, - { - .name = "db_path", - .handler = db_path_handler, - }, - { - .name = "log_path", - .handler = log_path_handler, - }, - { - .name = "reader_path", - .handler = reader_path_handler, - }, - { - .name = "always_path", - .handler = always_path_handler, - }, - { - .name = "share_path", - .handler = share_path_handler, - }, - { - .name = "script_port_path", - .handler = script_port_path_handler, - }, - { - .name = "ping_interval", - .handler = ping_time_handler, - }, - { - .name = "slave_max_load", - .handler = slave_max_loader, - }, - { - .name = "use_sw_backend", - .handler = use_sw_backend_handler, - }, - { - .name = "emergency_disk", - .handler = emergency_disk_handler, - }, - { - .name = "services", - .handler = services_handler, - }, - { - .name = "auto_align", - .handler = auto_align_handler, - }, - { - .name = "use_event_time", - .handler = use_event_time_handler, - }, - { - .name = "check_lcd", - .handler = check_lcd_handler, - }, - { - .name = "use_xmonitor", - .handler = use_xmonitor, - }, - { - .name = "provider_method", - .handler = provider_method_handler, - }, - { - .name = "debug_mode", - .handler = debug_mode_handler, - }, - { - .name = "overwrite_content", - .handler = overwrite_content_handler, - }, - { - .name = "com_core_thread", - .handler = com_core_thread_handler, - }, - { - .name = "input", - .handler = input_path_handler, - }, - { - .name = "pd_request_timeout", - .handler = pd_request_timeout_handler, - }, - { - .name = "premultiplied", - .handler = premultiplied_handler, - }, - { - .name = NULL, - .handler = NULL, - }, - }; - - conf_file = conf_path(); - if (!conf_file) { - return DBOX_STATUS_ERROR_IO_ERROR; - } - - fp = fopen(conf_file, "rt"); - DbgFree(conf_file); - if (!fp) { - ErrPrint("Error: %s\n", strerror(errno)); - return DBOX_STATUS_ERROR_IO_ERROR; - } - - state = START; - ch_idx = 0; - token_idx = -1; - buffer_idx = 0; - quote = 0; - linelen = 0; - do { - c = getc(fp); - if ((c == EOF) && (state == VALUE)) { - DbgPrint("[%s:%d] VALUE state EOF\n", __func__, __LINE__); - state = END; - } - - switch (state) { - case COMMENT: - if (c == CR || c == LF || c == EOF) { - buffer[buffer_idx] = '\0'; - - state = START; - token_idx = -1; - ch_idx = 0; - buffer_idx = 0; - linelen = -1; /* Will be ZERO by follwing increment code */ - quote = 0; - } else { - buffer[buffer_idx++] = c; - if (buffer_idx == (sizeof(buffer) - 1)) { - buffer[buffer_idx] = '\0'; - buffer_idx = 0; - } - } - break; - case START: - if (linelen == 0 && c == '#') { - state = COMMENT; - } else if (isspace(c)) { - /* Ignore empty space */ - } else { - state = TOKEN; - ungetc(c, fp); - } - break; - case SPACE: - if (c == '=') { - state = VALUE; - } else if (!isspace(c)) { - state = ERROR; - } - break; - case VALUE: - if (c == '"') { - if (quote == 1) { - buffer[buffer_idx] = '\0'; - state = END; - } else if (buffer_idx != 0) { - buffer[buffer_idx++] = c; - if (buffer_idx >= sizeof(buffer)) { - state = ERROR; - } - } else { - quote = 1; - } - } else if (isspace(c)) { - if (buffer_idx == 0) { - /* Ignore */ - } else if (quote == 1) { - buffer[buffer_idx++] = c; - if (buffer_idx >= sizeof(buffer)) { - state = ERROR; - } - } else { - buffer[buffer_idx] = '\0'; - ungetc(c, fp); - state = END; - } - } else { - buffer[buffer_idx++] = c; - if (buffer_idx >= sizeof(buffer)) { - state = ERROR; - } - } - break; - case TOKEN: - if (c == '=') { - if (token_idx < 0) { - state = ERROR; - } else { - state = VALUE; - } - } else if (isspace(c)) { - if (token_idx < 0) { - break; - } - - if (token_handler[token_idx].name[ch_idx] != '\0') { - state = ERROR; - } else { - state = SPACE; - } - } else { - if (token_idx < 0) { - /* Now start to find a token! */ - token_idx = 0; - } - - if (token_handler[token_idx].name[ch_idx] == c) { - ch_idx++; - } else { - ungetc(c, fp); - while (ch_idx-- > 0) - ungetc(token_handler[token_idx].name[ch_idx], fp); - - token_idx++; - - if (token_handler[token_idx].name == NULL) { - state = ERROR; - } else { - ch_idx = 0; - } - } - } - break; - case ERROR: - if (c == CR || c == LF || c == EOF) { - state = START; - token_idx = -1; - buffer_idx = 0; - ch_idx = 0; - linelen = -1; - quote = 0; - } - break; - case END: - if (c == LF || c == CR || c == EOF) { - state = START; - - if (token_idx >= 0 && token_handler[token_idx].handler) { - buffer[buffer_idx] = '\0'; - token_handler[token_idx].handler(buffer); - } - - token_idx = -1; - ch_idx = 0; - buffer_idx = 0; - linelen = -1; - quote = 0; - /* Finish */ - } else if (isspace(c)) { - /* ignore */ - } else { - state = ERROR; - } - break; - default: - /* ?? */ - break; - } - - linelen++; - } while (c != EOF); - - if (fclose(fp) != 0) { - ErrPrint("fclose: %s\n", strerror(errno)); - } - return DBOX_STATUS_ERROR_NONE; -} - -HAPI void conf_reset(void) -{ - g_conf.width = CONF_DEFAULT_WIDTH; - g_conf.height = CONF_DEFAULT_HEIGHT; - g_conf.base_width = CONF_DEFAULT_BASE_WIDTH; - g_conf.base_height = CONF_DEFAULT_BASE_HEIGHT; - g_conf.minimum_period = CONF_DEFAULT_MINIMUM_PERIOD; - g_conf.default_conf.period = CONF_DEFAULT_PERIOD; - g_conf.minimum_space = CONF_DEFAULT_MINIMUM_SPACE; - g_conf.default_packet_time = CONF_DEFAULT_PACKET_TIME; - g_conf.slave_ttl = CONF_DEFAULT_SLAVE_TTL; - g_conf.slave_activate_time = CONF_DEFAULT_SLAVE_ACTIVATE_TIME; - g_conf.slave_relaunch_time = CONF_DEFAULT_SLAVE_RELAUNCH_TIME; - g_conf.slave_relaunch_count = CONF_DEFAULT_SLAVE_RELAUNCH_COUNT; - g_conf.max_log_line = CONF_DEFAULT_MAX_LOG_LINE; - g_conf.max_log_file = CONF_DEFAULT_MAX_LOG_FILE; - g_conf.sqlite_flush_max = CONF_DEFAULT_SQLITE_FLUSH_MAX; - g_conf.ping_time = CONF_DEFAULT_PING_TIME; - g_conf.slave_max_load = CONF_DEFAULT_SLAVE_MAX_LOAD; - g_conf.use_sw_backend = CONF_DEFAULT_USE_SW_BACKEND; - g_conf.debug_mode = CONF_DEFAULT_DEBUG_MODE; - g_conf.overwrite_content = CONF_DEFAULT_OVERWRITE_CONTENT; - g_conf.com_core_thread = CONF_DEFAULT_COM_CORE_THREAD; - g_conf.use_xmonitor = CONF_DEFAULT_USE_XMONITOR; - g_conf.scale_width_factor = CONF_DEFAULT_SCALE_WIDTH_FACTOR; - g_conf.scale_height_factor = CONF_DEFAULT_SCALE_HEIGHT_FACTOR; - g_conf.pd_request_timeout = CONF_DEFAULT_GBAR_REQUEST_TIMEOUT; - g_conf.premultiplied = CONF_DEFAULT_PREMULTIPLIED; - g_conf.default_conf.pixels = CONF_DEFAULT_PIXELS; - g_conf.auto_align = CONF_DEFAULT_AUTO_ALIGN; - g_conf.use_event_time = CONF_DEFAULT_USE_EVENT_TIME; - g_conf.check_lcd = CONF_DEFAULT_CHECK_LCD; - - if (g_conf.default_conf.script != CONF_DEFAULT_SCRIPT_TYPE) { - DbgFree(g_conf.default_conf.script); - g_conf.default_conf.script = (char *)CONF_DEFAULT_SCRIPT_TYPE; - } - - if (g_conf.default_conf.abi != CONF_DEFAULT_ABI) { - DbgFree(g_conf.default_conf.abi); - g_conf.default_conf.abi = (char *)CONF_DEFAULT_ABI; - } - - if (g_conf.default_conf.pd_group != CONF_DEFAULT_GBAR_GROUP) { - DbgFree(g_conf.default_conf.pd_group); - g_conf.default_conf.pd_group = (char *)CONF_DEFAULT_GBAR_GROUP; - } - - if (g_conf.launch_key.name != CONF_DEFAULT_LAUNCH_BUNDLE_NAME) { - DbgFree(g_conf.launch_key.name); - g_conf.launch_key.name = (char *)CONF_DEFAULT_LAUNCH_BUNDLE_NAME; - } - - if (g_conf.launch_key.secured != CONF_DEFAULT_LAUNCH_BUNDLE_SECURED) { - DbgFree(g_conf.launch_key.secured); - g_conf.launch_key.secured = (char *)CONF_DEFAULT_LAUNCH_BUNDLE_SECURED; - } - - if (g_conf.launch_key.abi != CONF_DEFAULT_LAUNCH_BUNDLE_ABI) { - DbgFree(g_conf.launch_key.abi); - g_conf.launch_key.abi = (char *)CONF_DEFAULT_LAUNCH_BUNDLE_ABI; - } - - if (g_conf.empty_content != CONF_DEFAULT_EMPTY_CONTENT) { - DbgFree(g_conf.empty_content); - g_conf.empty_content = (char *)CONF_DEFAULT_EMPTY_CONTENT; - } - - if (g_conf.empty_title != CONF_DEFAULT_EMPTY_TITLE) { - DbgFree(g_conf.empty_title); - g_conf.empty_title = (char *)CONF_DEFAULT_EMPTY_TITLE; - } - - if (g_conf.default_content != CONF_DEFAULT_CONTENT) { - DbgFree(g_conf.default_content); - g_conf.default_content = (char *)CONF_DEFAULT_CONTENT; - } - - if (g_conf.default_title != CONF_DEFAULT_TITLE) { - DbgFree(g_conf.default_title); - g_conf.default_title = (char *)CONF_DEFAULT_TITLE; - } - - if (g_conf.replace_tag != CONF_DEFAULT_REPLACE_TAG) { - DbgFree(g_conf.replace_tag); - g_conf.replace_tag = (char *)CONF_DEFAULT_REPLACE_TAG; - } - - if (g_conf.path.conf != CONF_DEFAULT_PATH_CONF) { - DbgFree(g_conf.path.conf); - g_conf.path.conf = (char *)CONF_DEFAULT_PATH_CONF; - } - - if (g_conf.path.image != CONF_DEFAULT_PATH_IMAGE) { - DbgFree(g_conf.path.image); - g_conf.path.image = (char *)CONF_DEFAULT_PATH_IMAGE; - } - - if (g_conf.path.slave_log != CONF_DEFAULT_PATH_LOG) { - DbgFree(g_conf.path.slave_log); - g_conf.path.slave_log = (char *)CONF_DEFAULT_PATH_LOG; - } - - if (g_conf.path.reader != CONF_DEFAULT_PATH_READER) { - DbgFree(g_conf.path.reader); - g_conf.path.reader = (char *)CONF_DEFAULT_PATH_READER; - } - - if (g_conf.path.always != CONF_DEFAULT_PATH_ALWAYS) { - DbgFree(g_conf.path.always); - g_conf.path.always = (char *)CONF_DEFAULT_PATH_ALWAYS; - } - - if (g_conf.path.script != CONF_DEFAULT_PATH_SCRIPT) { - DbgFree(g_conf.path.script); - g_conf.path.script = (char *)CONF_DEFAULT_PATH_SCRIPT; - } - - if (g_conf.path.root != CONF_DEFAULT_PATH_ROOT) { - DbgFree(g_conf.path.root); - g_conf.path.root = (char *)CONF_DEFAULT_PATH_ROOT; - } - - if (g_conf.path.script_port != CONF_DEFAULT_PATH_SCRIPT_PORT) { - DbgFree(g_conf.path.script_port); - g_conf.path.script_port = (char *)CONF_DEFAULT_PATH_SCRIPT_PORT; - } - - if (g_conf.path.db != CONF_DEFAULT_PATH_DB) { - DbgFree(g_conf.path.db); - g_conf.path.db = (char *)CONF_DEFAULT_PATH_DB; - } - - if (g_conf.path.input != CONF_DEFAULT_PATH_INPUT) { - DbgFree(g_conf.path.input); - g_conf.path.input = (char *)CONF_DEFAULT_PATH_INPUT; - } - - if (g_conf.provider_method != CONF_DEFAULT_PROVIDER_METHOD) { - DbgFree(g_conf.provider_method); - g_conf.provider_method = (char *)CONF_DEFAULT_PROVIDER_METHOD; - } - - if (g_conf.emergency_disk != CONF_DEFAULT_EMERGENCY_DISK) { - DbgFree(g_conf.emergency_disk); - g_conf.emergency_disk = (char *)CONF_DEFAULT_EMERGENCY_DISK; - } - if (g_conf.services != CONF_DEFAULT_SERVICES) { - DbgFree(g_conf.services); - g_conf.services = (char *)CONF_DEFAULT_SERVICES; - } -} +struct conf g_conf = { + .debug_mode = 0, + .slave_max_load = -1, +}; /* End of a file */ diff --git a/src/critical_log.c b/src/critical_log.c index f54055d..2ff1e7d 100644 --- a/src/critical_log.c +++ b/src/critical_log.c @@ -29,6 +29,7 @@ #include #if defined(HAVE_LIVEBOX) #include +#include #else #include "lite-errno.h" #endif @@ -59,16 +60,16 @@ static inline void rotate_log(void) char *filename; int namelen; - if (s_info.nr_of_lines < MAX_LOG_LINE) { + if (s_info.nr_of_lines < DYNAMICBOX_CONF_MAX_LOG_LINE) { return; } - s_info.file_id = (s_info.file_id + 1) % MAX_LOG_FILE; + s_info.file_id = (s_info.file_id + 1) % DYNAMICBOX_CONF_MAX_LOG_FILE; - namelen = strlen(s_info.filename) + strlen(SLAVE_LOG_PATH) + 30; + namelen = strlen(s_info.filename) + strlen(DYNAMICBOX_CONF_LOG_PATH) + 30; filename = malloc(namelen); if (filename) { - snprintf(filename, namelen, "%s/%d_%s.%d", SLAVE_LOG_PATH, s_info.file_id, s_info.filename, getpid()); + snprintf(filename, namelen, "%s/%d_%s.%d", DYNAMICBOX_CONF_LOG_PATH, s_info.file_id, s_info.filename, getpid()); if (s_info.fp) { if (fclose(s_info.fp) != 0) { @@ -132,7 +133,7 @@ HAPI int critical_log_init(const char *name) return DBOX_STATUS_ERROR_OUT_OF_MEMORY; } - namelen = strlen(name) + strlen(SLAVE_LOG_PATH) + 30; + namelen = strlen(name) + strlen(DYNAMICBOX_CONF_LOG_PATH) + 30; filename = malloc(namelen); if (!filename) { @@ -142,7 +143,7 @@ HAPI int critical_log_init(const char *name) return DBOX_STATUS_ERROR_OUT_OF_MEMORY; } - snprintf(filename, namelen, "%s/%d_%s.%d", SLAVE_LOG_PATH, s_info.file_id, name, getpid()); + snprintf(filename, namelen, "%s/%d_%s.%d", DYNAMICBOX_CONF_LOG_PATH, s_info.file_id, name, getpid()); s_info.fp = fopen(filename, "w+"); if (!s_info.fp) { diff --git a/src/event.c b/src/event.c index 5f21c19..c246349 100644 --- a/src/event.c +++ b/src/event.c @@ -30,6 +30,7 @@ #include #include #include +#include #if !defined(_USE_ECORE_TIME_GET) #define _USE_ECORE_TIME_GET @@ -176,7 +177,7 @@ static void update_timestamp(struct input_event *event) * Input event uses MONOTONIC CLOCK TIME * So this case will not be work correctly. */ - if (USE_EVENT_TIME) { + if (DYNAMICBOX_CONF_USE_EVENT_TIME) { memcpy(&s_info.event_data.tv, &event->time, sizeof(event->time)); } else { if (gettimeofday(&s_info.event_data.tv, NULL) < 0) { @@ -189,7 +190,7 @@ static void update_timestamp(struct input_event *event) * but its value is same as MONOTIC CLOCK TIME * So we should handles it properly. */ - if (USE_EVENT_TIME) { + if (DYNAMICBOX_CONF_USE_EVENT_TIME) { s_info.event_data.tv = (double)event->time.tv_sec + (double)event->time.tv_usec / 1000000.0f; } else { s_info.event_data.tv = ecore_time_get(); @@ -776,7 +777,7 @@ static int event_control_init(void) return DBOX_STATUS_ERROR_NONE; } - s_info.handle = open(INPUT_PATH, O_RDONLY); + s_info.handle = open(DYNAMICBOX_CONF_INPUT_PATH, O_RDONLY); if (s_info.handle < 0) { ErrPrint("Unable to access the device: %s\n", strerror(errno)); return DBOX_STATUS_ERROR_IO_ERROR; diff --git a/src/fault_manager.c b/src/fault_manager.c index 7c63cdc..ebb0824 100644 --- a/src/fault_manager.c +++ b/src/fault_manager.c @@ -25,6 +25,7 @@ #include #include #include +#include #include #include "util.h" @@ -64,7 +65,7 @@ static void clear_log_file(struct slave_node *slave) char filename[BUFSIZ]; int ret; - ret = snprintf(filename, sizeof(filename) - 1, "%s/slave.%d", SLAVE_LOG_PATH, slave_pid(slave)); + ret = snprintf(filename, sizeof(filename) - 1, "%s/slave.%d", DYNAMICBOX_CONF_LOG_PATH, slave_pid(slave)); if (ret == sizeof(filename) - 1) { filename[sizeof(filename) - 1] = '\0'; ErrPrint("filename buffer is overflowed\n"); @@ -82,7 +83,7 @@ static char *check_log_file(struct slave_node *slave) FILE *fp; char filename[BUFSIZ]; - snprintf(filename, sizeof(filename), "%s/slave.%d", SLAVE_LOG_PATH, slave_pid(slave)); + snprintf(filename, sizeof(filename), "%s/slave.%d", DYNAMICBOX_CONF_LOG_PATH, slave_pid(slave)); fp = fopen(filename, "rt"); if (!fp) { ErrPrint("No log file found [%s]\n", strerror(errno)); diff --git a/src/instance.c b/src/instance.c index 574a5c7..2886379 100644 --- a/src/instance.c +++ b/src/instance.c @@ -29,6 +29,7 @@ #include #include #include +#include #include "conf.h" #include "util.h" @@ -757,14 +758,14 @@ static inline int fork_package(struct inst_info *inst, const char *pkgname) return DBOX_STATUS_ERROR_NOT_EXIST; } - len = strlen(SCHEMA_FILE "%s%s_%d_%lf.png") + strlen(IMAGE_PATH) + strlen(package_name(info)) + 50; + len = strlen(SCHEMA_FILE "%s%s_%d_%lf.png") + strlen(DYNAMICBOX_CONF_IMAGE_PATH) + strlen(package_name(info)) + 50; inst->id = malloc(len); if (!inst->id) { ErrPrint("Heap: %s\n", strerror(errno)); return DBOX_STATUS_ERROR_OUT_OF_MEMORY; } - snprintf(inst->id, len, SCHEMA_FILE "%s%s_%d_%lf.png", IMAGE_PATH, package_name(info), client_pid(inst->client), inst->timestamp); + snprintf(inst->id, len, SCHEMA_FILE "%s%s_%d_%lf.png", DYNAMICBOX_CONF_IMAGE_PATH, package_name(info), client_pid(inst->client), inst->timestamp); instance_set_gbar_size(inst, package_gbar_width(info), package_gbar_height(info)); @@ -826,7 +827,7 @@ HAPI struct inst_info *instance_create(struct client_node *client, double timest return NULL; } - inst->title = strdup(DEFAULT_TITLE); /*!< Use the DEFAULT Title "" */ + inst->title = strdup(DYNAMICBOX_CONF_DEFAULT_TITLE); /*!< Use the DEFAULT Title "" */ if (!inst->title) { ErrPrint("Heap: %s\n", strerror(errno)); DbgFree(inst->category); @@ -1205,7 +1206,7 @@ static void activate_cb(struct slave_node *slave, const struct packet *packet, v switch (ret) { case 1: /*!< need to create */ - if (util_free_space(IMAGE_PATH) > MINIMUM_SPACE) { + if (util_free_space(DYNAMICBOX_CONF_IMAGE_PATH) > DYNAMICBOX_CONF_MINIMUM_SPACE) { struct inst_info *new_inst; new_inst = instance_create(inst->client, util_timestamp(), package_name(inst->info), inst->content, inst->cluster, inst->category, @@ -1258,7 +1259,7 @@ static void activate_cb(struct slave_node *slave, const struct packet *packet, v script_handler_load(inst->dbox.canvas.script, 0); } } else if (package_dbox_type(inst->info) == DBOX_TYPE_BUFFER) { - instance_create_dbox_buffer(inst, DEFAULT_PIXELS); + instance_create_dbox_buffer(inst, DYNAMICBOX_CONF_DEFAULT_PIXELS); } if (package_gbar_type(inst->info) == GBAR_TYPE_SCRIPT) { @@ -1275,7 +1276,7 @@ static void activate_cb(struct slave_node *slave, const struct packet *packet, v ErrPrint("Failed to create GBAR\n"); } } else if (package_gbar_type(inst->info) == GBAR_TYPE_BUFFER) { - instance_create_gbar_buffer(inst, DEFAULT_PIXELS); + instance_create_gbar_buffer(inst, DYNAMICBOX_CONF_DEFAULT_PIXELS); } instance_broadcast_created_event(inst); @@ -2474,8 +2475,8 @@ HAPI int instance_set_period(struct inst_info *inst, double period) if (period < 0.0f) { /* Use the default period */ period = package_period(inst->info); - } else if (period > 0.0f && period < MINIMUM_PERIOD) { - period = MINIMUM_PERIOD; /* defined at conf.h */ + } else if (period > 0.0f && period < DYNAMICBOX_CONF_MINIMUM_PERIOD) { + period = DYNAMICBOX_CONF_MINIMUM_PERIOD; /* defined at conf.h */ } cbdata = malloc(sizeof(*cbdata)); @@ -3267,9 +3268,9 @@ HAPI void *instance_client_list(struct inst_info *inst) HAPI int instance_init(void) { - if (!strcasecmp(PROVIDER_METHOD, "shm")) { + if (!strcasecmp(DYNAMICBOX_CONF_PROVIDER_METHOD, "shm")) { s_info.env_buf_type = DBOX_FB_TYPE_SHM; - } else if (!strcasecmp(PROVIDER_METHOD, "pixmap")) { + } else if (!strcasecmp(DYNAMICBOX_CONF_PROVIDER_METHOD, "pixmap")) { s_info.env_buf_type = DBOX_FB_TYPE_PIXMAP; } /* Default method is DBOX_FB_TYPE_FILE */ diff --git a/src/io.c b/src/io.c index 31549cc..25af193 100644 --- a/src/io.c +++ b/src/io.c @@ -29,6 +29,7 @@ #include #include #include +#include #include "debug.h" #include "conf.h" @@ -43,6 +44,9 @@ int errno; +#define MAX_ABI 256 +#define MAX_PKGNAME 512 + static struct { sqlite3 *handle; } s_info = { @@ -709,7 +713,7 @@ HAPI int io_crawling_dynamicboxes(int (*cb)(const char *pkgid, const char *lbid, } } - dir = opendir(ROOT_PATH); + dir = opendir(DYNAMICBOX_CONF_ROOT_PATH); if (!dir) { ErrPrint("Error: %s\n", strerror(errno)); } else { @@ -824,13 +828,13 @@ static inline int db_init(void) int ret; struct stat stat; - ret = db_util_open_with_options(DBFILE, &s_info.handle, SQLITE_OPEN_READONLY, NULL); + ret = db_util_open_with_options(DYNAMICBOX_CONF_DBFILE, &s_info.handle, SQLITE_OPEN_READONLY, NULL); if (ret != SQLITE_OK) { ErrPrint("Failed to open a DB\n"); return DBOX_STATUS_ERROR_IO_ERROR; } - if (lstat(DBFILE, &stat) < 0) { + if (lstat(DYNAMICBOX_CONF_DBFILE, &stat) < 0) { db_util_close(s_info.handle); s_info.handle = NULL; ErrPrint("%s\n", strerror(errno)); diff --git a/src/main.c b/src/main.c index d7aaaa4..e71894d 100644 --- a/src/main.c +++ b/src/main.c @@ -35,6 +35,7 @@ #if defined(HAVE_LIVEBOX) #include +#include #include "slave_life.h" #include "slave_rpc.h" @@ -71,9 +72,9 @@ static inline int app_create(void) { int ret; - if (access(SLAVE_LOG_PATH, R_OK | W_OK) != 0) { - if (mkdir(SLAVE_LOG_PATH, 0755) < 0) { - ErrPrint("Failed to create %s (%s)\n", SLAVE_LOG_PATH, strerror(errno)); + if (access(DYNAMICBOX_CONF_LOG_PATH, R_OK | W_OK) != 0) { + if (mkdir(DYNAMICBOX_CONF_LOG_PATH, 0755) < 0) { + ErrPrint("Failed to create %s (%s)\n", DYNAMICBOX_CONF_LOG_PATH, strerror(errno)); } } @@ -147,24 +148,24 @@ static inline int app_create(void) script_init(); - if (util_service_is_enabled(SERVICE_FILE)) { + if (util_service_is_enabled(DYNAMICBOX_CONF_SERVICE_FILE)) { file_service_init(); } - if (util_service_is_enabled(SERVICE_UTILITY)) { + if (util_service_is_enabled(DYNAMICBOX_CONF_SERVICE_UTILITY)) { utility_service_init(); } #endif - if (util_service_is_enabled(SERVICE_SHORTCUT)) { + if (util_service_is_enabled(DYNAMICBOX_CONF_SERVICE_SHORTCUT)) { shortcut_service_init(); } - if (util_service_is_enabled(SERVICE_NOTIFICATION)) { + if (util_service_is_enabled(DYNAMICBOX_CONF_SERVICE_NOTIFICATION)) { notification_service_init(); } - if (util_service_is_enabled(SERVICE_BADGE)) { + if (util_service_is_enabled(DYNAMICBOX_CONF_SERVICE_BADGE)) { badge_service_init(); } @@ -175,21 +176,21 @@ static inline int app_terminate(void) { int ret; - if (util_service_is_enabled(SERVICE_BADGE)) { + if (util_service_is_enabled(DYNAMICBOX_CONF_SERVICE_BADGE)) { ret = badge_service_fini(); if (ret < 0) { DbgPrint("badge: %d\n", ret); } } - if (util_service_is_enabled(SERVICE_NOTIFICATION)) { + if (util_service_is_enabled(DYNAMICBOX_CONF_SERVICE_NOTIFICATION)) { ret = notification_service_fini(); if (ret < 0) { DbgPrint("noti: %d\n", ret); } } - if (util_service_is_enabled(SERVICE_SHORTCUT)) { + if (util_service_is_enabled(DYNAMICBOX_CONF_SERVICE_SHORTCUT)) { ret = shortcut_service_fini(); if (ret < 0) { DbgPrint("shortcut: %d\n", ret); @@ -197,7 +198,7 @@ static inline int app_terminate(void) } #if defined(HAVE_LIVEBOX) - if (util_service_is_enabled(SERVICE_FILE)) { + if (util_service_is_enabled(DYNAMICBOX_CONF_SERVICE_FILE)) { ret = file_service_fini(); if (ret < 0) { DbgPrint("Finalize the file service: %d\n", ret); @@ -214,7 +215,7 @@ static inline int app_terminate(void) DbgPrint("dead signal handler finalized: %d\n", ret); } - if (util_service_is_enabled(SERVICE_UTILITY)) { + if (util_service_is_enabled(DYNAMICBOX_CONF_SERVICE_UTILITY)) { ret = utility_service_fini(); if (ret < 0) { DbgPrint("utility: %d\n", ret); @@ -352,8 +353,8 @@ int main(int argc, char *argv[]) return -EFAULT; } - conf_init(); - conf_loader(); + dynamicbox_conf_init(); + dynamicbox_conf_load(); /*! * How could we care this return values? @@ -368,12 +369,12 @@ int main(int argc, char *argv[]) * \note * Clear old contents files before start the master provider. */ - (void)util_unlink_files(ALWAYS_PATH); - (void)util_unlink_files(READER_PATH); - (void)util_unlink_files(IMAGE_PATH); - (void)util_unlink_files(SLAVE_LOG_PATH); + (void)util_unlink_files(DYNAMICBOX_CONF_ALWAYS_PATH); + (void)util_unlink_files(DYNAMICBOX_CONF_READER_PATH); + (void)util_unlink_files(DYNAMICBOX_CONF_IMAGE_PATH); + (void)util_unlink_files(DYNAMICBOX_CONF_LOG_PATH); - if (util_free_space(IMAGE_PATH) < MINIMUM_SPACE) { + if (util_free_space(DYNAMICBOX_CONF_IMAGE_PATH) < DYNAMICBOX_CONF_MINIMUM_SPACE) { util_remove_emergency_disk(); util_prepare_emergency_disk(); } @@ -416,14 +417,6 @@ int main(int argc, char *argv[]) g_type_init(); #endif -#if defined(HAVE_LIVEBOX) - /*! - * \note - * conf_update_size requires util_screen_init. - */ - conf_update_size(); -#endif - app_create(); vconf_get_int(VCONFKEY_MASTER_RESTART_COUNT, &restart_count); @@ -451,7 +444,7 @@ int main(int argc, char *argv[]) } #endif - conf_reset(); + dynamicbox_conf_reset(); return 0; } diff --git a/src/package.c b/src/package.c index c4c4443..3120573 100644 --- a/src/package.c +++ b/src/package.c @@ -25,6 +25,7 @@ #include #include #include +#include #include #include @@ -321,13 +322,13 @@ static inline int load_conf(struct pkg_info *info) if (!parser) { info->dbox.size_list = 0x01; /* Default */ - info->script = strdup(DEFAULT_SCRIPT); + info->script = strdup(DYNAMICBOX_CONF_DEFAULT_SCRIPT); if (!info->script) { ErrPrint("Heap: %s\n", strerror(errno)); return DBOX_STATUS_ERROR_OUT_OF_MEMORY; } - info->abi = strdup(DEFAULT_ABI); + info->abi = strdup(DYNAMICBOX_CONF_DEFAULT_ABI); if (!info->abi) { ErrPrint("Heap: %s\n", strerror(errno)); DbgFree(info->script); @@ -335,8 +336,8 @@ static inline int load_conf(struct pkg_info *info) return DBOX_STATUS_ERROR_OUT_OF_MEMORY; } - info->gbar.width = g_conf.width; - info->gbar.height = g_conf.height >> 2; + info->gbar.width = DYNAMICBOX_CONF_BASE_W; + info->gbar.height = DYNAMICBOX_CONF_BASE_H >> 2; info->dbox.pinup = 1; return DBOX_STATUS_ERROR_NONE; } @@ -408,7 +409,7 @@ static inline int load_conf(struct pkg_info *info) } str = parser_script(parser); - str = str ? str : DEFAULT_SCRIPT; + str = str ? str : DYNAMICBOX_CONF_DEFAULT_SCRIPT; info->script = strdup(str); if (!info->script) { ErrPrint("Heap: %s\n", strerror(errno)); @@ -427,7 +428,7 @@ static inline int load_conf(struct pkg_info *info) } str = parser_abi(parser); - str = str ? str : DEFAULT_ABI; + str = str ? str : DYNAMICBOX_CONF_DEFAULT_ABI; info->abi = strdup(str); if (!info->abi) { ErrPrint("Heap: %s\n", strerror(errno)); @@ -451,8 +452,8 @@ static inline int load_conf(struct pkg_info *info) info->dbox.period = parser_period(parser); if (info->dbox.period < 0.0f) { info->dbox.period = 0.0f; - } else if (info->dbox.period > 0.0f && info->dbox.period < MINIMUM_PERIOD) { - info->dbox.period = MINIMUM_PERIOD; + } else if (info->dbox.period > 0.0f && info->dbox.period < DYNAMICBOX_CONF_MINIMUM_PERIOD) { + info->dbox.period = DYNAMICBOX_CONF_MINIMUM_PERIOD; } info->dbox.size_list = parser_size(parser); diff --git a/src/parser.c b/src/parser.c index be00359..a90e0b6 100644 --- a/src/parser.c +++ b/src/parser.c @@ -24,6 +24,7 @@ #include #include +#include #include "util.h" #include "debug.h" @@ -171,14 +172,14 @@ HAPI RETURN_TYPE parser_find(const char *pkgname) int len; int ret; - len = strlen(pkgname) * 2 + strlen(CONF_PATH); + len = strlen(pkgname) * 2 + strlen(DYNAMICBOX_CONF_CONF_PATH); filename = malloc(len); if (!filename) { return (RETURN_TYPE)0; } - ret = snprintf(filename, len, CONF_PATH, pkgname, pkgname); + ret = snprintf(filename, len, DYNAMICBOX_CONF_CONF_PATH, pkgname, pkgname); if (ret < 0) { DbgFree(filename); return (RETURN_TYPE)0; @@ -664,7 +665,7 @@ HAPI struct parser *parser_load(const char *pkgname) } /* live-, .conf */ - len = strlen(CONF_PATH) + strlen(pkgname) * 2; + len = strlen(DYNAMICBOX_CONF_CONF_PATH) + strlen(pkgname) * 2; item->filename = malloc(len); if (!item->filename) { ErrPrint("Error: %s\n", strerror(errno)); @@ -672,7 +673,7 @@ HAPI struct parser *parser_load(const char *pkgname) return 0; } - ret = snprintf(item->filename, len, CONF_PATH, pkgname, pkgname); + ret = snprintf(item->filename, len, DYNAMICBOX_CONF_CONF_PATH, pkgname, pkgname); if (ret < 0) { ErrPrint("Error: %s\n", strerror(errno)); DbgFree(item->filename); diff --git a/src/script_handler.c b/src/script_handler.c index eab2e8f..f295b00 100644 --- a/src/script_handler.c +++ b/src/script_handler.c @@ -34,6 +34,7 @@ #include #include #include +#include #include "slave_life.h" #include "slave_rpc.h" @@ -175,7 +176,7 @@ static int load_all_ports(void) char *path; int pathlen; - dir = opendir(SCRIPT_PORT_PATH); + dir = opendir(DYNAMICBOX_CONF_SCRIPT_PORT_PATH); if (!dir) { ErrPrint("Error: %s\n", strerror(errno)); return DBOX_STATUS_ERROR_IO_ERROR; @@ -186,7 +187,7 @@ static int load_all_ports(void) continue; } - pathlen = strlen(ent->d_name) + strlen(SCRIPT_PORT_PATH) + 1; + pathlen = strlen(ent->d_name) + strlen(DYNAMICBOX_CONF_SCRIPT_PORT_PATH) + 1; path = malloc(pathlen); if (!path) { ErrPrint("Heap: %s %d\n", strerror(errno), pathlen); @@ -196,7 +197,7 @@ static int load_all_ports(void) return DBOX_STATUS_ERROR_OUT_OF_MEMORY; } - snprintf(path, pathlen, "%s%s", SCRIPT_PORT_PATH, ent->d_name); + snprintf(path, pathlen, "%s%s", DYNAMICBOX_CONF_SCRIPT_PORT_PATH, ent->d_name); item = malloc(sizeof(*item)); if (!item) { @@ -312,7 +313,7 @@ static int load_all_ports(void) goto errout; } - if (item->init(SCALE_WIDTH_FACTOR, PREMULTIPLIED_COLOR) < 0) { + if (item->init(DYNAMICBOX_CONF_SCALE_WIDTH_FACTOR, DYNAMICBOX_CONF_PREMULTIPLIED_COLOR) < 0) { ErrPrint("Failed to initialize script engine\n"); goto errout; } @@ -553,7 +554,7 @@ HAPI struct script_info *script_handler_create(struct inst_info *inst, const cha return NULL; } - info->buffer_handle = buffer_handler_create(inst, s_info.env_buf_type, w, h, DEFAULT_PIXELS); + info->buffer_handle = buffer_handler_create(inst, s_info.env_buf_type, w, h, DYNAMICBOX_CONF_DEFAULT_PIXELS); if (!info->buffer_handle) { /* buffer_handler_create will prints some log */ DbgFree(info); @@ -1030,9 +1031,9 @@ free_out: HAPI int script_init(void) { - if (!strcasecmp(PROVIDER_METHOD, "shm")) { + if (!strcasecmp(DYNAMICBOX_CONF_PROVIDER_METHOD, "shm")) { s_info.env_buf_type = DBOX_FB_TYPE_SHM; - } else if (!strcasecmp(PROVIDER_METHOD, "pixmap")) { + } else if (!strcasecmp(DYNAMICBOX_CONF_PROVIDER_METHOD, "pixmap")) { s_info.env_buf_type = DBOX_FB_TYPE_PIXMAP; } diff --git a/src/server.c b/src/server.c index aeda46e..3bd55f4 100644 --- a/src/server.c +++ b/src/server.c @@ -28,6 +28,7 @@ #include #include #include +#include #include #include "critical_log.h" @@ -1262,14 +1263,14 @@ static struct packet *client_new(pid_t pid, int handle, const struct packet *pac ret = DBOX_STATUS_ERROR_FAULT; } else if (package_is_fault(info)) { ret = DBOX_STATUS_ERROR_FAULT; - } else if (util_free_space(IMAGE_PATH) <= MINIMUM_SPACE) { + } else if (util_free_space(DYNAMICBOX_CONF_IMAGE_PATH) <= DYNAMICBOX_CONF_MINIMUM_SPACE) { ErrPrint("Not enough space\n"); ret = DBOX_STATUS_ERROR_NO_SPACE; } else { struct inst_info *inst; - if (period > 0.0f && period < MINIMUM_PERIOD) { - period = MINIMUM_PERIOD; + if (period > 0.0f && period < DYNAMICBOX_CONF_MINIMUM_PERIOD) { + period = DYNAMICBOX_CONF_MINIMUM_PERIOD; } inst = instance_create(client, timestamp, lbid, content, cluster, category, period, width, height); @@ -3739,7 +3740,7 @@ static struct packet *client_pause_request(pid_t pid, int handle, const struct p goto out; } - if (USE_XMONITOR) { + if (DYNAMICBOX_CONF_USE_XMONITOR) { DbgPrint("XMONITOR enabled. ignore client paused request\n"); } else { xmonitor_pause(client); @@ -3767,7 +3768,7 @@ static struct packet *client_resume_request(pid_t pid, int handle, const struct goto out; } - if (USE_XMONITOR) { + if (DYNAMICBOX_CONF_USE_XMONITOR) { DbgPrint("XMONITOR enabled. ignore client resumed request\n"); } else { xmonitor_resume(client); @@ -5189,7 +5190,7 @@ static Eina_Bool pd_open_monitor_cb(void *inst) (void)instance_client_gbar_created(inst, DBOX_STATUS_ERROR_TIMEOUT); (void)instance_del_data(inst, GBAR_OPEN_MONITOR_TAG); (void)instance_unref(inst); - ErrPrint("GBAR Open request is timed-out (%lf)\n", GBAR_REQUEST_TIMEOUT); + ErrPrint("GBAR Open request is timed-out (%lf)\n", DYNAMICBOX_CONF_GBAR_REQUEST_TIMEOUT); return ECORE_CALLBACK_CANCEL; } @@ -5210,7 +5211,7 @@ static Eina_Bool pd_close_monitor_cb(void *inst) (void)instance_client_gbar_destroyed(inst, DBOX_STATUS_ERROR_TIMEOUT); (void)instance_del_data(inst, GBAR_CLOSE_MONITOR_TAG); (void)instance_unref(inst); - ErrPrint("GBAR Close request is not processed in %lf seconds\n", GBAR_REQUEST_TIMEOUT); + ErrPrint("GBAR Close request is not processed in %lf seconds\n", DYNAMICBOX_CONF_GBAR_REQUEST_TIMEOUT); return ECORE_CALLBACK_CANCEL; } @@ -5231,7 +5232,7 @@ static Eina_Bool pd_resize_monitor_cb(void *inst) (void)instance_client_gbar_destroyed(inst, DBOX_STATUS_ERROR_TIMEOUT); (void)instance_del_data(inst, GBAR_RESIZE_MONITOR_TAG); (void)instance_unref(inst); - ErrPrint("GBAR Resize request is not processed in %lf seconds\n", GBAR_REQUEST_TIMEOUT); + ErrPrint("GBAR Resize request is not processed in %lf seconds\n", DYNAMICBOX_CONF_GBAR_REQUEST_TIMEOUT); return ECORE_CALLBACK_CANCEL; } @@ -5315,7 +5316,7 @@ static struct packet *client_create_gbar(pid_t pid, int handle, const struct pac ErrPrint("Unable to send script event for openning GBAR [%s], %d\n", pkgname, tmp_ret); } } else { - pd_monitor = ecore_timer_add(GBAR_REQUEST_TIMEOUT, pd_open_monitor_cb, instance_ref(inst)); + pd_monitor = ecore_timer_add(DYNAMICBOX_CONF_GBAR_REQUEST_TIMEOUT, pd_open_monitor_cb, instance_ref(inst)); if (!pd_monitor) { (void)instance_unref(inst); ErrPrint("Failed to create a timer for GBAR Open monitor\n"); @@ -5596,7 +5597,7 @@ static struct packet *client_destroy_gbar(pid_t pid, int handle, const struct pa } } } else { - pd_monitor = ecore_timer_add(GBAR_REQUEST_TIMEOUT, pd_close_monitor_cb, instance_ref(inst)); + pd_monitor = ecore_timer_add(DYNAMICBOX_CONF_GBAR_REQUEST_TIMEOUT, pd_close_monitor_cb, instance_ref(inst)); if (!pd_monitor) { ErrPrint("Failed to add pd close monitor\n"); inst = instance_unref(inst); @@ -5761,7 +5762,7 @@ static struct packet *client_subscribed(pid_t pid, int handle, const struct pack } DbgPrint("[%d] cluster[%s] category[%s]\n", pid, cluster, category); - if (!strlen(cluster) || !strcasecmp(cluster, DEFAULT_CLUSTER)) { + if (!strlen(cluster) || !strcasecmp(cluster, DYNAMICBOX_CONF_DEFAULT_CLUSTER)) { ErrPrint("Invalid cluster name\n"); goto out; } @@ -5803,7 +5804,7 @@ static struct packet *client_delete_cluster(pid_t pid, int handle, const struct DbgPrint("pid[%d] cluster[%s]\n", pid, cluster); - if (!strlen(cluster) || !strcasecmp(cluster, DEFAULT_CLUSTER)) { + if (!strlen(cluster) || !strcasecmp(cluster, DYNAMICBOX_CONF_DEFAULT_CLUSTER)) { ErrPrint("Invalid cluster: %s\n", cluster); ret = DBOX_STATUS_ERROR_INVALID_PARAMETER; goto out; @@ -5840,7 +5841,7 @@ static inline int update_pkg_cb(struct category *category, const char *pkgname, slave_rpc_request_update(pkgname, "", c_name, s_name, NULL, force); /* Just try to create a new package */ - if (util_free_space(IMAGE_PATH) > MINIMUM_SPACE) { + if (util_free_space(DYNAMICBOX_CONF_IMAGE_PATH) > DYNAMICBOX_CONF_MINIMUM_SPACE) { double timestamp; struct inst_info *inst; @@ -5851,7 +5852,7 @@ static inline int update_pkg_cb(struct category *category, const char *pkgname, * Because this callback is called by the requests of clients. * It means. some clients wants to handle this instances ;) */ - inst = instance_create(NULL, timestamp, pkgname, "", c_name, s_name, DEFAULT_PERIOD, 0, 0); + inst = instance_create(NULL, timestamp, pkgname, "", c_name, s_name, DYNAMICBOX_CONF_DEFAULT_PERIOD, 0, 0); if (!inst) { ErrPrint("Failed to create a new instance\n"); } @@ -5925,7 +5926,7 @@ static struct packet *client_refresh_group(pid_t pid, int handle, const struct p DbgPrint("[%d] cluster[%s] category[%s]\n", pid, cluster_id, category_id); - if (!strlen(cluster_id) || !strcasecmp(cluster_id, DEFAULT_CLUSTER)) { + if (!strlen(cluster_id) || !strcasecmp(cluster_id, DYNAMICBOX_CONF_DEFAULT_CLUSTER)) { ErrPrint("Invalid cluster name: %s\n", cluster_id); goto out; } @@ -5975,7 +5976,7 @@ static struct packet *client_delete_category(pid_t pid, int handle, const struct } DbgPrint("pid[%d] cluster[%s] category[%s]\n", pid, cluster, category); - if (!strlen(cluster) || !strcasecmp(cluster, DEFAULT_CLUSTER)) { + if (!strlen(cluster) || !strcasecmp(cluster, DYNAMICBOX_CONF_DEFAULT_CLUSTER)) { ErrPrint("Invalid cluster: %s\n", cluster); ret = DBOX_STATUS_ERROR_INVALID_PARAMETER; goto out; @@ -6018,7 +6019,7 @@ static struct packet *client_unsubscribed(pid_t pid, int handle, const struct pa DbgPrint("[%d] cluster[%s] category[%s]\n", pid, cluster, category); - if (!strlen(cluster) || !strcasecmp(cluster, DEFAULT_CLUSTER)) { + if (!strlen(cluster) || !strcasecmp(cluster, DYNAMICBOX_CONF_DEFAULT_CLUSTER)) { ErrPrint("Invalid cluster name: %s\n", cluster); goto out; } @@ -6058,7 +6059,7 @@ static struct packet *slave_hello(pid_t pid, int handle, const struct packet *pa } if (!slave) { - if (DEBUG_MODE) { + if (DYNAMICBOX_CONF_DEBUG_MODE || g_conf.debug_mode) { char pkgname[pathconf("/", _PC_PATH_MAX)]; const char *abi; @@ -6073,7 +6074,7 @@ static struct packet *slave_hello(pid_t pid, int handle, const struct packet *pa if (!slave) { abi = abi_find_by_pkgname(pkgname); if (!abi) { - abi = DEFAULT_ABI; + abi = DYNAMICBOX_CONF_DEFAULT_ABI; DbgPrint("Slave pkgname is invalid, ABI is replaced with '%s'(default)\n", abi); } @@ -6089,7 +6090,7 @@ static struct packet *slave_hello(pid_t pid, int handle, const struct packet *pa abi = slave_abi(slave); if (!abi) { ErrPrint("ABI is not valid: %s\n", slavename); - abi = DEFAULT_ABI; + abi = DYNAMICBOX_CONF_DEFAULT_ABI; } } @@ -6832,7 +6833,7 @@ static struct packet *slave_acquire_buffer(pid_t pid, int handle, const struct p ret = buffer_handler_load(info); if (ret == 0) { instance_set_dbox_size(inst, w, h); - instance_set_dbox_info(inst, PRIORITY_NO_CHANGE, CONTENT_NO_CHANGE, TITLE_NO_CHANGE); + instance_set_dbox_info(inst, DYNAMICBOX_CONF_PRIORITY_NO_CHANGE, DYNAMICBOX_CONF_CONTENT_NO_CHANGE, DYNAMICBOX_CONF_TITLE_NO_CHANGE); id = buffer_handler_id(info); } else { ErrPrint("Failed to load a buffer(%d)\n", ret); @@ -6974,7 +6975,7 @@ static struct packet *slave_resize_buffer(pid_t pid, int handle, const struct pa if (ret == (int)DBOX_STATUS_ERROR_NONE) { id = buffer_handler_id(info); instance_set_dbox_size(inst, w, h); - instance_set_dbox_info(inst, PRIORITY_NO_CHANGE, CONTENT_NO_CHANGE, TITLE_NO_CHANGE); + instance_set_dbox_info(inst, DYNAMICBOX_CONF_PRIORITY_NO_CHANGE, DYNAMICBOX_CONF_CONTENT_NO_CHANGE, DYNAMICBOX_CONF_TITLE_NO_CHANGE); } } else if (type == TYPE_GBAR && package_gbar_type(pkg) == GBAR_TYPE_BUFFER) { struct buffer_info *info; @@ -7078,7 +7079,7 @@ static struct packet *slave_release_buffer(pid_t pid, int handle, const struct p ret = buffer_handler_unload(info); if (ret == (int)DBOX_STATUS_ERROR_NONE) { - pd_monitor = ecore_timer_add(GBAR_REQUEST_TIMEOUT, pd_resize_monitor_cb, instance_ref(inst)); + pd_monitor = ecore_timer_add(DYNAMICBOX_CONF_GBAR_REQUEST_TIMEOUT, pd_resize_monitor_cb, instance_ref(inst)); if (!pd_monitor) { ErrPrint("Failed to create a timer for GBAR Open monitor\n"); inst = instance_unref(inst); @@ -8270,7 +8271,7 @@ static struct method s_slave_table[] = { HAPI int server_init(void) { - com_core_packet_use_thread(COM_CORE_THREAD); + com_core_packet_use_thread(DYNAMICBOX_CONF_COM_CORE_THREAD); if (unlink(INFO_SOCKET) < 0) { ErrPrint("info socket: %s\n", strerror(errno)); diff --git a/src/setting.c b/src/setting.c index 711623b..4af52c2 100644 --- a/src/setting.c +++ b/src/setting.c @@ -39,6 +39,7 @@ #if defined(HAVE_LIVEBOX) #include +#include #include "client_life.h" #include "slave_life.h" #include "xmonitor.h" @@ -69,7 +70,7 @@ HAPI int setting_is_lcd_off(void) { int state; - if (!CHECK_LCD) { + if (!DYNAMICBOX_CONF_CHECK_LCD) { /* Always turned on */ return 0; } diff --git a/src/slave_life.c b/src/slave_life.c index 6f21c1b..f82307b 100644 --- a/src/slave_life.c +++ b/src/slave_life.c @@ -32,6 +32,7 @@ #include #include +#include #include #include "critical_log.h" @@ -197,7 +198,7 @@ static inline struct slave_node *create_slave_node(const char *name, int is_secu slave->pid = (pid_t)-1; slave->state = SLAVE_TERMINATED; slave->network = network; - slave->relaunch_count = SLAVE_RELAUNCH_COUNT; + slave->relaunch_count = DYNAMICBOX_CONF_SLAVE_RELAUNCH_COUNT; xmonitor_add_event_callback(XMONITOR_PAUSED, xmonitor_pause_cb, slave); xmonitor_add_event_callback(XMONITOR_RESUMED, xmonitor_resume_cb, slave); @@ -432,7 +433,7 @@ static Eina_Bool activate_timer_cb(void *data) } } - CRITICAL_LOG("Slave is not activated in %lf sec (slave: %s)\n", SLAVE_ACTIVATE_TIME, slave_name(slave)); + CRITICAL_LOG("Slave is not activated in %lf sec (slave: %s)\n", DYNAMICBOX_CONF_SLAVE_ACTIVATE_TIME, slave_name(slave)); slave = slave_deactivated(slave); return ECORE_CALLBACK_CANCEL; } @@ -494,9 +495,9 @@ static Eina_Bool relaunch_timer_cb(void *data) invoke_slave_fault_handler(slave); } else { bundle_add(param, BUNDLE_SLAVE_SVC_OP_TYPE, APP_CONTROL_OPERATION_MAIN); - bundle_add(param, BUNDLE_SLAVE_NAME, slave_name(slave)); - bundle_add(param, BUNDLE_SLAVE_SECURED, slave->secured ? "true" : "false"); - bundle_add(param, BUNDLE_SLAVE_ABI, slave->abi); + bundle_add(param, DYNAMICBOX_CONF_BUNDLE_SLAVE_NAME, slave_name(slave)); + bundle_add(param, DYNAMICBOX_CONF_BUNDLE_SLAVE_SECURED, slave->secured ? "true" : "false"); + bundle_add(param, DYNAMICBOX_CONF_BUNDLE_SLAVE_ABI, slave->abi); slave->pid = (pid_t)aul_launch_app(slave_pkgname(slave), param); @@ -571,12 +572,12 @@ HAPI int slave_activate(struct slave_node *slave) return DBOX_STATUS_ERROR_ALREADY; } - if (DEBUG_MODE) { + if (DYNAMICBOX_CONF_DEBUG_MODE || g_conf.debug_mode) { DbgPrint("Debug Mode enabled. name[%s] secured[%d] abi[%s]\n", slave_name(slave), slave->secured, slave->abi); } else { bundle *param; - slave->relaunch_count = SLAVE_RELAUNCH_COUNT; + slave->relaunch_count = DYNAMICBOX_CONF_SLAVE_RELAUNCH_COUNT; param = bundle_create(); if (!param) { @@ -585,9 +586,9 @@ HAPI int slave_activate(struct slave_node *slave) } bundle_add(param, BUNDLE_SLAVE_SVC_OP_TYPE, APP_CONTROL_OPERATION_MAIN); - bundle_add(param, BUNDLE_SLAVE_NAME, slave_name(slave)); - bundle_add(param, BUNDLE_SLAVE_SECURED, slave->secured ? "true" : "false"); - bundle_add(param, BUNDLE_SLAVE_ABI, slave->abi); + bundle_add(param, DYNAMICBOX_CONF_BUNDLE_SLAVE_NAME, slave_name(slave)); + bundle_add(param, DYNAMICBOX_CONF_BUNDLE_SLAVE_SECURED, slave->secured ? "true" : "false"); + bundle_add(param, DYNAMICBOX_CONF_BUNDLE_SLAVE_ABI, slave->abi); slave->pid = (pid_t)aul_launch_app(slave_pkgname(slave), param); @@ -609,7 +610,7 @@ HAPI int slave_activate(struct slave_node *slave) case AUL_R_ECANCELED: /**< Operation canceled */ case AUL_R_ETIMEOUT: /**< Timeout */ CRITICAL_LOG("Try relaunch this soon %s (%d)\n", slave_name(slave), slave->pid); - slave->relaunch_timer = ecore_timer_add(SLAVE_RELAUNCH_TIME, relaunch_timer_cb, slave); + slave->relaunch_timer = ecore_timer_add(DYNAMICBOX_CONF_SLAVE_RELAUNCH_TIME, relaunch_timer_cb, slave); if (!slave->relaunch_timer) { CRITICAL_LOG("Failed to register a relaunch timer (%s)\n", slave_name(slave)); slave->pid = (pid_t)-1; @@ -624,7 +625,7 @@ HAPI int slave_activate(struct slave_node *slave) break; } - slave->activate_timer = ecore_timer_add(SLAVE_ACTIVATE_TIME, activate_timer_cb, slave); + slave->activate_timer = ecore_timer_add(DYNAMICBOX_CONF_SLAVE_ACTIVATE_TIME, activate_timer_cb, slave); if (!slave->activate_timer) { ErrPrint("Failed to register an activate timer\n"); } @@ -649,7 +650,7 @@ HAPI int slave_give_more_ttl(struct slave_node *slave) return DBOX_STATUS_ERROR_INVALID_PARAMETER; } - delay = SLAVE_TTL - ecore_timer_pending_get(slave->ttl_timer); + delay = DYNAMICBOX_CONF_SLAVE_TTL - ecore_timer_pending_get(slave->ttl_timer); ecore_timer_delay(slave->ttl_timer, delay); return DBOX_STATUS_ERROR_NONE; } @@ -674,7 +675,7 @@ HAPI int slave_thaw_ttl(struct slave_node *slave) ecore_timer_thaw(slave->ttl_timer); - delay = SLAVE_TTL - ecore_timer_pending_get(slave->ttl_timer); + delay = DYNAMICBOX_CONF_SLAVE_TTL - ecore_timer_pending_get(slave->ttl_timer); ecore_timer_delay(slave->ttl_timer, delay); return DBOX_STATUS_ERROR_NONE; } @@ -687,9 +688,9 @@ HAPI int slave_activated(struct slave_node *slave) slave_pause(slave); } - if (slave->secured == 1 && SLAVE_TTL > 0.0f) { - DbgPrint("Slave deactivation timer is added (%s - %lf)\n", slave_name(slave), SLAVE_TTL); - slave->ttl_timer = ecore_timer_add(SLAVE_TTL, slave_ttl_cb, slave); + if (slave->secured == 1 && DYNAMICBOX_CONF_SLAVE_TTL > 0.0f) { + DbgPrint("Slave deactivation timer is added (%s - %lf)\n", slave_name(slave), DYNAMICBOX_CONF_SLAVE_TTL); + slave->ttl_timer = ecore_timer_add(DYNAMICBOX_CONF_SLAVE_TTL, slave_ttl_cb, slave); if (!slave->ttl_timer) { ErrPrint("Failed to create a TTL timer\n"); } @@ -816,7 +817,7 @@ HAPI struct slave_node *slave_deactivate(struct slave_node *slave, int no_timer) ErrPrint("Terminate timer is already fired (%d)\n", slave->pid); } else if (!no_timer && !slave->secured) { DbgPrint("Fire the terminate timer: %d\n", slave->pid); - slave->terminate_timer = ecore_timer_add(SLAVE_ACTIVATE_TIME, terminate_timer_cb, slave); + slave->terminate_timer = ecore_timer_add(DYNAMICBOX_CONF_SLAVE_ACTIVATE_TIME, terminate_timer_cb, slave); if (!slave->terminate_timer) { /*! * \note @@ -923,6 +924,13 @@ HAPI struct slave_node *slave_deactivated_by_fault(struct slave_node *slave) int ret; int reactivate = 1; int reactivate_instances = 1; + int max_load; + + if (g_conf.slave_max_load < 0) { + max_load = DYNAMICBOX_CONF_SLAVE_MAX_LOAD; + } else { + max_load = g_conf.slave_max_load; + } if (!slave_is_activated(slave)) { DbgPrint("Deactivating in progress\n"); @@ -949,9 +957,10 @@ HAPI struct slave_node *slave_deactivated_by_fault(struct slave_node *slave) double faulted_at; faulted_at = ecore_time_get(); - if (faulted_at - slave->activated_at < MINIMUM_REACTIVATION_TIME) { + if (faulted_at - slave->activated_at < DYNAMICBOX_CONF_MINIMUM_REACTIVATION_TIME) { slave->critical_fault_count++; - if (!slave_loaded_instance(slave) || slave->critical_fault_count >= SLAVE_MAX_LOAD) { + + if (!slave_loaded_instance(slave) || slave->critical_fault_count >= max_load) { ErrPrint("Reactivation time is too fast and frequently occurred - Stop to auto reactivation\n"); reactivate = 0; reactivate_instances = 0; @@ -972,9 +981,9 @@ HAPI struct slave_node *slave_deactivated_by_fault(struct slave_node *slave) struct timeval rtv; timersub(&faulted_at, &slave->activated_at, &rtv); - if (rtv.tv_sec < MINIMUM_REACTIVATION_TIME) { + if (rtv.tv_sec < DYNAMICBOX_CONF_MINIMUM_REACTIVATION_TIME) { slave->critical_fault_count++; - if (!slave_loaded_instance(slave) || slave->critical_fault_count >= SLAVE_MAX_LOAD) { + if (!slave_loaded_instance(slave) || slave->critical_fault_count >= max_load) { ErrPrint("Reactivation time is too fast and frequently occurred - Stop to auto reactivation\n"); reactivate = 0; reactivate_instances = 0; @@ -1299,8 +1308,15 @@ HAPI struct slave_node *slave_find_available(const char *slave_pkgname, const ch } } else if (slave->network == network) { DbgPrint("slave[%s] loaded_package[%d] net: [%d]\n", slave_name(slave), slave->loaded_package, slave->network); - if (!strcasecmp(abi, DEFAULT_ABI)) { - if (slave->loaded_package < SLAVE_MAX_LOAD) { + if (!strcasecmp(abi, DYNAMICBOX_CONF_DEFAULT_ABI)) { + int max_load; + if (g_conf.slave_max_load < 0) { + max_load = DYNAMICBOX_CONF_SLAVE_MAX_LOAD; + } else { + max_load = g_conf.slave_max_load; + } + + if (slave->loaded_package < max_load) { return slave; } } else { @@ -1359,7 +1375,7 @@ HAPI char *slave_package_name(const char *abi, const char *lbid) return NULL; } - s_pkgname = util_replace_string(tmp, REPLACE_TAG_APPID, lbid); + s_pkgname = util_replace_string(tmp, DYNAMICBOX_CONF_REPLACE_TAG_APPID, lbid); if (!s_pkgname) { DbgPrint("Failed to get replaced string\n"); s_pkgname = strdup(tmp); diff --git a/src/slave_rpc.c b/src/slave_rpc.c index 1c8e9e6..555b595 100644 --- a/src/slave_rpc.c +++ b/src/slave_rpc.c @@ -31,6 +31,7 @@ #include #include #include +#include #include "debug.h" #include "slave_life.h" @@ -261,7 +262,7 @@ static void prepend_command(struct command *command) return; } - s_info.command_consuming_timer = ecore_timer_add(PACKET_TIME, command_consumer_cb, NULL); + s_info.command_consuming_timer = ecore_timer_add(DYNAMICBOX_CONF_PACKET_TIME, command_consumer_cb, NULL); if (!s_info.command_consuming_timer) { ErrPrint("Failed to add command consumer\n"); s_info.command_list = eina_list_remove(s_info.command_list, command); @@ -277,7 +278,7 @@ static void push_command(struct command *command) return; } - s_info.command_consuming_timer = ecore_timer_add(PACKET_TIME, command_consumer_cb, NULL); + s_info.command_consuming_timer = ecore_timer_add(DYNAMICBOX_CONF_PACKET_TIME, command_consumer_cb, NULL); if (!s_info.command_consuming_timer) { ErrPrint("Failed to add command consumer\n"); s_info.command_list = eina_list_remove(s_info.command_list, command); @@ -518,7 +519,7 @@ HAPI int slave_rpc_update_handle(struct slave_node *slave, int handle) ecore_timer_del(rpc->pong_timer); } - rpc->pong_timer = ecore_timer_add(DEFAULT_PING_TIME, ping_timeout_cb, slave); + rpc->pong_timer = ecore_timer_add(DYNAMICBOX_CONF_DEFAULT_PING_TIME, ping_timeout_cb, slave); if (!rpc->pong_timer) { ErrPrint("Failed to add ping timer\n"); } diff --git a/src/util.c b/src/util.c index 665e345..f9c356e 100644 --- a/src/util.c +++ b/src/util.c @@ -35,8 +35,10 @@ #include #if defined(HAVE_LIVEBOX) #include +#include #else #include "lite-errno.h" +#define DYNAMICBOX_CONF_IMAGE_PATH "/tmp/" #endif #include "util.h" @@ -419,12 +421,12 @@ HAPI int util_unlink_files(const char *folder) HAPI void util_remove_emergency_disk(void) { int ret; - ret = umount(IMAGE_PATH); + ret = umount(DYNAMICBOX_CONF_IMAGE_PATH); if (ret < 0) { ErrPrint("umount: %s\n", strerror(errno)); } - DbgPrint("Try to unmount[%s] %d\n", IMAGE_PATH, ret); + DbgPrint("Try to unmount[%s] %d\n", DYNAMICBOX_CONF_IMAGE_PATH, ret); s_info.emergency_mounted = 0; } @@ -453,7 +455,7 @@ HAPI void util_prepare_emergency_disk(void) TAG_ERROR }; - buf = strdup(EMERGENCY_DISK); + buf = strdup(DYNAMICBOX_CONF_EMERGENCY_DISK); if (!buf) { ErrPrint("Failed to prepare emergency disk info\n"); return; @@ -554,69 +556,67 @@ HAPI void util_prepare_emergency_disk(void) DbgPrint("source[%s] type[%s] option[%s]\n", source, type, option); - ret = mount(source, IMAGE_PATH, type, MS_NOSUID | MS_NOEXEC, option); + ret = mount(source, DYNAMICBOX_CONF_IMAGE_PATH, type, MS_NOSUID | MS_NOEXEC, option); DbgFree(buf); if (ret < 0) { ErrPrint("Failed to mount: %s\n", strerror(errno)); return; } - MINIMUM_SPACE = 0; - - ErrPrint("Disk space is not enough, use the tmpfs. Currently required minimum space is %lu bytes\n", MINIMUM_SPACE); - if (chmod(IMAGE_PATH, 0750) < 0) { + ErrPrint("Disk space is not enough, use the tmpfs. Currently required minimum space is %lu bytes\n", DYNAMICBOX_CONF_MINIMUM_SPACE); + if (chmod(DYNAMICBOX_CONF_IMAGE_PATH, 0750) < 0) { ErrPrint("chmod: %s\n", strerror(errno)); } - if (chown(IMAGE_PATH, 5000, 5000) < 0) { + if (chown(DYNAMICBOX_CONF_IMAGE_PATH, 5000, 5000) < 0) { ErrPrint("chown: %s\n", strerror(errno)); } - ret = smack_setlabel(IMAGE_PATH, DATA_SHARE_LABEL, SMACK_LABEL_ACCESS); + ret = smack_setlabel(DYNAMICBOX_CONF_IMAGE_PATH, DATA_SHARE_LABEL, SMACK_LABEL_ACCESS); if (ret != 0) { - ErrPrint("Failed to set SMACK for %s (%d)\n", IMAGE_PATH, ret); + ErrPrint("Failed to set SMACK for %s (%d)\n", DYNAMICBOX_CONF_IMAGE_PATH, ret); } else { - ret = smack_setlabel(IMAGE_PATH, "1", SMACK_LABEL_TRANSMUTE); - DbgPrint("[%s] is successfully created (t: %d)\n", IMAGE_PATH, ret); + ret = smack_setlabel(DYNAMICBOX_CONF_IMAGE_PATH, "1", SMACK_LABEL_TRANSMUTE); + DbgPrint("[%s] is successfully created (t: %d)\n", DYNAMICBOX_CONF_IMAGE_PATH, ret); } - if (mkdir(ALWAYS_PATH, 0755) < 0) { - ErrPrint("mkdir: (%s) %s\n", ALWAYS_PATH, strerror(errno)); + if (mkdir(DYNAMICBOX_CONF_ALWAYS_PATH, 0755) < 0) { + ErrPrint("mkdir: (%s) %s\n", DYNAMICBOX_CONF_ALWAYS_PATH, strerror(errno)); } else { - if (chmod(ALWAYS_PATH, 0750) < 0) { + if (chmod(DYNAMICBOX_CONF_ALWAYS_PATH, 0750) < 0) { ErrPrint("chmod: %s\n", strerror(errno)); } - if (chown(ALWAYS_PATH, 5000, 5000) < 0) { + if (chown(DYNAMICBOX_CONF_ALWAYS_PATH, 5000, 5000) < 0) { ErrPrint("chown: %s\n", strerror(errno)); } - ret = smack_setlabel(ALWAYS_PATH, DATA_SHARE_LABEL, SMACK_LABEL_ACCESS); + ret = smack_setlabel(DYNAMICBOX_CONF_ALWAYS_PATH, DATA_SHARE_LABEL, SMACK_LABEL_ACCESS); if (ret != 0) { - ErrPrint("Failed to set SMACK for %s (%d)\n", ALWAYS_PATH, ret); + ErrPrint("Failed to set SMACK for %s (%d)\n", DYNAMICBOX_CONF_ALWAYS_PATH, ret); } else { - ret = smack_setlabel(ALWAYS_PATH, "1", SMACK_LABEL_TRANSMUTE); - DbgPrint("[%s] is successfully created (t: %d)\n", ALWAYS_PATH, ret); + ret = smack_setlabel(DYNAMICBOX_CONF_ALWAYS_PATH, "1", SMACK_LABEL_TRANSMUTE); + DbgPrint("[%s] is successfully created (t: %d)\n", DYNAMICBOX_CONF_ALWAYS_PATH, ret); } } - if (mkdir(READER_PATH, 0755) < 0) { - ErrPrint("mkdir: (%s) %s\n", READER_PATH, strerror(errno)); + if (mkdir(DYNAMICBOX_CONF_READER_PATH, 0755) < 0) { + ErrPrint("mkdir: (%s) %s\n", DYNAMICBOX_CONF_READER_PATH, strerror(errno)); } else { - if (chmod(READER_PATH, 0750) < 0) { + if (chmod(DYNAMICBOX_CONF_READER_PATH, 0750) < 0) { ErrPrint("chmod: %s\n", strerror(errno)); } - if (chown(READER_PATH, 5000, 5000) < 0) { + if (chown(DYNAMICBOX_CONF_READER_PATH, 5000, 5000) < 0) { ErrPrint("chown: %s\n", strerror(errno)); } - ret = smack_setlabel(READER_PATH, DATA_SHARE_LABEL, SMACK_LABEL_ACCESS); + ret = smack_setlabel(DYNAMICBOX_CONF_READER_PATH, DATA_SHARE_LABEL, SMACK_LABEL_ACCESS); if (ret != 0) { - ErrPrint("Failed to set SMACK for %s (%d)\n", READER_PATH, ret); + ErrPrint("Failed to set SMACK for %s (%d)\n", DYNAMICBOX_CONF_READER_PATH, ret); } else { - ret = smack_setlabel(READER_PATH, "1", SMACK_LABEL_TRANSMUTE); - DbgPrint("[%s] is successfully created (t: %d)\n", READER_PATH, ret); + ret = smack_setlabel(DYNAMICBOX_CONF_READER_PATH, "1", SMACK_LABEL_TRANSMUTE); + DbgPrint("[%s] is successfully created (t: %d)\n", DYNAMICBOX_CONF_READER_PATH, ret); } } @@ -632,36 +632,36 @@ HAPI void util_setup_log_disk(void) { int ret; - if (access(SLAVE_LOG_PATH, R_OK | W_OK | X_OK) == 0) { - DbgPrint("[%s] is already accessible\n", SLAVE_LOG_PATH); + if (access(DYNAMICBOX_CONF_LOG_PATH, R_OK | W_OK | X_OK) == 0) { + DbgPrint("[%s] is already accessible\n", DYNAMICBOX_CONF_LOG_PATH); return; } - DbgPrint("Initiate the critical log folder [%s]\n", SLAVE_LOG_PATH); - if (mkdir(SLAVE_LOG_PATH, 0755) < 0) { + DbgPrint("Initiate the critical log folder [%s]\n", DYNAMICBOX_CONF_LOG_PATH); + if (mkdir(DYNAMICBOX_CONF_LOG_PATH, 0755) < 0) { ErrPrint("mkdir: %s\n", strerror(errno)); } else { - if (chmod(SLAVE_LOG_PATH, 0750) < 0) { + if (chmod(DYNAMICBOX_CONF_LOG_PATH, 0750) < 0) { ErrPrint("chmod: %s\n", strerror(errno)); } - if (chown(SLAVE_LOG_PATH, 5000, 5000) < 0) { + if (chown(DYNAMICBOX_CONF_LOG_PATH, 5000, 5000) < 0) { ErrPrint("chown: %s\n", strerror(errno)); } - ret = smack_setlabel(SLAVE_LOG_PATH, DATA_SHARE_LABEL, SMACK_LABEL_ACCESS); + ret = smack_setlabel(DYNAMICBOX_CONF_LOG_PATH, DATA_SHARE_LABEL, SMACK_LABEL_ACCESS); if (ret != 0) { - ErrPrint("Failed to set SMACK for %s (%d)\n", SLAVE_LOG_PATH, ret); + ErrPrint("Failed to set SMACK for %s (%d)\n", DYNAMICBOX_CONF_LOG_PATH, ret); } else { - ret = smack_setlabel(SLAVE_LOG_PATH, "1", SMACK_LABEL_TRANSMUTE); - DbgPrint("[%s] is successfully created (t: %d)\n", SLAVE_LOG_PATH, ret); + ret = smack_setlabel(DYNAMICBOX_CONF_LOG_PATH, "1", SMACK_LABEL_TRANSMUTE); + DbgPrint("[%s] is successfully created (t: %d)\n", DYNAMICBOX_CONF_LOG_PATH, ret); } } } HAPI int util_service_is_enabled(const char *tag) { - return !!strcasestr(SERVICES, tag); + return !!strcasestr(DYNAMICBOX_CONF_SERVICES, tag); } /* End of a file */ diff --git a/src/xmonitor.c b/src/xmonitor.c index 16db05a..bb820e3 100644 --- a/src/xmonitor.c +++ b/src/xmonitor.c @@ -32,6 +32,7 @@ #include #include #include +#include #include "conf.h" #include "debug.h" @@ -72,7 +73,7 @@ static struct info { static inline void touch_paused_file(void) { int fd; - fd = creat(PAUSED_FILE, 0644); + fd = creat(DYNAMICBOX_CONF_PAUSED_FILE, 0644); if (fd >= 0) { if (close(fd) < 0) { ErrPrint("close: %s\n", strerror(errno)); @@ -84,7 +85,7 @@ static inline void touch_paused_file(void) static inline void remove_paused_file(void) { - if (unlink(PAUSED_FILE) < 0) { + if (unlink(DYNAMICBOX_CONF_PAUSED_FILE) < 0) { ErrPrint("Unlink .live.paused: %s\n", strerror(errno)); } } @@ -149,7 +150,7 @@ HAPI void xmonitor_handle_state_changes(void) touch_paused_file(); - sqlite3_release_memory(SQLITE_FLUSH_MAX); + sqlite3_release_memory(DYNAMICBOX_CONF_SQLITE_FLUSH_MAX); malloc_trim(0); } else { remove_paused_file(); @@ -168,7 +169,7 @@ HAPI int xmonitor_update_state(int target_pid) struct client_node *client; int pid; - if (!USE_XMONITOR || target_pid < 0) { + if (!DYNAMICBOX_CONF_USE_XMONITOR || target_pid < 0) { return DBOX_STATUS_ERROR_NONE; } @@ -394,7 +395,7 @@ static inline int enable_xmonitor(void) HAPI int xmonitor_init(void) { - if (USE_XMONITOR) { + if (DYNAMICBOX_CONF_USE_XMONITOR) { int ret; ret = enable_xmonitor(); if (ret < 0) { @@ -414,7 +415,7 @@ HAPI int xmonitor_init(void) HAPI void xmonitor_fini(void) { - if (USE_XMONITOR) { + if (DYNAMICBOX_CONF_USE_XMONITOR) { disable_xmonitor(); } } -- 2.7.4