X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=vpn%2Fmain.c;h=474c62fb2c58bdee5234890c8747adef3a4df203;hb=4e1d941e94590b2a41996b477f2563a9c860e1e5;hp=732bd4b11440e14fa77e3d01aeadbd8cb6ecf760;hpb=b04634c4902c12fa9a2044d7bbcfbd0088913b1b;p=platform%2Fupstream%2Fconnman.git diff --git a/vpn/main.c b/vpn/main.c old mode 100644 new mode 100755 index 732bd4b..474c62f --- a/vpn/main.c +++ b/vpn/main.c @@ -2,7 +2,7 @@ * * ConnMan VPN daemon * - * Copyright (C) 2012 Intel Corporation. All rights reserved. + * Copyright (C) 2012-2013 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 @@ -45,6 +45,7 @@ #define CONFIGMAINFILE CONFIGDIR "/connman-vpn.conf" #define DEFAULT_INPUT_REQUEST_TIMEOUT 300 * 1000 +#define DEFAULT_BROWSER_LAUNCH_TIMEOUT 300 * 1000 static GMainLoop *main_loop = NULL; @@ -52,8 +53,10 @@ static unsigned int __terminated = 0; static struct { unsigned int timeout_inputreq; + unsigned int timeout_browserlaunch; } connman_vpn_settings = { .timeout_inputreq = DEFAULT_INPUT_REQUEST_TIMEOUT, + .timeout_browserlaunch = DEFAULT_BROWSER_LAUNCH_TIMEOUT, }; static GKeyFile *load_config(const char *file) @@ -84,14 +87,14 @@ static void parse_config(GKeyFile *config, const char *file) GError *error = NULL; int timeout; - if (config == NULL) + if (!config) return; DBG("parsing %s", file); timeout = g_key_file_get_integer(config, "General", "InputRequestTimeout", &error); - if (error == NULL && timeout >= 0) + if (!error && timeout >= 0) connman_vpn_settings.timeout_inputreq = timeout * 1000; g_clear_error(&error); @@ -103,7 +106,7 @@ static int config_init(const char *file) config = load_config(file); parse_config(config, file); - if (config != NULL) + if (config) g_key_file_free(config); return 0; @@ -188,11 +191,11 @@ static gchar *option_config = NULL; static gchar *option_debug = NULL; static gchar *option_plugin = NULL; static gchar *option_noplugin = NULL; -static gboolean option_detach = TRUE; -static gboolean option_version = FALSE; -static gboolean option_routes = FALSE; +static bool option_detach = true; +static bool option_version = false; +static bool option_routes = false; -static gboolean parse_debug(const char *key, const char *value, +static bool parse_debug(const char *key, const char *value, gpointer user_data, GError **error) { if (value) @@ -200,7 +203,7 @@ static gboolean parse_debug(const char *key, const char *value, else option_debug = g_strdup("*"); - return TRUE; + return true; } static GOptionEntry options[] = { @@ -224,6 +227,33 @@ static GOptionEntry options[] = { { NULL }, }; +bool connman_setting_get_bool(const char *key) +{ + return false; +} + +#if defined TIZEN_EXT +unsigned int connman_setting_get_uint(const char *key) +{ + return 0; +} + +int connman_setting_get_int(const char *key) +{ + return 0; +} +#endif + +char **connman_setting_get_string_list(const char *key) +{ + return NULL; +} + +unsigned int *connman_setting_get_uint_list(const char *key) +{ + return NULL; +} + /* * This function will be called from generic src/agent.c code so we have * to use connman_ prefix instead of vpn_ one. @@ -233,6 +263,16 @@ unsigned int connman_timeout_input_request(void) return connman_vpn_settings.timeout_inputreq; } +unsigned int connman_timeout_browser_launch(void) +{ + return connman_vpn_settings.timeout_browserlaunch; +} + +const char *connman_option_get_string(const char *key) +{ + return NULL; +} + int main(int argc, char *argv[]) { GOptionContext *context; @@ -244,8 +284,8 @@ int main(int argc, char *argv[]) context = g_option_context_new(NULL); g_option_context_add_main_entries(context, options, NULL); - if (g_option_context_parse(context, &argc, &argv, &error) == FALSE) { - if (error != NULL) { + if (!g_option_context_parse(context, &argc, &argv, &error)) { + if (error) { g_printerr("%s\n", error->message); g_error_free(error); } else @@ -255,30 +295,40 @@ int main(int argc, char *argv[]) g_option_context_free(context); - if (option_version == TRUE) { + if (option_version) { printf("%s\n", VERSION); exit(0); } - if (option_detach == TRUE) { + if (option_detach) { if (daemon(0, 0)) { perror("Can't start daemon"); exit(1); } } - if (mkdir(STATEDIR, S_IRUSR | S_IWUSR | S_IXUSR | + if (mkdir(VPN_STATEDIR, S_IRUSR | S_IWUSR | S_IXUSR | S_IRGRP | S_IXGRP | S_IROTH | S_IXOTH) < 0) { if (errno != EEXIST) perror("Failed to create state directory"); } + /* + * At some point the VPN stuff is migrated into VPN_STORAGEDIR + * and this mkdir() call can be removed. + */ if (mkdir(STORAGEDIR, S_IRUSR | S_IWUSR | S_IXUSR | S_IRGRP | S_IXGRP | S_IROTH | S_IXOTH) < 0) { if (errno != EEXIST) perror("Failed to create storage directory"); } + if (mkdir(VPN_STORAGEDIR, S_IRUSR | S_IWUSR | S_IXUSR | + S_IRGRP | S_IXGRP | S_IROTH | S_IXOTH) < 0) { + if (errno != EEXIST) + perror("Failed to create VPN storage directory"); + } + umask(0077); main_loop = g_main_loop_new(NULL, FALSE); @@ -288,8 +338,8 @@ int main(int argc, char *argv[]) dbus_error_init(&err); conn = g_dbus_setup_bus(DBUS_BUS_SYSTEM, VPN_SERVICE, &err); - if (conn == NULL) { - if (dbus_error_is_set(&err) == TRUE) { + if (!conn) { + if (dbus_error_is_set(&err)) { fprintf(stderr, "%s\n", err.message); dbus_error_free(&err); } else @@ -299,15 +349,16 @@ int main(int argc, char *argv[]) g_dbus_set_disconnect_function(conn, disconnect_callback, NULL, NULL); - __connman_log_init(argv[0], option_debug, option_detach, FALSE, + __connman_log_init(argv[0], option_debug, option_detach, false, "Connection Manager VPN daemon", VERSION); __connman_dbus_init(conn); - if (option_config == NULL) + if (!option_config) config_init(CONFIGMAINFILE); else config_init(option_config); + __connman_inotify_init(); __connman_agent_init(); __vpn_provider_init(option_routes); __vpn_manager_init(); @@ -315,6 +366,7 @@ int main(int argc, char *argv[]) __vpn_rtnl_init(); __connman_task_init(); __connman_plugin_init(option_plugin, option_noplugin); + __vpn_config_init(); __vpn_rtnl_start(); @@ -325,14 +377,17 @@ int main(int argc, char *argv[]) g_source_remove(signal); + __vpn_config_cleanup(); + __connman_plugin_cleanup(); __connman_task_cleanup(); __vpn_rtnl_cleanup(); __vpn_ipconfig_cleanup(); __vpn_manager_cleanup(); __vpn_provider_cleanup(); __connman_agent_cleanup(); + __connman_inotify_cleanup(); __connman_dbus_cleanup(); - __connman_log_cleanup(FALSE); + __connman_log_cleanup(false); dbus_connection_unref(conn);