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

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

?? flood_id.c

?? 一款經(jīng)典的linux下運(yùn)行的ad-h(huán)oc協(xié)議
?? 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;}

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
色偷偷88欧美精品久久久| 亚洲h精品动漫在线观看| 国产一区二区三区黄视频| 日韩欧美一级特黄在线播放| 日日夜夜免费精品视频| 91超碰这里只有精品国产| 日韩在线播放一区二区| 欧美成人精品高清在线播放| 激情五月婷婷综合| 中文字幕高清不卡| 色域天天综合网| 日韩成人一区二区三区在线观看| 欧美一级欧美三级在线观看| 国产麻豆精品theporn| 国产精品美女久久久久久久久| 9人人澡人人爽人人精品| 亚洲一区视频在线观看视频| 日韩写真欧美这视频| 成人涩涩免费视频| 亚洲一二三区在线观看| 精品成人一区二区| 91在线你懂得| 秋霞午夜av一区二区三区| 国产日产精品1区| 色欧美片视频在线观看| 久草在线在线精品观看| 自拍偷拍欧美精品| 欧美一二三区在线观看| 成人av电影在线播放| 亚洲午夜久久久久| 久久久影视传媒| 色国产精品一区在线观看| 奇米888四色在线精品| 中文字幕五月欧美| 日韩一区二区麻豆国产| 91麻豆精品在线观看| 久久国产剧场电影| 依依成人综合视频| 国产日韩成人精品| 日韩一区国产二区欧美三区| 99精品黄色片免费大全| 韩国成人精品a∨在线观看| 一级做a爱片久久| 亚洲国产精品二十页| 日韩一二三区不卡| 欧美色综合网站| 成人短视频下载| 国产一区在线观看麻豆| 午夜天堂影视香蕉久久| 中文字幕一区二| 久久久久久久综合狠狠综合| 在线观看91av| 色综合视频在线观看| 成人综合在线网站| 国产在线一区观看| 青草av.久久免费一区| 亚洲一二三四久久| 亚洲欧美日本在线| 国产精品视频一二三| 欧美精品一区二区三区在线| 欧美一区二区性放荡片| 精品视频在线免费| 一本色道久久加勒比精品| 不卡的电影网站| 国产成人综合在线观看| 麻豆91精品91久久久的内涵| 天堂午夜影视日韩欧美一区二区| 一区二区三区日本| 亚洲免费在线电影| 亚洲欧洲三级电影| 亚洲日本va在线观看| 亚洲色图视频网| 中文字幕在线不卡一区| 国产精品进线69影院| 欧美国产日韩一二三区| 中文字幕亚洲一区二区av在线| 亚洲国产精品99久久久久久久久| 久久看人人爽人人| 国产欧美一区二区三区在线看蜜臀| 日韩免费看的电影| 精品国产青草久久久久福利| 2023国产一二三区日本精品2022| 欧美不卡一区二区| 久久奇米777| 国产精品久久久久久妇女6080| 国产精品污污网站在线观看| 国产精品久久久久天堂| 亚洲另类中文字| 亚洲成人精品一区| 视频一区欧美精品| 久久99国内精品| 国产精品一级片在线观看| 国产福利电影一区二区三区| 成人免费视频网站在线观看| 色综合激情久久| 欧美日韩国产综合一区二区| 欧美一级在线视频| 国产欧美日韩久久| 一区二区视频在线| 三级欧美韩日大片在线看| 狠狠色丁香久久婷婷综合_中| 国产1区2区3区精品美女| 91首页免费视频| 91精品国产91久久综合桃花| 精品欧美久久久| 《视频一区视频二区| 日韩精品三区四区| 国产一区二区三区综合| 99国产精品99久久久久久| 欧美三级电影网站| 久久久综合视频| 夜夜亚洲天天久久| 激情丁香综合五月| 91极品视觉盛宴| 亚洲精品在线观| 亚洲精品v日韩精品| 久久精品国产久精国产爱| 成人app网站| 91精品国产免费| 亚洲欧美激情一区二区| 麻豆传媒一区二区三区| 91老师国产黑色丝袜在线| 日韩欧美一级二级三级| 亚洲精品视频在线| 国产一区二区视频在线| 欧美精品1区2区3区| 中文字幕精品一区二区精品绿巨人| 污片在线观看一区二区| 成人av片在线观看| 欧美成人vps| 亚洲国产你懂的| www.性欧美| 亚洲精品在线网站| 首页亚洲欧美制服丝腿| 成人午夜大片免费观看| 日韩欧美一卡二卡| 亚洲va欧美va人人爽午夜| eeuss鲁片一区二区三区在线看| 日韩欧美国产wwwww| 亚洲综合在线观看视频| 成人av在线影院| 欧美一区中文字幕| 亚洲成人av电影在线| 91网站在线播放| 国产精品系列在线| 国产精品一区二区在线观看网站| 91精品欧美综合在线观看最新| 亚洲欧美日韩人成在线播放| 成人国产一区二区三区精品| 2017欧美狠狠色| 裸体在线国模精品偷拍| 欧美日韩国产综合一区二区| 亚洲女厕所小便bbb| 国产91在线|亚洲| 久久久噜噜噜久久人人看 | 极品少妇一区二区| 欧美日韩大陆在线| 亚洲国产精品久久一线不卡| 91小宝寻花一区二区三区| 中文字幕亚洲综合久久菠萝蜜| 国产精品伊人色| 国产区在线观看成人精品| 国内精品久久久久影院色| 欧美成人性战久久| 极品尤物av久久免费看| 久久男人中文字幕资源站| 黄色资源网久久资源365| www久久精品| 国产成人精品一区二| 国产精品三级视频| 99re这里只有精品首页| 一区二区三区在线影院| 欧美三级三级三级| 水野朝阳av一区二区三区| 日韩欧美一区二区不卡| 精品一区二区免费看| 久久久久久麻豆| 99久久99久久精品国产片果冻 | 青青青爽久久午夜综合久久午夜 | 777色狠狠一区二区三区| 视频一区中文字幕| 日韩一区二区在线看| 经典三级在线一区| 国产日韩欧美a| 91丝袜美女网| 首页国产欧美日韩丝袜| 精品少妇一区二区三区在线播放| 国产精品综合av一区二区国产馆| 国产日韩精品一区二区浪潮av| av电影在线观看一区| 亚洲一区成人在线| 日韩免费视频一区| 波多野洁衣一区| 香蕉影视欧美成人| 欧美精品一区二区三区蜜臀| av网站免费线看精品| 婷婷中文字幕一区三区| 久久精品夜色噜噜亚洲a∨| 91色综合久久久久婷婷| 日韩一区精品字幕|