예제 #1
0
파일: main.c 프로젝트: hmallat/connman
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);
}
예제 #2
0
파일: main.c 프로젝트: plundstr/connman
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);

}
예제 #3
0
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);
}