static void parse_config(GKeyFile *config) { GError *error = NULL; bool boolean; char **timeservers; char **interfaces; char **str_list; char **tethering; char *ipv4url; char *ipv6url; char *tetheringsubnet; char **dontbringdown; struct in_addr ip; gsize len; int timeout; if (!config) { connman_settings.auto_connect = parse_service_types(default_auto_connect, 3); connman_settings.blacklisted_interfaces = g_strdupv(default_blacklist); return; } DBG("parsing %s", MAINFILE); boolean = g_key_file_get_boolean(config, "General", CONF_BG_SCAN, &error); if (!error) connman_settings.bg_scan = boolean; g_clear_error(&error); timeservers = __connman_config_get_string_list(config, "General", CONF_PREF_TIMESERVERS, NULL, &error); if (!error) connman_settings.pref_timeservers = timeservers; g_clear_error(&error); str_list = __connman_config_get_string_list(config, "General", CONF_AUTO_CONNECT, &len, &error); if (!error) connman_settings.auto_connect = parse_service_types(str_list, len); else connman_settings.auto_connect = parse_service_types(default_auto_connect, 3); g_strfreev(str_list); g_clear_error(&error); str_list = __connman_config_get_string_list(config, "General", CONF_PREFERRED_TECHS, &len, &error); if (!error) connman_settings.preferred_techs = parse_service_types(str_list, len); g_strfreev(str_list); g_clear_error(&error); str_list = __connman_config_get_string_list(config, "General", CONF_FALLBACK_NAMESERVERS, &len, &error); if (!error) connman_settings.fallback_nameservers = parse_fallback_nameservers(str_list, len); g_strfreev(str_list); g_clear_error(&error); timeout = g_key_file_get_integer(config, "General", CONF_TIMEOUT_INPUTREQ, &error); if (!error && timeout >= 0) connman_settings.timeout_inputreq = timeout * 1000; g_clear_error(&error); timeout = g_key_file_get_integer(config, "General", CONF_TIMEOUT_BROWSERLAUNCH, &error); if (!error && timeout >= 0) connman_settings.timeout_browserlaunch = timeout * 1000; g_clear_error(&error); interfaces = __connman_config_get_string_list(config, "General", CONF_BLACKLISTED_INTERFACES, &len, &error); if (!error) connman_settings.blacklisted_interfaces = interfaces; else connman_settings.blacklisted_interfaces = g_strdupv(default_blacklist); g_clear_error(&error); boolean = __connman_config_get_bool(config, "General", CONF_ALLOW_HOSTNAME_UPDATES, &error); if (!error) connman_settings.allow_hostname_updates = boolean; g_clear_error(&error); boolean = __connman_config_get_bool(config, "General", CONF_SINGLE_TECH, &error); if (!error) connman_settings.single_tech = boolean; g_clear_error(&error); tethering = __connman_config_get_string_list(config, "General", CONF_TETHERING_TECHNOLOGIES, &len, &error); if (!error) connman_settings.tethering_technologies = tethering; g_clear_error(&error); dontbringdown = __connman_config_get_string_list(config, "General", CONF_DONT_BRING_DOWN_AT_STARTUP, &len, &error); if (!error) connman_settings.dont_bring_down_at_startup = dontbringdown; g_clear_error(&error); boolean = __connman_config_get_bool(config, "General", CONF_PERSISTENT_TETHERING_MODE, &error); if (!error) connman_settings.persistent_tethering_mode = boolean; g_clear_error(&error); ipv4url = __connman_config_get_string(config, "General", CONF_STATUS_URL_IPV4, &error); if (!error) connman_settings.ipv4_status_url = ipv4url; else connman_settings.ipv4_status_url = "http://ipv4.connman.net/online/status.html"; g_clear_error(&error); ipv6url = __connman_config_get_string(config, "General", CONF_STATUS_URL_IPV6, &error); if (!error) connman_settings.ipv6_status_url = ipv6url; else connman_settings.ipv6_status_url = "http://ipv6.connman.net/online/status.html"; g_clear_error(&error); tetheringsubnet = __connman_config_get_string(config, "General", CONF_TETHERING_SUBNET_BLOCK, &error); if (!error && inet_pton(AF_INET, tetheringsubnet, &ip) == 1 && (ntohl(ip.s_addr) & 0xff) == 0) connman_settings.tethering_subnet_block = tetheringsubnet; else connman_settings.tethering_subnet_block = "192.168.0.0"; g_clear_error(&error); boolean = __connman_config_get_bool(config, "General", CONF_ENABLE_6TO4, &error); if (!error) connman_settings.enable_6to4 = boolean; g_clear_error(&error); }
static void parse_config(GKeyFile *config) { GError *error = NULL; gboolean boolean; char **timeservers; char **interfaces; char **str_list; char **tethering; char **ipv4url; char **ipv6url; gsize len; int timeout; if (config == NULL) { connman_settings.auto_connect = parse_service_types(default_auto_connect, 3); connman_settings.blacklisted_interfaces = g_strdupv(default_blacklist); return; } DBG("parsing %s", MAINFILE); boolean = g_key_file_get_boolean(config, "General", CONF_BG_SCAN, &error); if (error == NULL) connman_settings.bg_scan = boolean; g_clear_error(&error); timeservers = g_key_file_get_string_list(config, "General", CONF_PREF_TIMESERVERS, NULL, &error); if (error == NULL) connman_settings.pref_timeservers = timeservers; g_clear_error(&error); str_list = g_key_file_get_string_list(config, "General", CONF_AUTO_CONNECT, &len, &error); if (error == NULL) connman_settings.auto_connect = parse_service_types(str_list, len); else connman_settings.auto_connect = parse_service_types(default_auto_connect, 3); g_strfreev(str_list); g_clear_error(&error); str_list = g_key_file_get_string_list(config, "General", CONF_PREFERRED_TECHS, &len, &error); if (error == NULL) connman_settings.preferred_techs = parse_service_types(str_list, len); g_strfreev(str_list); g_clear_error(&error); str_list = g_key_file_get_string_list(config, "General", CONF_FALLBACK_NAMESERVERS, &len, &error); if (error == NULL) connman_settings.fallback_nameservers = parse_fallback_nameservers(str_list, len); g_strfreev(str_list); g_clear_error(&error); timeout = g_key_file_get_integer(config, "General", CONF_TIMEOUT_INPUTREQ, &error); if (error == NULL && timeout >= 0) connman_settings.timeout_inputreq = timeout * 1000; g_clear_error(&error); timeout = g_key_file_get_integer(config, "General", CONF_TIMEOUT_BROWSERLAUNCH, &error); if (error == NULL && timeout >= 0) connman_settings.timeout_browserlaunch = timeout * 1000; g_clear_error(&error); interfaces = g_key_file_get_string_list(config, "General", CONF_BLACKLISTED_INTERFACES, &len, &error); if (error == NULL) connman_settings.blacklisted_interfaces = interfaces; else connman_settings.blacklisted_interfaces = g_strdupv(default_blacklist); g_clear_error(&error); boolean = g_key_file_get_boolean(config, "General", CONF_ALLOW_HOSTNAME_UPDATES, &error); if (error == NULL) connman_settings.allow_hostname_updates = boolean; g_clear_error(&error); boolean = g_key_file_get_boolean(config, "General", CONF_SINGLE_TECH, &error); if (error == NULL) connman_settings.single_tech = boolean; g_clear_error(&error); boolean = g_key_file_get_boolean(config, "General", CONF_START_SESSION, &error); if (error == NULL) connman_settings.start_session = boolean; g_clear_error(&error); tethering = g_key_file_get_string_list(config, "General", CONF_TETHERING_TECHNOLOGIES, &len, &error); if (error == NULL) connman_settings.tethering_technologies = tethering; g_clear_error(&error); boolean = g_key_file_get_boolean(config, "General", CONF_PERSISTENT_TETHERING_MODE, &error); if (error == NULL) connman_settings.persistent_tethering_mode = boolean; g_clear_error(&error); ipv4url = g_key_file_get_string(config, "General", CONF_STATUS_URL_IPV4, &error); if (error == NULL) connman_settings.ipv4_status_url = ipv4url; else connman_settings.ipv4_status_url = "http://ipv4.connman.net/online/status.html"; g_clear_error(&error); ipv6url = g_key_file_get_string(config, "General", CONF_STATUS_URL_IPV6, &error); if (error == NULL) connman_settings.ipv6_status_url = ipv6url; else connman_settings.ipv6_status_url = "http://ipv6.connman.net/online/status.html"; g_clear_error(&error); }
static void parse_config(GKeyFile *config) { GError *error = NULL; gboolean boolean; char **timeservers; char **interfaces; char **str_list; gsize len; int timeout; if (config == NULL) { connman_settings.auto_connect = parse_service_types(default_auto_connect, 3); connman_settings.blacklisted_interfaces = g_strdupv(default_blacklist); return; } DBG("parsing main.conf"); boolean = g_key_file_get_boolean(config, "General", "BackgroundScanning", &error); if (error == NULL) connman_settings.bg_scan = boolean; g_clear_error(&error); timeservers = g_key_file_get_string_list(config, "General", "FallbackTimeservers", NULL, &error); if (error == NULL) connman_settings.pref_timeservers = timeservers; g_clear_error(&error); str_list = g_key_file_get_string_list(config, "General", "DefaultAutoConnectTechnologies", &len, &error); if (error == NULL) connman_settings.auto_connect = parse_service_types(str_list, len); else connman_settings.auto_connect = parse_service_types(default_auto_connect, 3); g_strfreev(str_list); g_clear_error(&error); str_list = g_key_file_get_string_list(config, "General", "PreferredTechnologies", &len, &error); if (error == NULL) connman_settings.preferred_techs = parse_service_types(str_list, len); g_strfreev(str_list); g_clear_error(&error); str_list = g_key_file_get_string_list(config, "General", "FallbackNameservers", &len, &error); if (error == NULL) connman_settings.fallback_nameservers = parse_fallback_nameservers(str_list, len); 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); interfaces = g_key_file_get_string_list(config, "General", "NetworkInterfaceBlacklist", &len, &error); if (error == NULL) connman_settings.blacklisted_interfaces = interfaces; else connman_settings.blacklisted_interfaces = g_strdupv(default_blacklist); g_clear_error(&error); }