summaryrefslogtreecommitdiff
path: root/sakisafecli/config.c
diff options
context:
space:
mode:
Diffstat (limited to 'sakisafecli/config.c')
-rw-r--r--sakisafecli/config.c69
1 files changed, 69 insertions, 0 deletions
diff --git a/sakisafecli/config.c b/sakisafecli/config.c
new file mode 100644
index 0000000..8fce884
--- /dev/null
+++ b/sakisafecli/config.c
@@ -0,0 +1,69 @@
+#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);
+ }
+}