summaryrefslogtreecommitdiff
path: root/platform/src/proxy.cpp
diff options
context:
space:
mode:
authorluqiuwen <[email protected]>2019-06-02 13:49:44 +0800
committerluqiuwen <[email protected]>2019-06-02 16:30:59 +0800
commit28becac88dce3294382d2166814a7d160fa9c5cc (patch)
tree5028aa99baf61a1dcf9475ff7882c7e7a3a8902f /platform/src/proxy.cpp
parentbc41051da294276f8f27a8cf8edbdb6968c8393e (diff)
移植KNIv1版本的acceptor到4a分支,兼容原kni的实现。
Diffstat (limited to 'platform/src/proxy.cpp')
-rw-r--r--platform/src/proxy.cpp37
1 files changed, 26 insertions, 11 deletions
diff --git a/platform/src/proxy.cpp b/platform/src/proxy.cpp
index 4c594d3..fe605ae 100644
--- a/platform/src/proxy.cpp
+++ b/platform/src/proxy.cpp
@@ -24,8 +24,10 @@
#include <event2/thread.h>
#include <MESA/MESA_handle_logger.h>
-#include <tango_cache_client.h>
+#include <MESA/MESA_prof_load.h>
+#include <MESA/field_stat2.h>
+#include <tango_cache_client.h>
#include <tfe_utils.h>
#include <tfe_future.h>
#include <tfe_stream.h>
@@ -35,15 +37,13 @@
#include <platform.h>
#include <proxy.h>
-#include <acceptor_scm.h>
#include <tcp_stream.h>
-#include <MESA/MESA_prof_load.h>
-#include <MESA/field_stat2.h>
+#include <acceptor_kni_v1.h>
+#include <acceptor_kni_v2.h>
extern struct ssl_policy_enforcer* ssl_policy_enforcer_create(void* logger);
extern enum ssl_stream_action ssl_policy_enforce(struct ssl_stream *upstream, void* u_para);
-
static int signals[] = {SIGHUP, SIGPIPE, SIGUSR1};
/* Global Resource */
@@ -351,6 +351,26 @@ int tfe_stat_init(struct tfe_proxy * proxy, const char * profile)
return 0;
}
+void tfe_proxy_acceptor_init(struct tfe_proxy * proxy, const char * profile)
+{
+ MESA_load_profile_uint_def(profile, "acceptor", "en_kni_v1", &proxy->en_kni_v1_acceptor, 0);
+ MESA_load_profile_uint_def(profile, "acceptor", "en_kni_v2", &proxy->en_kni_v2_acceptor, 1);
+
+ if (proxy->en_kni_v1_acceptor)
+ {
+ g_default_proxy->kni_v1_acceptor = acceptor_kni_v1_create(proxy, profile, proxy->logger);
+ CHECK_OR_EXIT(g_default_proxy->kni_v2_acceptor, "Failed at init KNIv2 acceptor. Exit. ");
+ }
+
+ if (proxy->en_kni_v2_acceptor)
+ {
+ g_default_proxy->kni_v2_acceptor = acceptor_kni_v2_create(g_default_proxy, profile, g_default_logger);
+ CHECK_OR_EXIT(g_default_proxy->kni_v2_acceptor, "Failed at init KNIv2 acceptor. Exit. ");
+ }
+
+ return;
+}
+
int main(int argc, char * argv[])
{
const char * main_profile = "./conf/tfe/tfe.conf";
@@ -397,7 +417,6 @@ int main(int argc, char * argv[])
g_default_proxy->gcev = event_new(g_default_proxy->evbase, -1, EV_PERSIST, __gc_handler_cb, g_default_proxy);
CHECK_OR_EXIT(g_default_proxy->gcev, "Failed at creating GC event. Exit. ");
-
/* SSL INIT */
g_default_proxy->ssl_mgr_handler = ssl_manager_init(main_profile, "ssl", g_default_proxy->evbase, g_default_logger);
CHECK_OR_EXIT(g_default_proxy->ssl_mgr_handler, "Failed at init SSL manager. Exit.");
@@ -414,11 +433,7 @@ int main(int argc, char * argv[])
/* WORKER THREAD CTX Create */
tfe_proxy_work_thread_create_ctx(g_default_proxy);
-
- /* ACCEPTOR INIT */
- g_default_proxy->kni_acceptor_handler = acceptor_scm_create(g_default_proxy, main_profile, g_default_logger);
- CHECK_OR_EXIT(g_default_proxy->kni_acceptor_handler, "Failed at init KNI acceptor. Exit. ");
-
+ tfe_proxy_acceptor_init(g_default_proxy, main_profile);
/* PLUGIN INIT */
unsigned int plugin_iterator = 0;