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

? 歡迎來(lái)到蟲(chóng)蟲(chóng)下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲(chóng)蟲(chóng)下載站

?? sflsq.c

?? 著名的入侵檢測(cè)系統(tǒng)snort的最新版本的源碼
?? C
字號(hào):
/**************************************************************************** * * Copyright (C) 2003-2007 Sourcefire, Inc. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License Version 2 as * published by the Free Software Foundation.  You may not use, modify or * distribute this program under any other version of the GNU General * Public License. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * ****************************************************************************/ /**   sflsq.c    **   Simple list, stack, queue, and dictionary implementations *   ( most of these implementations are list based - not performance monsters,*     and they all use alloc via s_alloc/s_free )*   Stack based Ineteger and Pointer Stacks, these are for performance.(inline would be better)**   11/05/2005 - man - Added sflist_firstx() and sflist_nextx() with user*   provided SF_NODE inputs for tracking the list position.  This allows*   multiple readers to traverse a list. The built in 'cur' field does not *   wrok for multiple readers.***/#include <stdio.h>#include <stdlib.h>#include <string.h>#include "sflsq.h"/**  private alloc*/ static void * s_alloc (int n) {  void *p=0;  if( n > 0 )p = (void*) calloc( 1,n );  return p;}/**  private free*/ static void s_free (void *p) {  if( p ) free( p );}/**   INIT - called by the NEW functions*/ void sflist_init ( SF_LIST * s) {  s->count=0;   s->head = s->tail = s->cur = 0;}/**    NEW*/SF_LIST * sflist_new(void) {   SF_LIST * s;   s = (SF_LIST*)s_alloc( sizeof(SF_LIST) );   if( s )sflist_init( s );   return s;}SF_STACK * sfstack_new(void) {   return (SF_STACK*)sflist_new();}SF_QUEUE * sfqueue_new(void) {   return (SF_QUEUE*)sflist_new();}/**  Add-before Item */ int sflist_add_before ( SF_LIST* s, SF_LNODE * lnode, NODE_DATA ndata ){  SF_LNODE * q;  if( !lnode )      return 0;  /* Add to head of list */  if( s->head == lnode )  {      return sflist_add_head ( s, ndata );  }  else  {      q = (SF_LNODE *) s_alloc ( sizeof (SF_LNODE) );      if( !q )      {          return -1;      }      q->ndata = (NODE_DATA)ndata;      q->next = lnode;      q->prev = lnode->prev;      lnode->prev->next = q;      lnode->prev       = q;  }  s->count++;  return 0;}/**     ADD to List/Stack/Queue/Dictionary*//**  Add-Head Item */ int sflist_add_head ( SF_LIST* s, NODE_DATA ndata ){  SF_LNODE * q;  if (!s->head)    {      q = s->tail = s->head = (SF_LNODE *) s_alloc (sizeof (SF_LNODE));      if(!q)return -1;      q->ndata = (NODE_DATA)ndata;      q->next = 0;      q->prev = 0;    }  else    {      q = (SF_LNODE *) s_alloc (sizeof (SF_LNODE));      if(!q)return -1;      q->ndata = ndata;      q->next = s->head;      q->prev = 0;      s->head->prev = q;      s->head = q;    }  s->count++;  return 0;}/**  Add-Tail Item */ int sflist_add_tail ( SF_LIST* s, NODE_DATA ndata ){  SF_LNODE * q;  if (!s->head)    {      q = s->tail = s->head = (SF_LNODE *) s_alloc (sizeof (SF_LNODE));      if(!q)return -1;      q->ndata = (NODE_DATA)ndata;      q->next = 0;      q->prev = 0;    }  else    {      q = (SF_LNODE *) s_alloc (sizeof (SF_LNODE));      if(!q)return -1;      q->ndata = ndata;      q->next = 0;      q->prev = s->tail;      s->tail->next = q;      s->tail = q;    }  s->count++;  return 0;}int sfqueue_add(SF_QUEUE * s, NODE_DATA ndata ) {  return sflist_add_tail ( s, ndata );}int sfstack_add( SF_STACK* s, NODE_DATA ndata ) {  return sflist_add_tail ( s, ndata );}/* *   List walk - First/Next - return the node data or NULL*/NODE_DATA sflist_first( SF_LIST * s ){    if(!s)         return 0;    s->cur = s->head;    if( s->cur )         return s->cur->ndata;    return 0;}NODE_DATA sflist_next( SF_LIST * s ){    if(!s)        return 0;    if( s->cur )    {        s->cur = s->cur->next;        if( s->cur )             return s->cur->ndata;    }    return 0;}NODE_DATA sflist_firstpos( SF_LIST * s, SF_LNODE ** v ){    if(!s)        return 0;        *v = s->head;        if( *v )        return (*v)->ndata;    return 0;}NODE_DATA sflist_nextpos( SF_LIST * s,  SF_LNODE ** v ){    if(!s)        return 0;        if(v)    {       if(*v)       {          *v = (*v)->next;          if( *v )               return (*v)->ndata;       }    }    return 0;}/* *   List walk - First/Next - return the node data or NULL*/SF_LNODE * sflist_first_node( SF_LIST * s ){    if(!s)        return 0;    s->cur = s->head;    if( s->cur )         return s->cur;    return 0;}SF_LNODE * sflist_next_node( SF_LIST * s ){    if(!s)        return 0;    if( s->cur )    {        s->cur = s->cur->next;        if( s->cur )             return s->cur;    }    return 0;}/**  Remove Head Item from list*/ NODE_DATA sflist_remove_head (SF_LIST * s) {  NODE_DATA ndata = 0;  SF_QNODE * q;  if ( s && s->head  )    {      q = s->head;      ndata = q->ndata;      s->head = s->head->next;      s->count--;      if( !s->head  )	  {	    s->tail = 0;	    s->count = 0;	  }      s_free( q );    }  return (NODE_DATA)ndata;}/**  Remove tail Item from list*/NODE_DATA sflist_remove_tail (SF_LIST * s){  NODE_DATA ndata = 0;  SF_QNODE * q;  if (s && s->tail)    {      q = s->tail;      ndata = q->ndata;      s->count--;      s->tail = q->prev;      if (!s->tail)      {	s->tail = 0;        s->head = 0;	s->count = 0;      }      else      {        if( q->prev ) q->prev->next = 0;      }      s_free (q);    }  return (NODE_DATA)ndata;}void sflist_remove_node (SF_LIST * s, SF_LNODE * n, void(*nfree)(void*) ) { // NODE_DATA ndata = 0;  SF_LNODE * cur;        if( n == s->head )  {        s->head = s->head->next;        s->count--;        if (!s->head)	    {	      s->tail = 0;	      s->count = 0;	    }        if( nfree ) nfree( n->ndata );        s_free( n );        return ;  }  else if( n == s->tail )  {        s->tail = s->tail->prev;        s->count--;        if (!s->tail )	    {	      s->head = 0;	      s->count = 0;	    }        if( nfree ) nfree( n->ndata );        s_free( n );        return ;  }  for(cur = s->head;      cur!= NULL;      cur = cur->next )  {    if( n == cur )    {       /* unlink a middle node */       n->next->prev = n->prev;       n->prev->next = n->next;	   s->count--;       if( nfree ) nfree( n->ndata );       s_free(n);       return ;     }  }}/**  Remove Head Item from queue*/ NODE_DATA sfqueue_remove (SF_QUEUE * s) {  return (NODE_DATA)sflist_remove_head( s );}/**  Remove Tail Item from stack*/ NODE_DATA sfstack_remove (SF_QUEUE * s) {  return (NODE_DATA)sflist_remove_tail( s );}/**  COUNT*/ int sfqueue_count (SF_QUEUE * s) {  if(!s)return 0;  return s->count;}int sflist_count ( SF_LIST* s) {  if(!s)return 0;  return s->count;}int sfstack_count ( SF_STACK * s) {  if(!s)return 0;  return s->count;}/**   Free List + Free it's data nodes using 'nfree' */void sflist_free_all( SF_LIST * s, void (*nfree)(void*) ) {  void * p;    if(!s)      return;    while( s->count > 0 )  {     p = sflist_remove_head (s);    	 if( p && nfree )          nfree( p );  }  s_free(s);}void sfqueue_free_all(SF_QUEUE * s,void (*nfree)(void*) ) {  sflist_free_all( s, nfree ); }void sfstack_free_all(SF_STACK * s,void (*nfree)(void*) ) {  sflist_free_all( s, nfree ); }/**  FREE List/Queue/Stack/Dictionary**  This does not free a nodes data*/ void sflist_free (SF_LIST * s){  while( sflist_count(s) )  {    sflist_remove_head(s);  }  s_free(s);}void sfqueue_free (SF_QUEUE * s) {  sflist_free ( s ); }void sfstack_free (SF_STACK * s){  sflist_free ( s ); }/**   Integer stack functions - for performance scenarios*/int sfistack_init( SF_ISTACK * s, unsigned * a,  int n  ){   s->imalloc=0;   if( a ) s->stack = a;   else   {      s->stack = (unsigned*) calloc( n, sizeof(unsigned) );      s->imalloc=1;   }   if( !s->stack ) return -1;   s->nstack= n;   s->n =0;   return 0;}int sfistack_push( SF_ISTACK *s, unsigned value){   if( s->n < s->nstack )   {       s->stack[s->n++] = value;       return 0;   }   return -1;}int sfistack_pop( SF_ISTACK *s, unsigned * value){   if( s->n > 0 )   {       s->n--;       *value = s->stack[s->n];       return 0;   }   return -1;}/**  Pointer Stack Functions - for performance scenarios*/int sfpstack_init( SF_PSTACK * s, void ** a,  int n  ){   s->imalloc=0;   if( a ) s->stack = a;   else   {      s->stack = (void**) calloc( n , sizeof(void*) );      s->imalloc=1;   }   if( !s->stack ) return -1;   s->nstack= n;   s->n =0;   return 0;}int sfpstack_push( SF_PSTACK *s, void * value){   if( s->n < s->nstack )   {       s->stack[s->n++] = value;       return 0;   }   return -1;}int sfpstack_pop( SF_PSTACK *s, void ** value){   if( s->n > 0 )   {       s->n--;       *value = s->stack[s->n];       return 0;   }   return -1;}

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产成+人+日韩+欧美+亚洲| 国内成+人亚洲+欧美+综合在线| 5566中文字幕一区二区电影| 国产一区二区三区美女| 亚洲一区二区三区自拍| 国产欧美日韩综合| 欧美乱妇一区二区三区不卡视频 | 极品美女销魂一区二区三区| 国产精品高潮呻吟| 日韩午夜在线影院| 在线精品视频一区二区| 国产91色综合久久免费分享| 日韩中文字幕av电影| 亚洲女人****多毛耸耸8| 久久综合国产精品| 日韩视频中午一区| 欧美午夜不卡视频| 色婷婷久久久综合中文字幕| 高清日韩电视剧大全免费| 久久99精品一区二区三区| 亚洲国产欧美日韩另类综合 | 一区二区三区国产精品| 久久毛片高清国产| 欧美一级欧美三级在线观看| 欧美三级日本三级少妇99| 一本大道av伊人久久综合| 成人夜色视频网站在线观看| 精品一区二区成人精品| 日韩国产精品久久久| 亚洲二区视频在线| 亚洲国产另类av| 亚洲福利电影网| 亚洲国产va精品久久久不卡综合| 中文字幕欧美一| 一区视频在线播放| 国产精品国产馆在线真实露脸 | 五月婷婷久久综合| 亚洲国产毛片aaaaa无费看| 亚洲综合成人网| 依依成人综合视频| 夜色激情一区二区| 亚洲已满18点击进入久久| 一区二区视频在线看| 亚洲九九爱视频| 亚洲黄色在线视频| 亚洲sss视频在线视频| 日韩二区三区在线观看| 日韩高清电影一区| 蜜桃视频在线观看一区| 国产一区二区女| 波多野结衣在线一区| 成人短视频下载| 色综合久久天天| 欧美日韩免费电影| 精品久久一区二区三区| 欧美激情一区在线| 亚洲婷婷国产精品电影人久久| 一区二区三区国产精品| 日韩黄色小视频| 激情综合五月天| 成人激情小说乱人伦| 色婷婷亚洲精品| 日韩午夜电影av| 久久精品日韩一区二区三区| 亚洲欧洲色图综合| 夜色激情一区二区| 久久精品国产精品亚洲综合| 国产成人综合自拍| 91黄色免费观看| 日韩一区二区三区在线观看| 国产日韩成人精品| 亚洲高清在线精品| 国产精品一区专区| 色综合激情五月| 日韩女优电影在线观看| 国产精品女主播av| 亚洲国产乱码最新视频| 国产麻豆9l精品三级站| 91丨国产丨九色丨pron| 91精品国产综合久久精品性色| 久久午夜电影网| 亚洲精品中文字幕乱码三区| 看片的网站亚洲| 99视频在线精品| 欧美变态凌虐bdsm| 亚洲欧美成aⅴ人在线观看 | 国产东北露脸精品视频| 91黄色免费网站| www久久久久| 亚洲sss视频在线视频| 国产福利一区二区三区视频在线| 在线一区二区观看| 国产三级欧美三级日产三级99 | 麻豆国产91在线播放| 91一区在线观看| www成人在线观看| 天堂成人国产精品一区| 成人av手机在线观看| 欧美一个色资源| 亚洲蜜臀av乱码久久精品蜜桃| 韩国精品主播一区二区在线观看 | 麻豆久久久久久| 色婷婷国产精品| 国产亚洲精品久| 丝袜脚交一区二区| 色婷婷久久99综合精品jk白丝 | 亚洲女人****多毛耸耸8| 国产一区二区三区精品欧美日韩一区二区三区 | 亚洲一级在线观看| 99视频一区二区三区| 国产午夜精品久久久久久免费视 | av网站免费线看精品| 精品噜噜噜噜久久久久久久久试看 | 日韩久久一区二区| 成人一区二区三区| 精品国内片67194| 天天av天天翘天天综合网| 色综合天天综合在线视频| 中文天堂在线一区| 国产精品自产自拍| 精品国产制服丝袜高跟| 同产精品九九九| 91久久精品一区二区三区| 国产精品福利一区二区三区| 国产精品一区一区| 精品噜噜噜噜久久久久久久久试看| 午夜在线成人av| 欧美喷潮久久久xxxxx| 亚洲无人区一区| 欧美日韩中字一区| 午夜精品久久久久久久99水蜜桃| 色综合欧美在线视频区| 亚洲精品视频自拍| 欧美亚洲综合久久| 亚洲在线观看免费| 欧美日韩国产电影| 日本系列欧美系列| 精品日韩99亚洲| 极品美女销魂一区二区三区| 欧美大片免费久久精品三p| 麻豆成人综合网| 久久亚洲一区二区三区四区| 黄色小说综合网站| 久久精品一区二区三区av| 国产福利精品一区| 最新不卡av在线| 欧美视频一区在线观看| 日韩在线一二三区| 日韩视频一区二区在线观看| 精品无人区卡一卡二卡三乱码免费卡| 日韩精品一区二区三区中文精品 | 久久精品国内一区二区三区| 精品久久久久一区| 成人在线视频首页| 伊人婷婷欧美激情| 日韩三级av在线播放| 国产乱子轮精品视频| 中文字幕中文字幕中文字幕亚洲无线| 91小视频免费观看| 午夜影院久久久| 精品国产乱码久久久久久久久 | 欧美电影免费观看高清完整版在线观看| 免费一区二区视频| 中文文精品字幕一区二区| 91视频.com| 日本中文字幕一区二区视频| 国产亚洲美州欧州综合国| 色综合久久六月婷婷中文字幕| 香蕉久久一区二区不卡无毒影院| 精品人在线二区三区| 成人av网址在线| 亚洲v精品v日韩v欧美v专区| 久久综合色天天久久综合图片| jlzzjlzz亚洲日本少妇| 日韩精品久久理论片| 欧美激情一区二区三区不卡 | 成人午夜精品在线| 亚洲午夜精品在线| 久久蜜桃av一区二区天堂| 91久久精品一区二区二区| 国产在线视频不卡二| 亚洲免费观看高清在线观看| 欧美一区二区三区视频免费播放 | 欧美高清性hdvideosex| 久久精品国产第一区二区三区| 国产精品乱子久久久久| 91麻豆精品国产| 99热这里都是精品| 久久99国产精品免费网站| 亚洲人妖av一区二区| 日韩欧美成人激情| 色呦呦一区二区三区| 精品一区二区在线观看| 一区二区三区四区五区视频在线观看 | 久久亚洲影视婷婷| 在线亚洲精品福利网址导航| 国产一区二区在线电影| 亚洲第一综合色| 亚洲欧洲日韩在线| 欧美精品一区二区蜜臀亚洲|