summaryrefslogtreecommitdiff
path: root/platform/src/proxy.cpp
diff options
context:
space:
mode:
authorLu Qiuwen <[email protected]>2018-09-07 17:27:23 +0800
committerLu Qiuwen <[email protected]>2018-09-07 17:27:58 +0800
commitb6a225078601fea5661b358155e678e6eb045b80 (patch)
treeabd4cdd5e48134479bcd6ff75f19e12c96024b27 /platform/src/proxy.cpp
parente31ecbb8db627e8f7d163ce61eb1813953d64bd9 (diff)
完成HTTP请求侧解析调试,可以解析请求的URL。
* 增加插件管理功能(简单实现),可以调用解析层插件; * 调整HTTP请求侧解析回调函数实现; * 增加hexdump工具函数;
Diffstat (limited to 'platform/src/proxy.cpp')
-rw-r--r--platform/src/proxy.cpp11
1 files changed, 11 insertions, 0 deletions
diff --git a/platform/src/proxy.cpp b/platform/src/proxy.cpp
index ff9f4b4..44d5243 100644
--- a/platform/src/proxy.cpp
+++ b/platform/src/proxy.cpp
@@ -32,6 +32,7 @@
#include <kni_acceptor.h>
#include <tcp_stream.h>
#include <MESA/MESA_prof_load.h>
+#include <tfe_plugin.h>
static int signals[] = {SIGTERM, SIGQUIT, SIGHUP, SIGPIPE, SIGUSR1};
@@ -230,6 +231,16 @@ int main(int argc, char *argv[])
g_default_proxy->kni_acceptor_handler = kni_acceptor_init(g_default_proxy, main_profile, g_default_logger);
CHECK_OR_EXIT(g_default_proxy->kni_acceptor_handler, "Failed at init KNI acceptor. Exit. ");
+ /* PLUGIN INIT */
+ unsigned int plugin_iterator = 0;
+ for(struct tfe_plugin * plugin_iter = tfe_plugin_iterate(&plugin_iterator);
+ plugin_iter != NULL; plugin_iter = tfe_plugin_iterate(&plugin_iterator))
+ {
+ ret = plugin_iter->on_init(g_default_proxy);
+ CHECK_OR_EXIT(ret >= 0, "Plugin %s init failed. Exit. ", plugin_iter->symbol);
+ TFE_LOG_INFO(g_default_logger, "Plugin %s initialized. ", plugin_iter->symbol);
+ }
+
for (size_t i = 0; i < (sizeof(signals) / sizeof(int)); i++)
{
g_default_proxy->sev[i] = evsignal_new(g_default_proxy->evbase, signals[i], __signal_handler_cb, g_default_proxy);