This repository has been archived by the owner on Jan 19, 2021. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 3
/
Copy pathHtmlTemplate.h
152 lines (131 loc) · 6.24 KB
/
HtmlTemplate.h
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
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
#pragma once
#include <stdbool.h>
#include <stdio.h>
#include <stdint.h>
#include "Interface.h"
#include <libconfig.h>
typedef struct _HTML_TEMPLATE_MIME_TYPE {
char *extension;
char *type;
} HTML_TEMPLATE_MIME_TYPE;
HTML_TEMPLATE_MIME_TYPE *HtmlTemplateMimeTypes;
size_t HtmlTemplateMimeTypesSize;
typedef enum _HTML_TEMPLATE_COMPONENT_IDENTIFIER {
HTML_TEMPLATE_COMPONENT_IDENTIFIER_VERSION = 0,
HTML_TEMPLATE_COMPONENT_IDENTIFIER_CURRENT_PAGE = 1,
HTML_TEMPLATE_COMPONENT_IDENTIFIER_CFG_HOME_ACTIVE = 2,
HTML_TEMPLATE_COMPONENT_IDENTIFIER_CFG_UPROXIES_ACTIVE = 3,
HTML_TEMPLATE_COMPONENT_IDENTIFIER_CFG_PROXIES_ACTIVE = 4,
HTML_TEMPLATE_COMPONENT_IDENTIFIER_CFG_SOURCES_ACTIVE = 5,
HTML_TEMPLATE_COMPONENT_IDENTIFIER_CFG_STATS_ACTIVE = 6,
HTML_TEMPLATE_COMPONENT_IDENTIFIER_USER = 7,
HTML_TEMPLATE_COMPONENT_IDENTIFIER_COUNT_UPROXIES = 8,
HTML_TEMPLATE_COMPONENT_IDENTIFIER_COUNT_PROXIES = 9,
HTML_TEMPLATE_COMPONENT_IDENTIFIER_UPROXIES_HEAD = 10,
HTML_TEMPLATE_COMPONENT_IDENTIFIER_UPROXIES_TABLE_ITEMS_START = 11,
HTML_TEMPLATE_COMPONENT_IDENTIFIER_UPROXIES_TABLE_ITEMS_END = 12,
HTML_TEMPLATE_COMPONENT_IDENTIFIER_CFG_TABLE_ODD = 13,
HTML_TEMPLATE_COMPONENT_IDENTIFIER_CFG_TABLE_EVEN = 14,
HTML_TEMPLATE_COMPONENT_IDENTIFIER_CFG_TABLE_OK = 15,
HTML_TEMPLATE_COMPONENT_IDENTIFIER_CFG_TABLE_WARN = 16,
HTML_TEMPLATE_COMPONENT_IDENTIFIER_CFG_TABLE_ERR = 17,
HTML_TEMPLATE_COMPONENT_IDENTIFIER_UPROXIES_ITEM = 18,
HTML_TEMPLATE_COMPONENT_IDENTIFIER_PROXIES_HEAD = 19,
HTML_TEMPLATE_COMPONENT_IDENTIFIER_PROXIES_TABLE_ITEMS_START = 20,
HTML_TEMPLATE_COMPONENT_IDENTIFIER_PROXIES_TABLE_ITEMS_END = 21,
HTML_TEMPLATE_COMPONENT_IDENTIFIER_PROXIES_ITEM = 22,
HTML_TEMPLATE_COMPONENT_IDENTIFIER_PRXSRC_HEAD = 23,
HTML_TEMPLATE_COMPONENT_IDENTIFIER_PRXSRC_TABLE_ITEMS_START = 24,
HTML_TEMPLATE_COMPONENT_IDENTIFIER_PRXSRC_TABLE_ITEMS_END = 25,
HTML_TEMPLATE_COMPONENT_IDENTIFIER_PRXSRC_ITEM = 26,
HTML_TEMPLATE_COMPONENT_IDENTIFIER_STATIC = 27,
HTML_TEMPLATE_COMPONENT_IDENTIFIER_TABLE_BREAK = 28,
HTML_TEMPLATE_COMPONENT_IDENTIFIER_STATS_GEO_HEAD = 29,
HTML_TEMPLATE_COMPONENT_IDENTIFIER_STATS_GEO_TABLE_ITEMS_START = 30,
HTML_TEMPLATE_COMPONENT_IDENTIFIER_STATS_GEO_TABLE_ITEMS_END = 31,
HTML_TEMPLATE_COMPONENT_IDENTIFIER_STATS_GEO_ITEM = 32,
HTML_TEMPLATE_COMPONENT_IDENTIFIER_CHECK_IP = 33,
HTML_TEMPLATE_COMPONENT_IDENTIFIER_CHECK_PORT = 34,
HTML_TEMPLATE_COMPONENT_IDENTIFIER_CHECK_TYPE = 35,
HTML_TEMPLATE_COMPONENT_IDENTIFIER_CHECK_COUNTRY_LOWER = 36,
HTML_TEMPLATE_COMPONENT_IDENTIFIER_CHECK_COUNTRY_UPPER = 37,
HTML_TEMPLATE_COMPONENT_IDENTIFIER_CHECK_LIVE_SINCE = 38,
HTML_TEMPLATE_COMPONENT_IDENTIFIER_CHECK_LAST_CHECKED = 39,
HTML_TEMPLATE_COMPONENT_IDENTIFIER_CHECK_CONNECT_TIMEOUT = 40,
HTML_TEMPLATE_COMPONENT_IDENTIFIER_CHECK_HTTP_S_TIMEOUT = 41,
HTML_TEMPLATE_COMPONENT_IDENTIFIER_CHECK_SUCCESSFUL_CHECKS = 42,
HTML_TEMPLATE_COMPONENT_IDENTIFIER_CHECK_FAILED_CHECKS = 43,
HTML_TEMPLATE_COMPONENT_IDENTIFIER_CHECK_RETRIES = 44,
HTML_TEMPLATE_COMPONENT_IDENTIFIER_CHECK_UID = 45,
HTML_TEMPLATE_COMPONENT_IDENTIFIER_CHECK_COUNTRY_FULL = 46,
HTML_TEMPLATE_COMPONENT_IDENTIFIER_SUB_SIZE_UPROXIES = 47,
HTML_TEMPLATE_COMPONENT_IDENTIFIER_SUB_SIZE_PROXIES = 48,
HTML_TEMPLATE_COMPONENT_IDENTIFIER_SUB_AUTH_COOKIE = 49,
HTML_TEMPLATE_COMPONENT_IDENTIFIER_SUB_MSG_INTERVAL = 50,
HTML_TEMPLATE_COMPONENT_IDENTIFIER_SUB_PROXY_ADD = 51,
HTML_TEMPLATE_COMPONENT_IDENTIFIER_SUB_UPROXY_ADD = 52,
HTML_TEMPLATE_COMPONENT_IDENTIFIER_SUB_PROXY_REMOVE = 53,
HTML_TEMPLATE_COMPONENT_IDENTIFIER_SUB_UPROXY_REMOVE = 54,
HTML_TEMPLATE_COMPONENT_IDENTIFIER_CFG_ENABLED = 55,
HTML_TEMPLATE_COMPONENT_IDENTIFIER_CFG_DISABLED = 56,
HTML_TEMPLATE_COMPONENT_IDENTIFIER_CFG_TOOLS_ACTIVE = 57,
HTML_TEMPLATE_COMPONENT_IDENTIFIER_CHECK_COND_INVALID_CERT = 58,
HTML_TEMPLATE_COMPONENT_IDENTIFIER_CHECK_COND_INVALID_CERT_FINGERPRINT = 59,
HTML_TEMPLATE_COMPONENT_IDENTIFIER_CHECK_ELSE_COND_INVALID_CERT = 60,
HTML_TEMPLATE_COMPONENT_IDENTIFIER_CHECK_END_COND_INVALID_CERT = 61,
HTML_TEMPLATE_COMPONENT_IDENTIFIER_CHECK_COND_INVALID_CERT_INFO = 62,
HTML_TEMPLATE_COMPONENT_IDENTIFIER_STATS_PCOUNT_HEAD = 63,
HTML_TEMPLATE_COMPONENT_IDENTIFIER_STATS_PCOUNT_TABLE_ITEMS_START = 64,
HTML_TEMPLATE_COMPONENT_IDENTIFIER_STATS_PCOUNT_TABLE_ITEMS_END = 65,
HTML_TEMPLATE_COMPONENT_IDENTIFIER_STATS_PCOUNT_ITEM = 66,
HTML_TEMPLATE_COMPONENT_IDENTIFIER_CPAGE_RAW_HTTP = 67,
HTML_TEMPLATE_COMPONENT_IDENTIFIER_CFG_SETTINGS_ACTIVE = 68,
HTML_TEMPLATE_COMPONENT_IDENTIFIER_INVALID = -1
} HTML_TEMPLATE_COMPONENT_IDENTIFIER;
typedef struct _HTML_TEMPLATE_COMPONENT {
HTML_TEMPLATE_COMPONENT_IDENTIFIER identifier;
void *content;
} HTML_TEMPLATE_COMPONENT;
char *HtmlComponentEnabled;
char *HtmlComponentDisabled;
typedef struct _HTML_TEMPALTE_TABLE_INFO {
bool inTable;
size_t currentComponentIteration;
size_t tableObjectIteration;
#ifdef __linux__
ssize_t tableHeadOrItemIteration;
#elif defined _WIN32 || defined _WIN64
SSIZE_T tableHeadOrItemIteration;
#endif
void *tableObject;
} HTML_TEMPALTE_TABLE_INFO;
typedef struct _HTML_TEMPLATE_TABLE_STATS_GEO {
const char *countryCode;
uint64_t count;
} HTML_TEMPLATE_TABLE_STATS_GEO;
HTML_TEMPLATE_COMPONENT *HtmlTemplateHead;
size_t HtmlTemplateHeadSize;
HTML_TEMPLATE_COMPONENT *HtmlTemplateFoot;
size_t HtmlTemplateFootSize;
HTML_TEMPLATE_COMPONENT *HtmlTemplateHome;
size_t HtmlTemplateHomeSize;
HTML_TEMPLATE_COMPONENT *HtmlTemplateUProxies;
size_t HtmlTemplateUProxiesSize;
HTML_TEMPLATE_COMPONENT *HtmlTemplateProxies;
size_t HtmlTemplateProxiesSize;
HTML_TEMPLATE_COMPONENT *HtmlTemplateProxySources;
size_t HtmlTemplateProxySourcesSize;
HTML_TEMPLATE_COMPONENT *HtmlTemplateStats;
size_t HtmlTemplateStatsSize;
HTML_TEMPLATE_COMPONENT *HtmlTemplateCheck;
size_t HtmlTemplateCheckSize;
HTML_TEMPLATE_COMPONENT *HtmlTemplateTools;
size_t HtmlTemplateToolsSize;
HTML_TEMPLATE_COMPONENT *HtmlTemplateCPageRaw;
size_t HtmlTemplateCPageRawSize;
HTML_TEMPLATE_COMPONENT *HtmlTemplateSettings;
size_t HtmlTemplateSettingsSize;
void HtmlTemplateParse(FILE *hFile, HTML_TEMPLATE_COMPONENT **Template, size_t *SizeRef, config_setting_t *CfgRoot);
void HtmlTemplateLoadAll();
void HtmlTemplateBufferInsert(struct evbuffer *Buffer, HTML_TEMPLATE_COMPONENT *Components, size_t Size, WEB_INTERFACE_INFO Info, HTML_TEMPALTE_TABLE_INFO TableInfo);
void HtmlTemplateMimeTypesInit();