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

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

?? flood_id.c

?? linux下AODV源碼kernel-aodv_v2.2.2.rar
?? C
字號(hào):
/***************************************************************************                          flood_id.c  -  description                             -------------------    begin                : Mon Aug 4 2003    copyright            : (C) 2003 by Luke Klein-Berndt    email                : kleinb@nist.gov ***************************************************************************/#include "flood_id.h"/****************************************************   flood_id_queue----------------------------------------------------This is used to keep track of messages whichare flooded to prevent rebroadcast of messages****************************************************/flood_id *flood_id_queue;rwlock_t flood_id_lock = RW_LOCK_UNLOCKED;extern u_int32_t g_my_ip;/****************************************************   init_flood_id_queue----------------------------------------------------Gets the ball rolling!****************************************************/int init_flood_id_queue(void){    flood_id_queue = NULL;    return 0;}void flood_id_read_lock(){    read_lock_bh(&flood_id_lock);}void flood_id_read_unlock(){    read_unlock_bh(&flood_id_lock);}void flood_id_write_lock(){    write_lock_bh(&flood_id_lock);}void flood_id_write_unlock(){    write_unlock_bh(&flood_id_lock);}/****************************************************   find_flood_id_queue_entry----------------------------------------------------will search the queue for an entry with thematching ID and src_ip****************************************************/flood_id *find_flood_id(u_int32_t src_ip, u_int32_t id){    flood_id *tmp_flood_id;     /* Working entry in the RREQ list */    u_int64_t curr = getcurrtime();    /*lock table */    flood_id_read_lock();    tmp_flood_id = flood_id_queue;      /* Start at the header */    //go through the whole queue    while (tmp_flood_id != NULL)    {        if (time_before(tmp_flood_id->lifetime, curr))        {            /*unlock table */            flood_id_read_unlock();            return NULL;        }        //if there is a match and it is still valid        if ((src_ip == tmp_flood_id->src_ip) && (id == tmp_flood_id->id))        {            /*unlock table */            flood_id_read_unlock();            return tmp_flood_id;        }        //continue on to the next entry        tmp_flood_id = tmp_flood_id->next;    }    /*unlock table */    flood_id_read_unlock();    return NULL;}/****************************************************   read_flood_id_proc----------------------------------------------------prints out the flood id queue when the procfile is read****************************************************/int read_flood_id_proc(char *buffer, char **buffer_location, off_t offset, int buffer_length,int *eof,void *data){  int len;  static char *my_buffer;  char temp_buffer[200];  flood_id *tmp_entry;  char temp_ip[16];  u_int64_t remainder, numerator;  u_int64_t tmp_time, currtime;      //lock table    flood_id_read_lock();  tmp_entry=flood_id_queue;  my_buffer=buffer;  currtime = getcurrtime();    sprintf(my_buffer,"\nFlood Id Queue\n---------------------------------\n");  while (tmp_entry!=NULL)    {      strcpy(temp_ip,inet_ntoa(tmp_entry->dst_ip));      sprintf(temp_buffer,"Src IP: %-16s  Dst IP: %-16s Flood ID: %-10u ", inet_ntoa(tmp_entry->src_ip),temp_ip,tmp_entry->id);      strcat(my_buffer,temp_buffer);	    tmp_time=tmp_entry->lifetime - currtime;	    numerator = (tmp_time);	    remainder = do_div( numerator, 1000 );	    if (time_before(tmp_entry->lifetime, currtime) )	      {		sprintf(temp_buffer," Expired!\n");	      }	    else	      {		sprintf(temp_buffer," sec/msec: %lu/%lu \n", (unsigned long)numerator, (unsigned long)remainder);	      }      strcat(my_buffer,temp_buffer);      tmp_entry=tmp_entry->next;    }    //unlock table    flood_id_read_unlock();    sprintf(temp_buffer,"\n---------------------------------\n");    strcat(my_buffer,temp_buffer);    *buffer_location=my_buffer;    len = strlen(my_buffer);    if (len <= offset+buffer_length) *eof = 1;    *buffer_location = my_buffer + offset;    len -= offset;    if (len>buffer_length) len = buffer_length;    if (len<0) len = 0;    return len;}/****************************************************   clean_up_flood_id_queue----------------------------------------------------Deletes everything in the flood id queue****************************************************/void cleanup_flood_id_queue(){    flood_id *tmp_flood_id, *dead_flood_id;    int count = 0;    tmp_flood_id = flood_id_queue;    // print_flood_id_queue();    while (tmp_flood_id != NULL)    {        dead_flood_id = tmp_flood_id;        tmp_flood_id = tmp_flood_id->next;        kfree(dead_flood_id);        count++;    }    flood_id_queue = NULL;    printk(KERN_INFO "Removed %d Flood ID entries! \n", count);    printk(KERN_INFO "---------------------------------------------\n");}/****************************************************   insert_flood_id_queue_entry----------------------------------------------------Inserts an entry into the flood ID queue****************************************************/int insert_flood_id(u_int32_t src_ip, u_int32_t dst_ip, u_int32_t id, u_int64_t lt){    flood_id *new_flood_id;     /* Pointer to the working entry */    /* Allocate memory for the new entry */    if ((new_flood_id = (flood_id *) kmalloc(sizeof(flood_id), GFP_ATOMIC)) == NULL)    {        printk(KERN_WARNING "AODV: Not enough memory to create Flood ID queue\n");        /* Failed to allocate memory for new Flood ID queue */        return -ENOMEM;    }    /* Fill in the information in the new entry */    new_flood_id->src_ip = src_ip;    new_flood_id->dst_ip = dst_ip;    new_flood_id->id = id;    new_flood_id->lifetime = lt;    /*lock table */    flood_id_write_lock();    new_flood_id->next = flood_id_queue;    /* Put the new entry in the list */    flood_id_queue = new_flood_id;    /*unlock table */    flood_id_write_unlock();    return 0;}int flush_flood_id_queue(){    flood_id *tmp_flood_id, *prev_flood_id, *dead_flood_id;    u_int64_t curr_time = getcurrtime();        /* Current time */    int id_count = 0;    /*lock table */    flood_id_write_lock();    tmp_flood_id = flood_id_queue;    prev_flood_id = NULL;    //go through the entire queue    while (tmp_flood_id)    {        //if the entry has expired        if (time_before(tmp_flood_id->lifetime, curr_time))        {            //if it is the first entry            if (prev_flood_id == NULL)                flood_id_queue = tmp_flood_id->next;            else                prev_flood_id->next = tmp_flood_id->next;            //kill it!            dead_flood_id = tmp_flood_id;            tmp_flood_id = tmp_flood_id->next;            kfree(dead_flood_id);            id_count++;        } else        {            //next entry            prev_flood_id = tmp_flood_id;            tmp_flood_id = tmp_flood_id->next;        }    }    /*unlock table */    flood_id_write_unlock();        insert_timer( TASK_CLEANUP, HELLO_INTERVAL, g_my_ip);    update_timer_queue();        return id_count;}

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲黄色录像片| 免费看日韩精品| 亚洲桃色在线一区| 国产精品久久久久桃色tv| 亚洲国产岛国毛片在线| 国产精品午夜免费| 国产精品免费视频观看| 日韩一区在线免费观看| 自拍偷自拍亚洲精品播放| 亚洲欧洲www| 亚洲免费av高清| 亚洲夂夂婷婷色拍ww47| 午夜在线成人av| 男女视频一区二区| 激情另类小说区图片区视频区| 韩国av一区二区三区| 国产精品一区二区不卡| 成人av在线播放网站| 成人高清视频免费观看| 99精品一区二区| 欧美三级电影在线观看| 日韩女优制服丝袜电影| 久久综合av免费| 最近中文字幕一区二区三区| 亚洲精品国产第一综合99久久 | 欧美一级片在线| 精品久久久久99| 喷水一区二区三区| 国产高清亚洲一区| 91视频你懂的| 欧美一级片在线看| 亚洲国产精品国自产拍av| 亚洲色图欧洲色图婷婷| 日韩精品一二三区| 国产福利一区在线| 色狠狠色噜噜噜综合网| 91精品国产综合久久蜜臀| 久久久美女艺术照精彩视频福利播放| 亚洲欧美一区二区视频| 日本视频中文字幕一区二区三区| 国产v综合v亚洲欧| 欧美日本一区二区三区四区| 2021久久国产精品不只是精品 | 成人福利电影精品一区二区在线观看| 91美女在线观看| 日韩一区二区在线播放| 国产精品麻豆视频| 天天色天天爱天天射综合| 国产成人av在线影院| 精品视频一区三区九区| 国产亚洲精品资源在线26u| 一区二区三区电影在线播| 久久爱另类一区二区小说| 91麻豆6部合集magnet| 日韩精品在线看片z| 亚洲乱码一区二区三区在线观看| 麻豆成人在线观看| 色噜噜狠狠成人网p站| 久久久久久影视| 日韩在线一区二区三区| 国产成人亚洲综合色影视| 欧美猛男gaygay网站| 国产精品你懂的| 久久99精品网久久| 欧美在线综合视频| 国产精品水嫩水嫩| 免费观看91视频大全| 91久久一区二区| 国产欧美日本一区视频| 日韩精品一二三四| 欧美在线一区二区三区| 国产精品国产三级国产aⅴ原创 | 欧美蜜桃一区二区三区| 亚洲日穴在线视频| 国产一区二区美女| 91精品国产乱| 亚洲成人在线网站| 91麻豆国产香蕉久久精品| 久久久夜色精品亚洲| 一本久道久久综合中文字幕| 久久婷婷色综合| 精品一区二区免费在线观看| 欧美精品黑人性xxxx| 亚洲黄色小视频| 91在线丨porny丨国产| 国产喷白浆一区二区三区| 激情都市一区二区| 欧美草草影院在线视频| 首页综合国产亚洲丝袜| 欧美三级日韩三级| 一级女性全黄久久生活片免费| 91天堂素人约啪| 中文字幕一区二区三区不卡 | 国产精品一色哟哟哟| 日韩免费一区二区| 日韩高清在线观看| 4438亚洲最大| 奇米影视一区二区三区| 欧美日韩视频在线第一区| 亚洲成在线观看| 欧美日韩国产精品自在自线| 亚洲国产另类av| 欧美日韩国产免费一区二区 | 国产精品资源在线看| 精品国产一区二区三区四区四| 久久99九九99精品| 久久综合久久久久88| 国产精品综合二区| 亚洲国产精品高清| 99国内精品久久| 一区二区三区日韩精品| 欧美亚洲动漫精品| 亚洲一级二级三级在线免费观看| 欧亚洲嫩模精品一区三区| 午夜在线电影亚洲一区| 日韩欧美自拍偷拍| 国模大尺度一区二区三区| 久久精品一区四区| av一区二区三区黑人| 亚洲伊人伊色伊影伊综合网| 欧美日韩另类一区| 另类调教123区| 欧美激情在线一区二区三区| 一本色道久久综合亚洲91| 亚洲成人av电影| 精品久久久久久久久久久久久久久久久| 玖玖九九国产精品| 欧美高清在线一区| 91搞黄在线观看| 麻豆91在线观看| 欧美激情一区二区三区不卡| 99久久伊人网影院| 天天色综合天天| 久久久国产一区二区三区四区小说 | 国产最新精品精品你懂的| 国产精品久久免费看| 欧美日韩久久久一区| 精彩视频一区二区| 中文字幕一区二区在线播放| 欧美视频一区二区三区四区 | 国产91丝袜在线播放| 亚洲三级电影网站| 欧美一区二区成人| 高清成人在线观看| 亚洲福利一二三区| 久久精品人人爽人人爽| 91极品美女在线| 国产老肥熟一区二区三区| 一区二区在线观看视频| 精品国产凹凸成av人导航| 99国产精品久久久久久久久久久| 偷拍日韩校园综合在线| 日本一区二区成人| 欧美精品第一页| zzijzzij亚洲日本少妇熟睡| 日韩制服丝袜av| 亚洲天堂中文字幕| 欧美成人乱码一区二区三区| 色综合久久久久综合体| 久久国产精品72免费观看| 亚洲精品国产一区二区精华液| 精品国产乱码久久久久久免费 | 中文天堂在线一区| 欧美一区二区三区成人| 99久久精品免费| 国内不卡的二区三区中文字幕 | 91在线观看视频| 美女尤物国产一区| 亚洲精品写真福利| 中文字幕免费在线观看视频一区| 欧美一区二区在线不卡| 91视频在线观看| 成人免费视频免费观看| 蜜桃av噜噜一区二区三区小说| 亚洲一区二区三区四区五区黄| 日本一区二区久久| 日韩欧美一区二区视频| 欧美三级乱人伦电影| 91色在线porny| 福利电影一区二区三区| 看国产成人h片视频| 香蕉影视欧美成人| 一区二区欧美视频| 亚洲欧美怡红院| 中文字幕av一区二区三区免费看 | 一区二区三区在线免费视频| 国产精品免费视频一区| 国产亚洲一区字幕| 欧美精品一区二区三区一线天视频| 欧美日韩精品一区视频| 色综合天天综合网天天狠天天| 成人国产亚洲欧美成人综合网| 国产精品1024久久| 国产馆精品极品| 激情综合网av| 久草在线在线精品观看| 日本美女一区二区三区| 亚洲成av人综合在线观看| 亚洲在线视频一区| 亚洲综合色区另类av|