Handle unsupported functions
[platform/core/api/vine.git] / tool / tool_config.cpp
1 #include "tool_config.h"
2
3 #include <stdlib.h>
4 #include <string.h>
5
6 #define STRDUP(a) (a) ? strdup(a) : NULL
7
8 static struct {
9         bool reg;
10         bool disc;
11         char *service_name;
12         char *service_type;
13         char *iface_name;
14         bool with_ble;
15         char *remote_addr;
16         int addr_family;
17         int port;
18         dp_type_t dp_type;
19         int max_conn;
20         char *topic;
21         char *message;
22         char *file;
23         int interval;
24         char *cacert;
25         char *cert;
26         char *key;
27         char *psk;
28         int verbose;
29         char *log_file;
30 } configs = {
31         .reg = false,
32         .disc = false,
33         .service_name = NULL,
34         .service_type = NULL,
35         .iface_name = NULL,
36         .with_ble = false,
37         .remote_addr = NULL,
38         .addr_family = 0,
39         .port = 0,
40         .dp_type = DP_TYPE_UNKNOWN,
41         .max_conn = 0,
42         .topic = NULL,
43         .message = NULL,
44         .file = NULL,
45         .interval = 0,
46         .cacert = NULL,
47         .cert = NULL,
48         .key = NULL,
49         .psk = NULL,
50         .verbose = false,
51         .log_file = NULL,
52 };
53
54 void tool_config_set_register(bool val)
55 {
56         configs.reg = val;
57 }
58
59 bool tool_config_get_register()
60 {
61         return configs.reg;
62 }
63
64 void tool_config_set_discovery(bool val)
65 {
66         configs.disc = val;
67 }
68
69 bool tool_config_get_discovery()
70 {
71         return configs.disc;
72 }
73
74 void tool_config_set_service_name(char *val)
75 {
76         configs.service_name = STRDUP(val);
77 }
78
79 const char *tool_config_get_service_name()
80 {
81         return (const char *)configs.service_name;
82 }
83
84 void tool_config_set_service_type(char *val)
85 {
86         configs.service_type = STRDUP(val);
87 }
88
89 const char *tool_config_get_service_type()
90 {
91         return (const char *)configs.service_type;
92 }
93
94 void tool_config_set_iface_name(char *val)
95 {
96         configs.iface_name = STRDUP(val);
97 }
98
99 const char *tool_config_get_iface_name()
100 {
101         return (const char *)configs.iface_name;
102 }
103
104 void tool_config_set_with_ble(bool val)
105 {
106         configs.with_ble = val;
107 }
108
109 bool tool_config_get_with_ble()
110 {
111         return configs.with_ble;
112 }
113
114 void tool_config_set_remote_address(char *val)
115 {
116         configs.remote_addr = STRDUP(val);
117 }
118
119 const char *tool_config_get_remote_address()
120 {
121         return (const char *)configs.remote_addr;
122 }
123
124 void tool_config_set_address_family(int val)
125 {
126         configs.addr_family = val;
127 }
128
129 int tool_config_get_address_family()
130 {
131         return configs.addr_family;
132 }
133
134 void tool_config_set_port(int val)
135 {
136         configs.port = val;
137 }
138
139 int tool_config_get_port()
140 {
141         return configs.port;
142 }
143
144 void tool_config_set_dp_type(char *val)
145 {
146         if (!val)
147                 return;
148
149         if (strcmp(val, "client") == 0)
150                 configs.dp_type = DP_TYPE_CLIENT;
151         else if (strcmp(val, "server") == 0)
152                 configs.dp_type = DP_TYPE_SERVER;
153         else if (strcmp(val, "pubsub") == 0)
154                 configs.dp_type = DP_TYPE_PUBSUB;
155 }
156
157 dp_type_t tool_config_get_dp_type()
158 {
159         return configs.dp_type;
160 }
161
162 void tool_config_set_max_conn(int val)
163 {
164         configs.max_conn = val;
165 }
166
167 int tool_config_get_max_conn()
168 {
169         return configs.max_conn;
170 }
171
172 void tool_config_set_topic(char *val)
173 {
174         configs.topic = STRDUP(val);
175 }
176
177 const char *tool_config_get_topic()
178 {
179         return configs.topic;
180 }
181
182 void tool_config_set_message(char *val)
183 {
184         configs.message = STRDUP(val);
185 }
186
187 const char *tool_config_get_message()
188 {
189         return configs.message;
190 }
191
192 void tool_config_set_file(char *val)
193 {
194         configs.file = STRDUP(val);
195 }
196
197 const char *tool_config_get_file()
198 {
199         return configs.file;
200 }
201
202 void tool_config_set_interval(int val)
203 {
204         configs.interval = val;
205 }
206
207 int tool_config_get_interval()
208 {
209         return configs.interval;
210 }
211
212 sec_type_t tool_config_get_security_type()
213 {
214         if (configs.psk)
215                 return SEC_TYPE_PSK_OVER_TLS;
216         else if (configs.cacert || configs.cert)
217                 return SEC_TYPE_TLS;
218         else
219                 return SEC_TYPE_NONE;
220 }
221
222 void tool_config_set_cacert(char *val)
223 {
224         configs.cacert = STRDUP(val);
225 }
226
227 const char *tool_config_get_cacert()
228 {
229         return configs.cacert;
230 }
231
232 void tool_config_set_cert(char *val)
233 {
234         configs.cert = STRDUP(val);
235 }
236
237 const char *tool_config_get_cert()
238 {
239         return configs.cert;
240 }
241
242 void tool_config_set_private_key(char *val)
243 {
244         configs.key = STRDUP(val);
245 }
246
247 const char *tool_config_get_private_key()
248 {
249         return configs.key;
250 }
251
252 void tool_config_set_psk(char *val)
253 {
254         configs.psk = STRDUP(val);
255 }
256
257 const char *tool_config_get_psk()
258 {
259         return configs.psk;
260 }
261
262 void tool_config_set_verbose(bool val)
263 {
264         configs.verbose = val;
265 }
266
267 bool tool_config_get_verbose()
268 {
269         return configs.verbose;
270 }
271
272 void tool_config_set_log_file(char *val)
273 {
274         configs.log_file = STRDUP(val);
275 }
276
277 const char *tool_config_get_log_file()
278 {
279         return (const char *)configs.log_file;
280 }
281
282 void tool_config_deinit()
283 {
284         free(configs.service_name);
285         free(configs.service_type);
286         free(configs.iface_name);
287         free(configs.remote_addr);
288         free(configs.topic);
289         free(configs.message);
290         free(configs.cacert);
291         free(configs.cert);
292         free(configs.key);
293         free(configs.psk);
294         free(configs.log_file);
295 }