TSG-14928: 接收通知的ssl_intercept_info信息,填充到Proxy_intercept_event日志中发送; 接收SCE/SHAPER通知的日志信息

This commit is contained in:
杨玉波
2023-05-10 07:35:03 +00:00
committed by liuxueli
parent c5e959492d
commit ee0f57d6d3
15 changed files with 1666 additions and 319 deletions

View File

@@ -26,6 +26,66 @@ struct bridge_info
struct bridge_info g_tm_bridge_para[BRIDGE_TYPE_MAX];
void session_sce_log_update_free(const struct streaminfo *a_stream, int bridge_id, void *data)
{
if (data != NULL)
{
dictator_free(a_stream->threadnum, data);
data = NULL;
}
return;
}
void session_shaper_log_update_free(const struct streaminfo *a_stream, int bridge_id, void *data)
{
if (data != NULL)
{
dictator_free(a_stream->threadnum, data);
data = NULL;
}
return;
}
void session_proxy_log_update_free(const struct streaminfo *a_stream, int bridge_id, void *data)
{
struct proxy_log_update *proxy = (struct proxy_log_update *)data;
if (proxy != NULL)
{
if (proxy->ssl_downstream_version != NULL)
{
dictator_free(a_stream->threadnum, (void *)proxy->ssl_downstream_version);
proxy->ssl_downstream_version = NULL;
}
if (proxy->ssl_error != NULL)
{
dictator_free(a_stream->threadnum, (void *)proxy->ssl_error);
proxy->ssl_error = NULL;
}
if (proxy->ssl_passthrough_reason != NULL)
{
dictator_free(a_stream->threadnum, (void *)proxy->ssl_passthrough_reason);
proxy->ssl_passthrough_reason = NULL;
}
if (proxy->ssl_upstream_version != NULL)
{
dictator_free(a_stream->threadnum, (void *)proxy->ssl_upstream_version);
proxy->ssl_upstream_version = NULL;
}
dictator_free(a_stream->threadnum, (void *)proxy);
proxy = NULL;
}
data = NULL;
return;
}
void session_runtime_process_context_free(const struct streaminfo *a_stream, int bridge_id, void *data)
{
struct session_runtime_process_context *srt_process_context=(struct session_runtime_process_context *)data;
@@ -222,7 +282,7 @@ int srt_attribute_set_establish_latecy(const struct streaminfo *a_stream)
{
return 0;
}
struct session_runtime_attribute *srt_attribute=(struct session_runtime_attribute *)session_runtime_attribute_new(a_stream);
if(srt_attribute)
{
@@ -935,6 +995,42 @@ void *session_lua_user_defined_attribute_get(const struct streaminfo *a_stream)
return session_async_bridge_get_data(a_stream, g_tm_bridge_para[BRIDGE_TYPE_APP_LUA_RESULT].id);
}
void *session_log_update_data_get(const struct streaminfo *a_stream, enum TSG_SERVICE service)
{
switch (service)
{
case TSG_SERVICE_INTERCEPT:
return stream_bridge_async_data_get(a_stream, g_tm_bridge_para[BRIDGE_TYPE_LOG_UPDATE_PROXY].id);
case TSG_SERVICE_CHAINING:
return stream_bridge_async_data_get(a_stream, g_tm_bridge_para[BRIDGE_TYPE_LOG_UPDATE_SCE].id);
case TSG_SERVICE_SHAPING:
return stream_bridge_async_data_get(a_stream, g_tm_bridge_para[BRIDGE_TYPE_LOG_UPDATE_SHAPER].id);
default:
return NULL;
}
}
int session_log_update_data_put(const struct streaminfo *a_stream, enum TSG_SERVICE service, void *data)
{
switch (service)
{
case TSG_SERVICE_INTERCEPT:
return stream_bridge_async_data_put(a_stream, g_tm_bridge_para[BRIDGE_TYPE_LOG_UPDATE_PROXY].id, data);
case TSG_SERVICE_CHAINING:
return stream_bridge_async_data_put(a_stream, g_tm_bridge_para[BRIDGE_TYPE_LOG_UPDATE_SCE].id, data);
case TSG_SERVICE_SHAPING:
return stream_bridge_async_data_put(a_stream, g_tm_bridge_para[BRIDGE_TYPE_LOG_UPDATE_SHAPER].id, data);
default:
return 0;
}
}
int tsg_bridge_init(const char *conffile)
{
MESA_load_profile_string_def(conffile, "BRIDGE", "APP_IDENTIFY_RESULT_BRIDGE", g_tm_bridge_para[BRIDGE_TYPE_SYNC_APP_IDENTIFY_RESULT].name, MAX_BRIDGE_NAME_LEN, "APP_IDENTIFY_RESULT_BRIDGE");
@@ -984,6 +1080,15 @@ int tsg_bridge_init(const char *conffile)
MESA_load_profile_string_def(conffile, "BRIDGE", "SEGMENT_IDS_BRIDGE_NAME",g_tm_bridge_para[BRIDGE_TYPE_SEGMENT_IDS].name, MAX_BRIDGE_NAME_LEN, "SEGMENT_IDS");
g_tm_bridge_para[BRIDGE_TYPE_SEGMENT_IDS].free_cb=session_segment_id_free;
MESA_load_profile_string_def(conffile, "BRIDGE", "SCE_LOG_UPDATE_BRIDGE_NAME", g_tm_bridge_para[BRIDGE_TYPE_LOG_UPDATE_SCE].name, MAX_BRIDGE_NAME_LEN, "SCE_LOG_UPDATE");
g_tm_bridge_para[BRIDGE_TYPE_LOG_UPDATE_SCE].free_cb = session_sce_log_update_free;
MESA_load_profile_string_def(conffile, "BRIDGE", "SHAPER_LOG_UPDATE_BRIDGE_NAME", g_tm_bridge_para[BRIDGE_TYPE_LOG_UPDATE_SHAPER].name, MAX_BRIDGE_NAME_LEN, "SHAPER_LOG_UPDATE");
g_tm_bridge_para[BRIDGE_TYPE_LOG_UPDATE_SHAPER].free_cb = session_shaper_log_update_free;
MESA_load_profile_string_def(conffile, "BRIDGE", "PROXY_LOG_UPDATE_BRIDGE_NAME", g_tm_bridge_para[BRIDGE_TYPE_LOG_UPDATE_PROXY].name, MAX_BRIDGE_NAME_LEN, "PROXY_LOG_UPDATE");
g_tm_bridge_para[BRIDGE_TYPE_LOG_UPDATE_PROXY].free_cb = session_proxy_log_update_free;
for(int i=0; i<BRIDGE_TYPE_MAX; i++)
{
g_tm_bridge_para[i].id=stream_bridge_build(g_tm_bridge_para[i].name, "w");