summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/frag_block.c64
1 files changed, 34 insertions, 30 deletions
diff --git a/src/frag_block.c b/src/frag_block.c
index d4da4b9..34853d0 100644
--- a/src/frag_block.c
+++ b/src/frag_block.c
@@ -261,6 +261,7 @@ char frag_check_block(frag_info_t *frag, http_infor* a_http, struct streaminfo *
char* saveptr = NULL;
char* src = NULL;
unsigned char fd_type = NULL;
+ int define_return = 0;
/*�û��Զ����˳��*/
/* "%u|%u|%s|%llu|%u|%s",hit_rule.cfg_id, hit_rule.level, logurl, (unsigned long long)msg->prog_id, hit_rule.service);*/
@@ -270,38 +271,41 @@ char frag_check_block(frag_info_t *frag, http_infor* a_http, struct streaminfo *
for(int i=0;i<rulenum;i++)
{
memset(cfg_url, 0, sizeof(cfg_url));
- maat_define = (char*)dictator_malloc(thread_seq, sizeof(char)*maat_result[i]->serv_def_len+1);
- Maat_read_rule(g_AV_global_feather, &maat_result[i], MAAT_RULE_SERV_DEFINE, maat_define, maat_result[i]->serv_def_len);
- maat_define[maat_result[i]->serv_def_len] = '\0';
- src = maat_define;
- pos = strtok_r(src, "|", &saveptr);
- for(int i=0;i<6 && pos!=NULL;i++)
+ maat_define = (char*)dictator_malloc(thread_seq, sizeof(char)*maat_result[i].serv_def_len+1);
+ define_return = Maat_read_rule(g_AV_global_feather, &maat_result[i], MAAT_RULE_SERV_DEFINE, maat_define, maat_result[i].serv_def_len);
+ if(0==define_return)
{
- switch(i)
+ maat_define[maat_result[i].serv_def_len] = '\0';
+ src = maat_define;
+ pos = strtok_r(src, "|", &saveptr);
+ for(int i=0;i<6 && pos!=NULL;i++)
{
- case 0:
- sscanf(pos, "%u", &feature_info.av_rule.cfg_id);
- break;
- case 1:
- sscanf(pos, "%hhu", &feature_info.av_rule.level);
- break;
- case 2:
- sscanf(pos, "%s", locate_url);
- break;
- case 3:
- sscanf(pos, "%llu", &feature_info.mid);
- break;
- case 4:
- sscanf(pos, "%hhu", &feature_info.av_rule.service);
- break;
- case 5:
- sscanf(pos, "%s", cfg_url);
- break;
- default:
- break;
- }
- pos = strtok_r(NULL, "|", &saveptr);
- }
+ switch(i)
+ {
+ case 0:
+ sscanf(pos, "%u", &feature_info.av_rule.cfg_id);
+ break;
+ case 1:
+ sscanf(pos, "%hhu", &feature_info.av_rule.level);
+ break;
+ case 2:
+ sscanf(pos, "%s", locate_url);
+ break;
+ case 3:
+ sscanf(pos, "%llu", &feature_info.mid);
+ break;
+ case 4:
+ sscanf(pos, "%hhu", &feature_info.av_rule.service);
+ break;
+ case 5:
+ sscanf(pos, "%s", cfg_url);
+ break;
+ default:
+ break;
+ }
+ pos = strtok_r(NULL, "|", &saveptr);
+ }
+ }
dictator_free(thread_seq, maat_define);
/*��£��������־*/
frag_kill_connection(feature_info.mid, frag, a_http, a_tcp, a_packet);