X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=src%2Fmain.c;h=10085bdb72756a89ffb8c23791e22d20f3ce6a74;hb=b8162e19cfc7b3ce25b72983c0df4de6e14cbafe;hp=61e35cb354231c752d57f309322d9135434687a7;hpb=b1eebf293510bd89827343a5fc495ef0a9b6905d;p=framework%2Fconnectivity%2Fconnman.git diff --git a/src/main.c b/src/main.c index 61e35cb..10085bd 100644 --- a/src/main.c +++ b/src/main.c @@ -2,7 +2,7 @@ * * Connection Manager * - * Copyright (C) 2007-2010 Intel Corporation. All rights reserved. + * Copyright (C) 2007-2012 Intel Corporation. All rights reserved. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License version 2 as @@ -37,24 +37,27 @@ #include -#ifdef HAVE_CAPNG -#include -#endif - #include "connman.h" +#define DEFAULT_INPUT_REQUEST_TIMEOUT 120 * 1000 +#define DEFAULT_BROWSER_LAUNCH_TIMEOUT 300 * 1000 + static struct { connman_bool_t bg_scan; char **pref_timeservers; unsigned int *auto_connect; unsigned int *preferred_techs; char **fallback_nameservers; + unsigned int timeout_inputreq; + unsigned int timeout_browserlaunch; } connman_settings = { .bg_scan = TRUE, .pref_timeservers = NULL, .auto_connect = NULL, .preferred_techs = NULL, .fallback_nameservers = NULL, + .timeout_inputreq = DEFAULT_INPUT_REQUEST_TIMEOUT, + .timeout_browserlaunch = DEFAULT_BROWSER_LAUNCH_TIMEOUT, }; static GKeyFile *load_config(const char *file) @@ -110,8 +113,6 @@ static char **parse_fallback_nameservers(char **nameservers, gsize len) { char **servers; int i, j; - struct addrinfo hints; - struct addrinfo *addr; servers = g_try_new0(char *, len + 1); if (servers == NULL) @@ -120,15 +121,10 @@ static char **parse_fallback_nameservers(char **nameservers, gsize len) i = 0; j = 0; while (nameservers[i] != NULL) { - memset(&hints, 0, sizeof(struct addrinfo)); - hints.ai_flags = AI_NUMERICHOST; - addr = NULL; - if (getaddrinfo(nameservers[i], NULL, &hints, &addr) == 0) { + if (connman_inet_check_ipaddress(nameservers[i]) > 0) { servers[j] = g_strdup(nameservers[i]); j += 1; } - - freeaddrinfo(addr); i += 1; } @@ -146,10 +142,15 @@ static void parse_config(GKeyFile *config) "wifi", "ethernet", "cellular", + NULL }; + int timeout; - if (config == NULL) + if (config == NULL) { + connman_settings.auto_connect = + parse_service_types(default_auto_connect, 3); return; + } DBG("parsing main.conf"); @@ -202,6 +203,20 @@ static void parse_config(GKeyFile *config) g_strfreev(str_list); g_clear_error(&error); + + timeout = g_key_file_get_integer(config, "General", + "InputRequestTimeout", &error); + if (error == NULL && timeout >= 0) + connman_settings.timeout_inputreq = timeout * 1000; + + g_clear_error(&error); + + timeout = g_key_file_get_integer(config, "General", + "BrowserLaunchTimeout", &error); + if (error == NULL && timeout >= 0) + connman_settings.timeout_browserlaunch = timeout * 1000; + + g_clear_error(&error); } static GMainLoop *main_loop = NULL; @@ -374,6 +389,14 @@ unsigned int *connman_setting_get_uint_list(const char *key) return NULL; } +unsigned int connman_timeout_input_request(void) { + return connman_settings.timeout_inputreq; +} + +unsigned int connman_timeout_browser_launch(void) { + return connman_settings.timeout_browserlaunch; +} + int main(int argc, char *argv[]) { GOptionContext *context; @@ -383,10 +406,6 @@ int main(int argc, char *argv[]) GKeyFile *config; guint signal; -#ifdef HAVE_CAPNG - /* Drop capabilities */ -#endif - #ifdef NEED_THREADS if (g_thread_supported() == FALSE) g_thread_init(NULL); @@ -462,10 +481,9 @@ int main(int argc, char *argv[]) __connman_dbus_init(conn); config = load_config(CONFIGDIR "/main.conf"); - if (config != NULL) { - parse_config(config); + parse_config(config); + if (config != NULL) g_key_file_free(config); - } __connman_storage_migrate(); __connman_technology_init();