亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? bnfa_search.c

?? 著名的入侵檢測系統snort的最新版本的源碼
?? C
?? 第 1 頁 / 共 4 頁
字號:
       NextState = (bnfa_state_t **)bnfa->bnfaNextState;       if( !NextState ) 		   continue;       p = NextState[k];       printf("fs=%-4d nc=256 ",bnfa->bnfaFailState[k]);       for( i=0; i<bnfa->bnfaAlphabetSize; i++ )       {          state = p[i];          if( state != 0 && state != BNFA_FAIL_STATE )          {             if( isprint(i) )               printf("%3c->%-5d\t",i,state);             else               printf("%3d->%-5d\t",i,state);          }       }    }#endif   printf("\n");   if( MatchList[k] )       printf("---MatchList For State %d\n",k);    for( mlist = MatchList[k];         mlist!= NULL;         mlist = mlist->next )    {	     bnfa_pattern_t * pat;		 pat = (bnfa_pattern_t*)mlist->data;         printf("---pattern : %.*s\n",pat->n,pat->casepatrn);    }  }}/**  Create a new AC state machine*/ bnfa_struct_t * bnfaNew(void) {  bnfa_struct_t * p;  static int first=1;  int bnfa_memory=0;  if( first )  {      bnfaInitSummary();      first=0;  }    init_xlatcase ();  p = (bnfa_struct_t *) BNFA_MALLOC(sizeof(bnfa_struct_t),bnfa_memory);  if(!p) 	  return 0;  if( p )  {     p->bnfaCaseMode           = BNFA_PER_PAT_CASE;     p->bnfaFormat             = BNFA_SPARSE;     p->bnfaAlphabetSize       = BNFA_MAX_ALPHABET_SIZE;     p->bnfaForceFullZeroState = 1;     p->bnfa_memory            = sizeof(bnfa_struct_t);  }    queue_memory = 0;  return p;}void bnfaSetCase(bnfa_struct_t  * p, int flag){   if( flag == BNFA_PER_PAT_CASE ) p->bnfaCaseMode = flag;    if( flag == BNFA_CASE    ) p->bnfaCaseMode = flag;    if( flag == BNFA_NOCASE  ) p->bnfaCaseMode = flag; }/**   Fee all memory */ void bnfaFree (bnfa_struct_t * bnfa) {  int i;  bnfa_pattern_t * patrn, *ipatrn;  bnfa_match_node_t   * mlist, *ilist;  for(i = 0; i < bnfa->bnfaNumStates; i++)  {      /* free match list entries */      mlist = bnfa->bnfaMatchList[i];      while (mlist)      {		ilist = mlist;		mlist = mlist->next;		BNFA_FREE(ilist,sizeof(bnfa_match_node_t),bnfa->matchlist_memory);      }      bnfa->bnfaMatchList[i] = 0;#ifdef ALLOW_NFA_FULL      /* free next state entries */      if( bnfa->bnfaFormat==BNFA_FULL )/* Full format */      {         if( bnfa->bnfaNextState[i] )		 {            BNFA_FREE(bnfa->bnfaNextState[i],bnfa->bnfaAlphabetSize*sizeof(bnfa_state_t),bnfa->nextstate_memory);		 }      }#endif  }  /* Free patterns */  patrn = bnfa->bnfaPatterns;  while(patrn)  {     ipatrn=patrn;     patrn=patrn->next;     BNFA_FREE(ipatrn->casepatrn,ipatrn->n,bnfa->pat_memory);     BNFA_FREE(ipatrn,sizeof(bnfa_pattern_t),bnfa->pat_memory);  }  /* Free arrays */  BNFA_FREE(bnfa->bnfaFailState,bnfa->bnfaNumStates*sizeof(bnfa_state_t),bnfa->failstate_memory);  BNFA_FREE(bnfa->bnfaMatchList,bnfa->bnfaNumStates*sizeof(bnfa_pattern_t*),bnfa->matchlist_memory);  BNFA_FREE(bnfa->bnfaNextState,bnfa->bnfaNumStates*sizeof(bnfa_state_t*),bnfa->nextstate_memory);  BNFA_FREE(bnfa->bnfaTransList,(2*bnfa->bnfaNumStates+bnfa->bnfaNumTrans)*sizeof(bnfa_state_t*),bnfa->nextstate_memory);  free( bnfa ); /* cannot update memory tracker when deleting bnfa so just 'free' it !*/}/**   Add a pattern to the pattern list*/ intbnfaAddPattern (bnfa_struct_t * p, 		unsigned char *pat,                 int n,                int nocase,		void * userdata ){  bnfa_pattern_t * plist;  plist = (bnfa_pattern_t *)BNFA_MALLOC(sizeof(bnfa_pattern_t),p->pat_memory);  if(!plist) return -1;  plist->casepatrn = (unsigned char *)BNFA_MALLOC(n,p->pat_memory );  if(!plist->casepatrn) return -1;    memcpy (plist->casepatrn, pat, n);  plist->n        = n;  plist->nocase   = nocase;  plist->userdata = userdata;    plist->next     = p->bnfaPatterns; /* insert at front of list */  p->bnfaPatterns = plist;  p->bnfaPatternCnt++;  return 0;}/**   Compile the patterns into an nfa state machine */ intbnfaCompile (bnfa_struct_t * bnfa) {    bnfa_pattern_t  * plist;    bnfa_match_node_t   ** tmpMatchList;	unsigned          cntMatchStates;	int               i;    static int first=1;    if( first )    {        bnfaInitSummary();        first=0;    }	queue_memory =0;    /* Count number of states */     for(plist = bnfa->bnfaPatterns; plist != NULL; plist = plist->next)    {       bnfa->bnfaMaxStates += plist->n;    }    bnfa->bnfaMaxStates++; /* one extra */    /* Alloc a List based State Transition table */    bnfa->bnfaTransTable =(bnfa_trans_node_t**) BNFA_MALLOC(sizeof(bnfa_trans_node_t*) * bnfa->bnfaMaxStates,bnfa->list_memory );    if(!bnfa->bnfaTransTable)	{		return -1;	}    /* Alloc a MatchList table - this has a list of pattern matches for each state */    bnfa->bnfaMatchList=(bnfa_match_node_t**) BNFA_MALLOC(sizeof(void*)*bnfa->bnfaMaxStates,bnfa->matchlist_memory );    if(!bnfa->bnfaMatchList)	{		return -1;	}    /* Add each Pattern to the State Table - This forms a keyword trie using lists */     bnfa->bnfaNumStates = 0;    for (plist = bnfa->bnfaPatterns; plist != NULL; plist = plist->next)    {        _bnfa_add_pattern_states (bnfa, plist);    }    bnfa->bnfaNumStates++;    if( bnfa->bnfaNumStates > BNFA_SPARSE_MAX_STATE )	{		return -1;  /* Call bnfaFree to clean up */	}    /* ReAlloc a smaller MatchList table -  only need NumStates  */    tmpMatchList=bnfa->bnfaMatchList;    bnfa->bnfaMatchList=(bnfa_match_node_t**)BNFA_MALLOC(sizeof(void*) * bnfa->bnfaNumStates,bnfa->matchlist_memory);    if(!bnfa->bnfaMatchList)	{		return -1;	}    	memcpy(bnfa->bnfaMatchList,tmpMatchList,sizeof(void*) * bnfa->bnfaNumStates);    	BNFA_FREE(tmpMatchList,sizeof(void*) * bnfa->bnfaMaxStates,bnfa->matchlist_memory);    /* Alloc a failure state table -  only need NumStates */    bnfa->bnfaFailState =(bnfa_state_t*)BNFA_MALLOC(sizeof(bnfa_state_t) * bnfa->bnfaNumStates,bnfa->failstate_memory);    if(!bnfa->bnfaFailState)	{		return -1;	}#ifdef ALLOW_NFA_FULL    if( bnfa->bnfaFormat == BNFA_FULL )	{	  /* Alloc a state transition table -  only need NumStates  */      bnfa->bnfaNextState=(bnfa_state_t**)BNFA_MALLOC(sizeof(bnfa_state_t*) * bnfa->bnfaNumStates,bnfa->nextstate_memory);      if(!bnfa->bnfaNextState) 	  {		  return -1;	  }	}#endif	    /* Build the nfa w/failure states - time the nfa construction */    if( _bnfa_build_nfa (bnfa) ) 	{        return -1;	}    /* Convert nfa storage format from list to full or sparse */    if( bnfa->bnfaFormat == BNFA_SPARSE )    {      if( _bnfa_conv_list_to_csparse_array(bnfa)  )	  {		  return -1;	  }      BNFA_FREE(bnfa->bnfaFailState,sizeof(bnfa_state_t)*bnfa->bnfaNumStates,bnfa->failstate_memory);	  bnfa->bnfaFailState=0;    }#ifdef ALLOW_NFA_FULL	else if( bnfa->bnfaFormat == BNFA_FULL )    {      if( _bnfa_conv_list_to_full( bnfa ) )	  {            return -1;	  }    }#endif	else	{		return -1;	}    /* Free up the Table Of Transition Lists */    _bnfa_list_free_table( bnfa ); 	/* Count states with Pattern Matches */	cntMatchStates=0;	for(i=0;i<bnfa->bnfaNumStates;i++)	{		if( bnfa->bnfaMatchList[i] )			cntMatchStates++;	}	bnfa->bnfaMatchStates = cntMatchStates;	bnfa->queue_memory    = queue_memory;    bnfaAccumInfo( bnfa  );    return 0;}#ifdef ALLOW_NFA_FULL/**   Full Matrix Format Search*/staticinlineunsigned _bnfa_search_full_nfa(	bnfa_struct_t * bnfa, unsigned char *Tx, int n,					int (*Match)(bnfa_pattern_t * id, int index, void *data),                     void *data, bnfa_state_t state, int *current_state ) {  unsigned char      * Tend;  unsigned char      * T;  unsigned char        Tchar;  unsigned            index;  bnfa_state_t      ** NextState= bnfa->bnfaNextState;  bnfa_state_t       * FailState= bnfa->bnfaFailState;  bnfa_match_node_t ** MatchList= bnfa->bnfaMatchList;  bnfa_state_t       * pc;  bnfa_match_node_t  * mlist;  bnfa_pattern_t     * patrn;  unsigned             nfound = 0;  int                  res;  unsigned             last_match=LAST_STATE_INIT;  unsigned             last_match_saved=LAST_STATE_INIT;    T    = Tx;  Tend = T + n;   for( ; T < Tend; T++ )  {	Tchar = xlatcase[ *T ];	for(;;)	{		pc = NextState[state];		if( pc[Tchar] == 0 && state > 0 )		{			state = FailState[state];		}		else		{			state = pc[Tchar];			break;		}	}	if( state )	{        if( state == last_match )            continue;               last_match_saved=last_match;        last_match = state;            	for(	mlist = MatchList[state];				mlist!= NULL;				mlist = mlist->next )    	{		   		patrn = (bnfa_pattern_t*)mlist->data;	           		index = T - Tx - patrn->n + 1;        			if( patrn->nocase )           		{                    nfound++;					res = Match (patrn, index, data);					if ( res > 0 )                    {                        *current_state = state;						return nfound;                    }                    if( res < 0 )                    {                        last_match=last_match_saved;                    }           		}           		else           		{					if( memcmp (patrn->casepatrn, T - patrn->n + 1, patrn->n) == 0 )					{                        nfound++;					    res = Match (patrn, index, data);  						if ( res > 0 )                        {                            *current_state = state;  							return nfound;                        }                        if( res < 0 )                        {                          last_match=last_match_saved;                        }					}                    else                    {                          last_match=last_match_saved;                    }           		}    	}	}  }  return nfound;}/**   Full Matrix Format Search - Exact matching patterns only*/staticinlineunsigned _bnfa_search_full_nfa_case(	bnfa_struct_t * bnfa, unsigned char *Tx, int n,					int (*Match)(bnfa_pattern_t * id, int index, void *data),                     void *data, bnfa_state_t state, int *current_state ) {  unsigned char      * Tend;  unsigned char      * T;  unsigned char        Tchar;  unsigned        index;  bnfa_state_t      ** NextState= bnfa->bnfaNextState;  bnfa_state_t       * FailState= bnfa->bnfaFailState;  bnfa_match_node_t ** MatchList= bnfa->bnfaMatchList;  bnfa_state_t       * pc;  bnfa_match_node_t  * mlist;  bnfa_pattern_t     * patrn;  unsigned             nfound = 0;  unsigned             last_match=LAST_STATE_INIT;  unsigned             last_match_saved=LAST_STATE_INIT;  int                  res;    T    = Tx;  Tend = T + n;   for( ; T < Tend; T++ )  {	Tchar = *T ;	for(;;)	{		pc = NextState[state];		if( pc[Tchar] == 0 && state > 0 )		{			state = FailState[state];		}		else		{			state = pc[Tchar];			break;		}	}	if( state )	{        if( state == last_match )            continue;               last_match_saved=last_match;        last_match = state;    	        for(	mlist = MatchList[state];				mlist!= NULL;				mlist = mlist->next )    	{		   		patrn = (bnfa_pattern_t*)mlist->data;	           		index = T - Tx - patrn->n + 1;                 nfound++;				res = Match (patrn, index, data);			    if ( res > 0 )                {                     *current_state = state;				     return nfound;                }                if( res < 0 )                {                    last_match=last_match_saved;                }    	}	}  }  return nfound;}/**   Full Matrix Format Search - no case*/staticinlineunsigned _bnfa_search_full_nfa_nocase(	bnfa_struct_t * bnfa, unsigned char *Tx, int n,					int (*Match)(bnfa_pattern_t * id, int index, void *data),                     void *data, bnfa_state_t state, int *current_state ) {  unsigned char      * Tend;  unsigned char      * T;  unsigned char        Tchar;  unsigned        index;  bnfa_state_t      ** NextState= bnfa->bnfaNextState;  bnfa_state_t       * FailState= bnfa->bnfaFailState;  bnfa_match_node_t ** MatchList= bnfa->bnfaMatchList;  bnfa_state_t       * pc;  bnfa_match_node_t  * mlist;  bnfa_pattern_t     * patrn;  unsigned             nfound = 0;  unsigned             last_match=LAST_STATE_INIT;  unsigned             last_match_saved=LAST_STATE_INIT;  int                  res;  T    = Tx;  Tend = T + n;   for( ; T < Tend; T++ )  {	Tchar = xlatcase[ *T ];	for(;;)	{		pc = NextState[state];		if( pc[Tchar] == 0 && state > 0 )		{			state = FailState[state];		}		else		{			state = pc[Tchar];			break;		}	}	if( state )	{        if( state == last_match )            continue;               last_match_saved=last_match;        last_match = state;            for(	mlist = MatchList[state];				mlist!= NULL;				mlist = mlist->next )    	{		   		patrn = (bnfa_pattern_t*)mlist->data;           		index = T - Tx - patrn->n + 1;                 nfound++;

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日本一区二区三区dvd视频在线| 91黄视频在线| 亚洲免费观看高清完整版在线| 久久综合视频网| 亚洲欧洲另类国产综合| 日韩美女视频19| 日韩激情视频在线观看| 国产高清久久久| 日本韩国欧美三级| wwww国产精品欧美| 一区二区三区不卡视频| 国产综合成人久久大片91| www.欧美精品一二区| 欧美一区二区三区免费观看视频| 精品国产一区二区三区久久久蜜月 | 狠狠久久亚洲欧美| 成年人网站91| 国产亚洲人成网站| 日韩av不卡一区二区| 91小宝寻花一区二区三区| 日韩色在线观看| 首页国产欧美日韩丝袜| 99国产精品久| 中文字幕一区在线观看视频| 精品一二三四区| 欧美刺激脚交jootjob| 视频一区中文字幕| 欧美日韩在线直播| 一区二区三区四区不卡在线| 91色乱码一区二区三区| 亚洲国产精品传媒在线观看| 国产美女精品在线| 精品国产麻豆免费人成网站| 看国产成人h片视频| 欧美一卡2卡3卡4卡| 欧美专区亚洲专区| 日韩黄色免费网站| 99热在这里有精品免费| 国产精品综合视频| 欧美精品一区二区三区四区| 国产精品国产馆在线真实露脸| 欧美一区二视频| 日本伊人色综合网| 精品国产91乱码一区二区三区| 激情综合网av| 亚洲日穴在线视频| 69久久99精品久久久久婷婷| 全国精品久久少妇| 久久久国产精品不卡| 成人福利电影精品一区二区在线观看| 精品国产髙清在线看国产毛片| 国产福利不卡视频| 亚洲国产一区二区三区| 久久久久久久久久久黄色| 在线观看一区二区精品视频| 美女视频黄 久久| 日韩美一区二区三区| fc2成人免费人成在线观看播放 | 4438x亚洲最大成人网| av一二三不卡影片| 国模套图日韩精品一区二区| 亚洲综合久久av| 国产精品入口麻豆九色| 91精品国产一区二区三区蜜臀| 91麻豆免费视频| av一区二区三区四区| 国产精品影视在线| 国产乱子伦视频一区二区三区| 亚洲午夜国产一区99re久久| 一区二区三区四区亚洲| 日韩伦理av电影| 久久这里都是精品| 久久久三级国产网站| 不卡的av在线| 在线日韩一区二区| 91色综合久久久久婷婷| 欧洲精品一区二区三区在线观看| 成人精品一区二区三区四区| 麻豆freexxxx性91精品| 日韩成人免费电影| 国产精品一区二区三区乱码| 国产99久久久久久免费看农村| 成人黄色在线网站| 欧美性猛片xxxx免费看久爱| 欧美日韩国产高清一区| 欧美高清视频一二三区| 国产日韩欧美精品在线| 亚洲免费在线播放| 欧美bbbbb| 欧美系列一区二区| 欧美精品一区二| 亚洲一区二区三区四区在线| 精品在线你懂的| 91免费视频网址| www欧美成人18+| 免费欧美在线视频| 9色porny自拍视频一区二区| 精品少妇一区二区三区视频免付费| 国产欧美久久久精品影院| 爽好久久久欧美精品| 成人高清免费在线播放| 5月丁香婷婷综合| 亚洲影院在线观看| 丰满放荡岳乱妇91ww| 精品久久久三级丝袜| 婷婷综合另类小说色区| 94-欧美-setu| 国产精品国产三级国产有无不卡 | 成人激情电影免费在线观看| 精品伦理精品一区| 日韩国产欧美视频| 欧美一区二区成人| 亚洲无人区一区| 欧美日韩情趣电影| 亚洲v日本v欧美v久久精品| 99精品桃花视频在线观看| 中文字幕免费不卡| 99久久精品国产一区| 亚洲一区二区三区四区五区黄| 成人深夜在线观看| 亚洲mv在线观看| 2023国产精华国产精品| 国产成人自拍高清视频在线免费播放| 久久先锋影音av| av电影天堂一区二区在线观看| 亚洲一区二区欧美| 精品欧美乱码久久久久久 | 日韩黄色一级片| 国产喂奶挤奶一区二区三区 | 日韩电影在线观看电影| 久久综合成人精品亚洲另类欧美| 91麻豆免费看片| 国产麻豆精品在线观看| 国产精品美女久久久久av爽李琼 | 中文字幕av在线一区二区三区| 91在线播放网址| 极品销魂美女一区二区三区| 亚洲视频电影在线| 制服丝袜国产精品| aaa亚洲精品| 99久久免费国产| 国产精选一区二区三区| 麻豆国产精品官网| 日韩精品一区第一页| 亚洲综合免费观看高清完整版| 亚洲国产精品精华液2区45| 精品免费国产二区三区 | 国产大片一区二区| 国内精品自线一区二区三区视频| 天堂av在线一区| 日本大胆欧美人术艺术动态| 美女网站一区二区| 久久99精品国产麻豆婷婷| 奇米影视一区二区三区小说| 首页欧美精品中文字幕| 最新国产精品久久精品| 自拍偷拍国产精品| 一区二区三区四区中文字幕| 亚洲午夜免费福利视频| 日本不卡123| 粉嫩av一区二区三区粉嫩 | 2023国产一二三区日本精品2022| 精品国产一区二区国模嫣然| 精品第一国产综合精品aⅴ| 久久免费国产精品| 国产精品美女久久久久aⅴ | 成人综合在线观看| 色8久久精品久久久久久蜜| 日韩欧美亚洲另类制服综合在线| 亚洲精品一区二区三区精华液| 亚洲天堂av老司机| 激情久久久久久久久久久久久久久久| 国产福利91精品| 欧美日韩免费在线视频| 日本一区二区三区四区在线视频| 日韩成人av影视| 亚洲精品高清在线| 亚洲三级电影全部在线观看高清| 亚洲日穴在线视频| 国产一区激情在线| 欧美sm极限捆绑bd| 天堂久久一区二区三区| 欧美视频一区在线| 亚洲色图色小说| 91福利区一区二区三区| 亚洲视频你懂的| 在线观看亚洲专区| 亚洲电影你懂得| 欧美日韩免费视频| 美腿丝袜亚洲三区| 久久久天堂av| 在线一区二区三区做爰视频网站| 国产精品欧美一区二区三区| 91视频www| 美脚の诱脚舐め脚责91| 久久免费视频一区| 91成人国产精品| 国产一区二区三区香蕉| 国产精品日日摸夜夜摸av| 欧美日韩中字一区|