#include <libconfig.h>
#include <stdbool.h>
#include <stdio.h>
#include "options.h"
#include "config.h"

void
print_config()
{
	puts("Current configuration:");
	printf("Server: %s\n", server);
	if(socks_proxy_flag)
		printf("Socks proxy url: %s", socks_proxy_url);
	if(http_proxy_flag)
		printf("HTTP proxy url: %s", http_proxy_url);
	if(silent_flag)
		puts("Silent: true");
	else
		puts("Silent: false");
	if(ipv6_flag)
		printf("Force IPv6: true\n");
	else
		printf("Force IPv6: false\n");
	if(ipv4_flag)
		printf("Force IPv4: true\n");
	else
		printf("Force IPv4: false\n");

	return;
}
config_t runtime_config;
void
parse_config_file(FILE *config)
{

	config_init(&runtime_config);
	config_read(&runtime_config, config);
	config_setting_t *cur;
	cur = config_lookup(&runtime_config, "server");
	
	if(config != NULL) {
		if(cur != NULL)
			server = (char *)config_setting_get_string(cur);
		cur = config_lookup(&runtime_config, "socks_proxy");
		if(cur != NULL)
			socks_proxy_url = (char *)config_setting_get_string(cur);
		cur = config_lookup(&runtime_config, "http_proxy");
		if(cur != NULL)
			http_proxy_url = (char *)config_setting_get_string(cur);
		cur = config_lookup(&runtime_config, "use_socks_proxy");
		if(cur != NULL)
			socks_proxy_flag = config_setting_get_bool(cur);
		cur = config_lookup(&runtime_config, "use_http_proxy");
		if(cur != NULL)
			http_proxy_flag = config_setting_get_bool(cur);
		cur = config_lookup(&runtime_config, "silent");
		if(cur != NULL)
			silent_flag = config_setting_get_bool(cur);
		cur = config_lookup(&runtime_config, "force_ipv6");
		if(cur != NULL)
			ipv6_flag = config_setting_get_bool(cur);
		cur = config_lookup(&runtime_config, "force_ipv4");
		if(cur != NULL)
			ipv4_flag = config_setting_get_bool(cur);
		cur = config_lookup(&runtime_config, "key");
		if(cur != NULL)
			ssh_key_path = (char *)config_setting_get_string(cur);
	}
}