master
h 34 lines 1.01 KB
Raw
1 #ifndef ACLK_PROXY_H
2 #define ACLK_PROXY_H
3
4 #include "aclk.h"
5
6 #define ACLK_PROXY_PROTO_ADDR_SEPARATOR "://"
7
8 typedef enum aclk_proxy_type {
9 PROXY_TYPE_UNKNOWN = 0,
10 PROXY_TYPE_SOCKS5,
11 PROXY_TYPE_SOCKS5H,
12 PROXY_TYPE_HTTP,
13 PROXY_DISABLED,
14 PROXY_NOT_SET,
15 } ACLK_PROXY_TYPE;
16
17 ACLK_PROXY_TYPE aclk_verify_proxy(const char *string);
18 const char *aclk_lws_wss_get_proxy_setting(ACLK_PROXY_TYPE *type);
19 void safe_log_proxy_censor(char *proxy);
20 const char *aclk_get_proxy(ACLK_PROXY_TYPE *type, bool for_logging);
21 const char *aclk_get_proxy_source(void);
22 void aclk_proxy_get_display(char *buf, size_t buflen, const char *proxy, ACLK_PROXY_TYPE type);
23 void aclk_proxy_get_full_display(char *buf, size_t buflen);
24
25 static inline const char *aclk_proxy_type_to_url(ACLK_PROXY_TYPE type) {
26 switch (type) {
27 case PROXY_TYPE_HTTP: return "http://";
28 case PROXY_TYPE_SOCKS5: return "socks5://";
29 case PROXY_TYPE_SOCKS5H: return "socks5h://";
30 default: return "";
31 }
32 }
33
34 #endif /* ACLK_PROXY_H */