summaryrefslogtreecommitdiff
path: root/src/frag_dedup.c
diff options
context:
space:
mode:
authordumeijie <[email protected]>2022-09-07 19:43:28 +0800
committerdumeijie <[email protected]>2022-09-07 19:43:28 +0800
commit779a3aba55d0dcd22dded18c7869b5ee4e72a602 (patch)
treee4bd40c3b2e01ae2f6e43d5f1e70eef09dc1ea88 /src/frag_dedup.c
parent674ea3c470538801a51efa8a6131041d3d8b3678 (diff)
🦄 refactor(for voip):voip-dev
Diffstat (limited to 'src/frag_dedup.c')
-rw-r--r--src/frag_dedup.c112
1 files changed, 14 insertions, 98 deletions
diff --git a/src/frag_dedup.c b/src/frag_dedup.c
index 0c2d503..ac55f27 100644
--- a/src/frag_dedup.c
+++ b/src/frag_dedup.c
@@ -1,5 +1,5 @@
/*
-* �������Դ��ѯҵ��
+* �������Դ��ѯҵ�ᅣ1�7
*/
#include <sys/ioctl.h>
@@ -107,16 +107,16 @@ void media_dedup_report(media_t* mdi)
break;
}
}
-
+ /*
if(FLAG_TEST(mdi->td_query, TD_QUERY_TYPE_DEDUP) && !FLAG_TEST(mdi->td_query, TD_QUERY_RES_NOREPORT))
{
soqav_dedup_report(g_frag_run.dedup_hd, mdi->td, &detail);
}
else
{
- /*�ظ���Ŀ����Ҫ�ϱ���TD��ΪNULL*/
+ /*�ظ���Ŀ����Ҫ�ϱ���TD��ΪNULL
soqav_dedup_report(g_frag_run.dedup_hd, NULL, &detail);
- }
+ }*/
frag_write_to_log(AV_DEDUP_REPORT, mdi->mid, (void*)mdi->td, (void*)&mdi->byte_proc, mdi->configID);
atomic_inc(&g_frag_stat.media_stat[LOG_MEDIA_DEDUP_REPORT]);
if(mdi->td_complete)
@@ -142,7 +142,7 @@ long media_query_ack(void *data, const uint8_t *key, uint size, void *user_arg)
int result = ack_rsl->status;
uint32_t multisrc_bizmanip = ack_rsl->cpz_payload_ip;
- /*���Դ���*/
+ /*���Դ���*/
/*
result = BIT_TD_MULTI_SOURCE;
multisrc_bizmanip = 16777343;
@@ -151,7 +151,7 @@ long media_query_ack(void *data, const uint8_t *key, uint size, void *user_arg)
if(NULL!=mdi)
{
- /*���֮ǰ�յ���Ӧ�𣬲����ٴ���*/
+ /*���֮ǰ�յ���Ӧ�𣬲����ٴ��ᅣ1�7*/
if(FLAG_TEST(mdi->td_query, TD_QUERY_ACK_DEDUP) || FLAG_TEST(mdi->td_query, TD_QUERY_ACK_MULTISRC))
{
return 0;
@@ -159,8 +159,8 @@ long media_query_ack(void *data, const uint8_t *key, uint size, void *user_arg)
FLAG_SET(mdi->td_query, TD_QUERY_ACK_DEDUP);
FLAG_SET(mdi->td_query, TD_QUERY_ACK_MULTISRC);
- /*debug ���ز����ߵ�����£�����debugģʽ������ʧЧ*/
- /*��Դ�����ݻ���*/
+ /*debug ���ز����ߵ�����£�����debugģʽ������ʧЧ*/
+ /*��Դ�����ݻ���*/
if(FLAG_TEST(mdi->td_query, TD_QUERY_TYPE_MULTISRC))
{
if(result & BIT_TD_KNOWN)
@@ -170,7 +170,7 @@ long media_query_ack(void *data, const uint8_t *key, uint size, void *user_arg)
FLAG_SET(mdi->td_query, TD_QUERY_RES_DEDUP);
FLAG_SET(mdi->td_query, TD_QUERY_RES_NOREPORT);
}
- /*���IP�DZ���16777343(127.0.0.1)���ҽ�ĿIDһ��������Ҫ�ۺ�*/
+ /*���IP�DZ���16777343(127.0.0.1)���ҽ�ĿIDһ��������Ҫ�ۺ�*/
else if(result & BIT_TD_MULTI_SOURCE && (multisrc_bizmanip!=16777343 ||(multisrc_bizmanip==16777343 && mdi->mid != (uint64_t)ack_rsl->mid)))
{
inet_ntop(AF_INET, &multisrc_bizmanip, ip_buf, 64);
@@ -193,10 +193,10 @@ long media_query_ack(void *data, const uint8_t *key, uint size, void *user_arg)
frag_ivi_info.thread_seq = first_item->thread_seq;
atomic_inc(&g_frag_stat.sysinfo_stat[MULTISRC_QUEUE][QUEUE_OUT]);
frag_write_to_log(ADD_FRAG_FROM_TAILQ, frag_ivi_info.frg->mid, frag_ivi_info.frg, NULL, 0);
- /*��Ŀ�ظ���ֱ�Ӷ���*/
+ /*��Ŀ�ظ���ֱ�Ӷ���*/
if(result & BIT_TD_KNOWN && !g_frag_cfg.dedup_invalid)
{
- /*��Ӧ�ü���ȥ��ͳ�ƣ���Ϊ�ⲿ��������ʵ�Ѿ����͸��˷�������*/
+ /*��Ӧ�ü���ȥ��ͳ�ƣ���Ϊ�ⲿ��������ʵ�Ѿ����͸��˷�������*/
free_frag_in(frag_ivi_info.frg,0,NULL);
}
else
@@ -208,7 +208,7 @@ long media_query_ack(void *data, const uint8_t *key, uint size, void *user_arg)
FLAG_SET(frag_ivi_info.frg->frag_flag, FRAG_FLAG_MULTISRC);
frag_add_wait_lq(&frag_ivi_info, 1, frag_ivi_info.thread_seq);
}
- /*���ۺϵĶ�Դ�����ݶ�������Ϊ�Ѿ����͹���*/
+ /*���ۺϵĶ�Դ�����ݶ�������Ϊ�Ѿ����͹���*/
else
{
free_frag_in(frag_ivi_info.frg,0,NULL);
@@ -356,10 +356,10 @@ long set_td_data(media_t* mdi, frag_in_t* frg)
cur_td_datalen = ((frg->offset+frg->datalen)>g_frag_cfg.td_data_maxsize) ? (g_frag_cfg.td_data_maxsize-frg->offset): frg->datalen;
memcpy(mdi->td_data+frg->offset, frg->data, cur_td_datalen);
mdi->td_datalen += cur_td_datalen;
- /*td_data�������ܲ�ѯ*/
+ /*td_data�������ܲ�ѯ*/
if(mdi->td_datalen==g_frag_cfg.td_data_maxsize)
{
- //url is not empty,�ȴ���Դ��ѯURL�����url����TD
+ //url is not empty,�ȴ���Դ��ѯURL�����url����TD
if(NULL != mdi->opt[MEDIA_OPT_URL][mdi->url_opt_index])
{
FLAG_SET(mdi->td_query,TD_QUERY_TYPE_DEDUP);
@@ -428,88 +428,4 @@ void free_query_detail(query_detail_t* query_detail)
}
}
-void proc_media_multisrc(media_t* mdi, int timeout)
-{
- query_detail_t* query_detail = NULL;
- struct stream_tuple4_v4 tuple4_v4 ;
- struct stream_tuple4_v6 tuple4_v6 ;
-
- /*�ж��Ƿ���Ҫ�����ѯ*/
- /*��׼��ʱ֮��һ���ᷢ���ѯ*/
- if(!FLAG_TEST(mdi->td_query, TD_QUERY_TYPE_YES)&&
- (((FLAG_TEST(mdi->td_query, TD_QUERY_TYPE_DEDUP)||mdi->byte_proc>g_frag_cfg.td_data_maxsize)
- && FLAG_TEST(mdi->td_query, TD_QUERY_TYPE_MULTISRC))||timeout))
- {
- /*��������td_meta,�̶�����td*/
- if((g_frag_cfg.av_dedup_switch) && (mdi->opt[MEDIA_OPT_TD_META][mdi->url_opt_index] == NULL))
- {
- generate_td_meta(mdi);
- if(mdi->td_complete != 1 && mdi->td_datalen==g_frag_cfg.td_data_maxsize)
- {
- caculate_md5(mdi->opt[MEDIA_OPT_TD_META][mdi->url_opt_index]->opt_value, mdi->opt[MEDIA_OPT_TD_META][mdi->url_opt_index]->opt_len, mdi->td_data, mdi->td_datalen, mdi->td, TD_LEN);
- mdi->td_complete = 1;
- }
- }
-
- FLAG_SET(mdi->td_query, TD_QUERY_TYPE_YES);
- /*�����Ҫ���ж�Դ���߽��ز�ѯ�����query_detail*/
- query_detail = (query_detail_t*)calloc(1, sizeof(query_detail_t));
- query_detail->total_len = mdi->media_len;
- query_detail->mid = mdi->mid;
-
- /*addr*/
- if(NULL!=mdi->opt[MEDIA_OPT_ADDR][mdi->url_opt_index])
- {
- query_detail->addrtype = addrlist_to_streamtuple4(mdi->opt[MEDIA_OPT_ADDR][mdi->url_opt_index]->opt_value, &tuple4_v4, &tuple4_v6);
- switch(query_detail->addrtype)
- {
- case ADDR_TYPE_IPV4:
- query_detail->tuple4_v4 = (struct stream_tuple4_v4*)malloc(sizeof(struct stream_tuple4_v4));;
- memcpy(query_detail->tuple4_v4, &tuple4_v4, sizeof(tuple4_v4));
- break;
- case ADDR_TYPE_IPV6:
- query_detail->tuple4_v6 = (struct stream_tuple4_v6*)malloc(sizeof(struct stream_tuple4_v6));;
- memcpy(query_detail->tuple4_v6, &tuple4_v6, sizeof(tuple4_v6));
- break;
- }
- }
- /*��Դ��ѯ*/
- if(FLAG_TEST(mdi->td_query, TD_QUERY_TYPE_MULTISRC))
- {
- /*���ö�ʱ��*/
- struct timer_context_t *context = (struct timer_context_t *)calloc(1, sizeof(struct timer_context_t));
- context->mid = mdi->mid;
- MESA_timer_add(g_frag_run.multisrc_timer[mdi->thread_seq],
- time(NULL),
- g_frag_cfg.multisrc_wait_timeout,
- soqav_query_timeout,
- context,
- soqav_query_free_timeout,
- &mdi->timer_idx);
- g_frag_run.multisrc_timer_on[mdi->thread_seq] = 1;
- if(NULL!=mdi->opt[MEDIA_OPT_URL][mdi->url_opt_index])
- {
- query_detail->url = (char*)malloc(mdi->opt[MEDIA_OPT_URL][mdi->url_opt_index]->opt_len);
- query_detail->urllen = mdi->opt[MEDIA_OPT_URL][mdi->url_opt_index]->opt_len;
- memcpy((void*)query_detail->url, mdi->opt[MEDIA_OPT_URL][mdi->url_opt_index]->opt_value, mdi->opt[MEDIA_OPT_URL][mdi->url_opt_index]->opt_len);
- }
- }
- if(FLAG_TEST(mdi->td_query, TD_QUERY_TYPE_DEDUP))
- {
- atomic_inc(&g_frag_stat.media_stat[LOG_MEDIA_TD_QUERY]);
- soqav_dedup_query(g_frag_run.dedup_hd, mdi->td, query_detail, soqav_query_callback, (void*)mdi->mid);
- }
- else
- {
- soqav_dedup_query(g_frag_run.dedup_hd, NULL, query_detail, soqav_query_callback, (void*)mdi->mid);
- }
- atomic_inc(&g_frag_stat.media_stat[LOG_MEDIA_DEDUP_QUERY]);
- frag_write_to_log(SEND_AV_DEDUP_QUERY, mdi->mid, mdi, NULL, 0);
- if(NULL!=query_detail)
- {
- free_query_detail(query_detail);
- query_detail =NULL;
- }
- }
-}