1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
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);
}
}
|