增加SSL模块初始化代码,修正SSL模块初始化时遇到的空句柄问题。
This commit is contained in:
@@ -13,7 +13,7 @@
|
||||
struct ssl_stream;
|
||||
|
||||
struct ssl_mgr;
|
||||
struct ssl_mgr * ssl_manager_init(const char * ini_profile, const char * section, struct event_base * evbase,
|
||||
struct ssl_mgr * ssl_manager_init(const char * ini_profile, const char * section, struct event_base * ev_base_gc,
|
||||
void * logger, screen_stat_handle_t * fs);
|
||||
void ssl_manager_destroy(struct ssl_mgr * mgr);
|
||||
|
||||
|
||||
@@ -216,6 +216,11 @@ 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, NULL);
|
||||
CHECK_OR_EXIT(g_default_proxy->ssl_mgr_handler, "Failed at init SSL manager. Exit.");
|
||||
|
||||
/* MODULE INIT */
|
||||
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. ");
|
||||
|
||||
@@ -65,6 +65,7 @@ struct ssl_mgr
|
||||
char trust_CA_dir[TFE_STRING_MAX];
|
||||
X509_STORE * trust_CA_store;
|
||||
struct key_keeper * keeper_of_keys;
|
||||
struct event_base * ev_base_gc;
|
||||
};
|
||||
|
||||
struct __ssl_stream_debug
|
||||
@@ -279,7 +280,8 @@ void ssl_manager_destroy(struct ssl_mgr * mgr)
|
||||
free(mgr);
|
||||
}
|
||||
|
||||
struct ssl_mgr * ssl_manager_init(const char * ini_profile, const char * section, void * logger)
|
||||
struct ssl_mgr * ssl_manager_init(const char * ini_profile, const char * section,
|
||||
struct event_base * ev_base_gc, void * logger, screen_stat_handle_t * fs)
|
||||
{
|
||||
struct ssl_mgr * mgr = ALLOC(struct ssl_mgr, 1);
|
||||
int ret = 0, value = 0;
|
||||
@@ -331,7 +333,7 @@ struct ssl_mgr * ssl_manager_init(const char * ini_profile, const char * section
|
||||
}
|
||||
|
||||
MESA_load_profile_string_def(ini_profile, section, "trust_CA_file", mgr->trust_CA_file, sizeof(mgr->trust_CA_file),
|
||||
"");
|
||||
"/etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem");
|
||||
MESA_load_profile_string_def(ini_profile, section, "trust_CA_dir", mgr->trust_CA_dir, sizeof(mgr->trust_CA_dir),
|
||||
"");
|
||||
|
||||
@@ -470,13 +472,12 @@ failed:
|
||||
static void ssl_async_peek_client_hello(struct future * future, evutil_socket_t fd, struct event_base * evbase,
|
||||
void * logger)
|
||||
{
|
||||
struct event * ev = NULL;
|
||||
struct promise * p = future_to_promise(future);
|
||||
struct peek_client_hello_ctx * ctx = ALLOC(struct peek_client_hello_ctx, 1);
|
||||
ctx->ev = event_new(evbase, fd, EV_READ, peek_client_hello_cb, p);
|
||||
ctx->logger = logger;
|
||||
|
||||
event_add(ev, NULL);
|
||||
event_add(ctx->ev, NULL);
|
||||
promise_set_ctx(p, (void *) ctx, peek_client_hello_ctx_free);
|
||||
return;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user