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

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

?? sp_icmp_type_check.c

?? 著名的入侵檢測系統snort的最新版本的源碼
?? C
字號:
/*** Copyright (C) 1998-2002 Martin Roesch <roesch@sourcefire.com>**** 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.*//* $Id$ */#ifdef HAVE_CONFIG_H#include "config.h"#endif#include <stdlib.h>#include <string.h>#include <ctype.h>#include "rules.h"#include "decode.h"#include "plugbase.h"#include "parser.h"#include "debug.h"#include "util.h"#include "plugin_enum.h"#include "sp_icmp_type_check.h" void IcmpTypeCheckInit(char *, OptTreeNode *, int);void ParseIcmpType(char *, OptTreeNode *);int IcmpTypeCheck(Packet *, struct _OptTreeNode *, OptFpList *);/**************************************************************************** *  * Function: SetupIcmpTypeCheck() * * Purpose: Register the itype keyword and configuration function * * Arguments: None. * * Returns: void function * ****************************************************************************/void SetupIcmpTypeCheck(void){    /* map the keyword to an initialization/processing function */    RegisterPlugin("itype", IcmpTypeCheckInit, OPT_TYPE_DETECTION);    DEBUG_WRAP(DebugMessage(DEBUG_PLUGIN,"Plugin: IcmpTypeCheck Initialized\n"););}/**************************************************************************** *  * Function: IcmpTypeCheckInit(char *, OptTreeNode *) * * Purpose: Initialize the rule data structs and parse the rule argument *          data, then link in the detection function * * Arguments: data => rule arguments/data *            otn => pointer to the current rule option list node * * Returns: void function * ****************************************************************************/void IcmpTypeCheckInit(char *data, OptTreeNode *otn, int protocol){    if(protocol != IPPROTO_ICMP)    {        FatalError("%s(%d): ICMP Options on non-ICMP rule\n", file_name, file_line);    }        /* multiple declaration check */     if(otn->ds_list[PLUGIN_ICMP_TYPE])    {        FatalError("%s(%d): Multiple ICMP type options in rule\n", file_name,                file_line);    }            /* allocate the data structure and attach it to the       rule's data struct list */    otn->ds_list[PLUGIN_ICMP_TYPE] = (IcmpTypeCheckData *)            SnortAlloc(sizeof(IcmpTypeCheckData));    /* this is where the keyword arguments are processed and placed into the        rule option's data structure */    ParseIcmpType(data, otn);    /* finally, attach the option's detection function to the rule's        detect function pointer list */    AddOptFuncToList(IcmpTypeCheck, otn);}/**************************************************************************** *  * Function: ParseIcmpType(char *, OptTreeNode *) * * Purpose: Process the itype argument and stick it in the data struct * * Arguments: data => argument data *            otn => pointer to the current rule's OTN * * Returns: void function * ****************************************************************************/void ParseIcmpType(char *data, OptTreeNode *otn){    char *type;    IcmpTypeCheckData *ds_ptr;  /* data struct pointer */    char *endptr = NULL;    /* set the ds pointer to make it easier to reference the option's       particular data struct */    ds_ptr = otn->ds_list[PLUGIN_ICMP_TYPE];    /* set a pointer to the data so to leave the original unchanged */    type = data;    if(!data)    {        FatalError("%s (%d): No ICMP Type Specified\n",                   file_name, file_line);    }        /* get rid of spaces before the data */    while(isspace((int)*data))        data++;    if (*data == '\0')    {        FatalError("%s (%d): No ICMP Type Specified : %s\n",                   file_name, file_line, type);    }    /*     * if a range is specified, put the min in icmp_type, and the max in      * icmp_type2     */    if (isdigit((int)*data) && strstr(data, "<>"))    {        ds_ptr->icmp_type = strtol(data, &endptr, 10);        while (isspace((int)*endptr))            endptr++;        if (*endptr != '<')        {            FatalError("%s (%d): Invalid ICMP itype in rule: %s\n",                       file_name, file_line, type);        }        data = endptr;        data += 2;   /* move past <> */        while (isspace((int)*data))            data++;        ds_ptr->icmp_type2 = strtol(data, &endptr, 10);        if (*data == '\0' || *endptr != '\0')        {            FatalError("%s (%d): Invalid ICMP itype in rule: %s\n",                       file_name, file_line, type);        }        ds_ptr->operator = ICMP_TYPE_TEST_RG;    }    /* otherwise if its greater than... */    else if (*data == '>')    {        data++;        while (isspace((int)*data))            data++;        ds_ptr->icmp_type = strtol(data, &endptr, 10);        if (*data == '\0' || *endptr != '\0')        {            FatalError("%s (%d): Invalid ICMP itype in rule: %s\n",                       file_name, file_line, type);        }        ds_ptr->operator = ICMP_TYPE_TEST_GT;    }    /* otherwise if its less than ... */    else if (*data == '<')    {        data++;        while (isspace((int)*data))            data++;        ds_ptr->icmp_type = strtol(data, &endptr, 10);        if (*data == '\0' || *endptr != '\0')        {            FatalError("%s (%d): Invalid ICMP itype in rule: %s\n",                       file_name, file_line, type);        }        ds_ptr->operator  = ICMP_TYPE_TEST_LT;    }    /* otherwise check if its a digit */    else    {        ds_ptr->icmp_type = strtol(data, &endptr, 10);        if (*endptr != '\0')        {            FatalError("%s (%d): Invalid ICMP itype in rule: %s\n",                       file_name, file_line, type);        }        ds_ptr->operator = ICMP_TYPE_TEST_EQ;    }    return;}/**************************************************************************** *  * Function: IcmpTypeCheck(char *, OptTreeNode *) * * Purpose: Test the packet's ICMP type field value against the option's *          ICMP type * * Arguments: data => argument data *            otn => pointer to the current rule's OTN * * Returns: void function * ****************************************************************************/int IcmpTypeCheck(Packet *p, struct _OptTreeNode *otn, OptFpList *fp_list){    IcmpTypeCheckData *ds_ptr;    int success = 0;    ds_ptr = otn->ds_list[PLUGIN_ICMP_TYPE];    /* return 0  if we don't have an icmp header */    if(!p->icmph)        return 0;    switch(ds_ptr->operator)    {        case ICMP_TYPE_TEST_EQ:            if (p->icmph->type == ds_ptr->icmp_type)                success = 1;            break;        case ICMP_TYPE_TEST_GT:            if (p->icmph->type > ds_ptr->icmp_type)                success = 1;            break;        case ICMP_TYPE_TEST_LT:            if (p->icmph->type < ds_ptr->icmp_type)                success = 1;            break;        case ICMP_TYPE_TEST_RG:            if (p->icmph->type > ds_ptr->icmp_type &&                     p->icmph->type < ds_ptr->icmp_type2)                success = 1;            break;    }    if (success)    {        DEBUG_WRAP(DebugMessage(DEBUG_PLUGIN, "Got icmp type match!\n"););        return fp_list->next->OptTestFunc(p, otn, fp_list->next);    }    /* return 0 on failed test */    DEBUG_WRAP(DebugMessage(DEBUG_PLUGIN, "Failed icmp code match!\n"););    return 0;}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日本一区二区三区在线观看| 日本一二三四高清不卡| 日韩欧美国产1| 国产精品久久久久久久久免费相片 | 欧美成人在线直播| 国产精品萝li| 狠狠色丁香久久婷婷综合_中| 91激情在线视频| 国产日产精品1区| 日韩在线观看一区二区| 97精品国产露脸对白| 99久久夜色精品国产网站| 欧美日韩视频在线观看一区二区三区| 国产三级欧美三级日产三级99 | 日韩精品资源二区在线| 亚洲另类一区二区| 成人福利视频网站| 久久亚洲精品小早川怜子| 日韩二区三区四区| 欧美日韩一区二区三区免费看| 国产精品久久久久久福利一牛影视 | 国产三级精品在线| 狠狠色伊人亚洲综合成人| 欧美日韩不卡一区二区| 亚洲欧美日本在线| 26uuu另类欧美亚洲曰本| 日韩一区二区电影在线| 亚洲第一精品在线| 欧洲人成人精品| 玉足女爽爽91| 色哟哟日韩精品| 一区二区三区成人在线视频| 99久久国产免费看| 一区在线观看免费| 欧美精品三级日韩久久| 久久九九影视网| 精品亚洲欧美一区| 精品福利二区三区| 国产精品99久久久久久久女警| 日韩欧美国产综合一区| 日本91福利区| 2023国产精品| 粉嫩av亚洲一区二区图片| 国产亚洲欧美一区在线观看| 国产乱码精品一区二区三区忘忧草| 日韩精品一区二区三区视频播放| 蜜臀av一区二区在线免费观看| 日韩一区二区麻豆国产| 狠狠狠色丁香婷婷综合久久五月| 国产亚洲午夜高清国产拍精品 | 99精品视频在线观看免费| 中文字幕在线不卡一区| 国产精品欧美一区二区三区| 91香蕉视频黄| 亚洲一区二区中文在线| 欧美一级在线观看| 国产成人av电影在线| 亚洲视频一区二区在线观看| 欧美日韩亚洲丝袜制服| 久久成人精品无人区| 欧美激情一区不卡| 欧美精品高清视频| 国产精品国产馆在线真实露脸 | 欧美视频精品在线观看| 麻豆freexxxx性91精品| 久久精品在这里| 欧美日韩一卡二卡三卡| 国产在线一区二区综合免费视频| 欧美国产精品专区| 欧美性做爰猛烈叫床潮| 国产成人自拍网| 亚洲精品v日韩精品| 欧美电视剧在线观看完整版| 丁香婷婷综合激情五月色| 亚洲成av人综合在线观看| 精品国产麻豆免费人成网站| 91精品91久久久中77777| 国产一区91精品张津瑜| 亚洲亚洲人成综合网络| 日韩精品一区二区在线| 色综合久久99| 国产成人aaaa| 国产精品一级在线| 国产精品毛片大码女人| 欧美巨大另类极品videosbest | 国产精品系列在线| 欧美三区免费完整视频在线观看| 国产真实乱偷精品视频免| 亚洲综合在线观看视频| 久久精品一区二区三区不卡 | 欧美乱熟臀69xxxxxx| 成人免费视频视频| 黑人巨大精品欧美一区| 久久精品欧美日韩| 91小视频在线免费看| 国产精品夜夜嗨| 免费一级片91| 一区二区在线观看免费| 欧美激情一区二区三区四区| 精品毛片乱码1区2区3区| 欧美日韩免费一区二区三区 | 蜜桃av一区二区三区电影| 亚洲精品乱码久久久久久久久 | 欧美国产一区二区在线观看| 日韩一级完整毛片| 欧美男男青年gay1069videost| 99久久精品国产麻豆演员表| 国产一区在线精品| 成人妖精视频yjsp地址| 亚洲欧洲性图库| 国产人久久人人人人爽| 久久亚洲精品国产精品紫薇| 日韩一区二区视频| 欧美精品视频www在线观看| 欧美视频一区二区三区在线观看| 色噜噜狠狠色综合欧洲selulu| 波多野结衣欧美| 成人免费毛片嘿嘿连载视频| 国产成人亚洲精品青草天美 | 亚洲成a人片在线不卡一二三区| 中文字幕一区二区在线观看| 国产精品私人自拍| 国产精品国产三级国产三级人妇| 中文字幕制服丝袜成人av| 国产精品麻豆99久久久久久| 亚洲欧美综合在线精品| 亚洲精品中文字幕在线观看| 亚洲电影一级片| 日本欧美韩国一区三区| 久久精品国产一区二区| 国产综合色在线| wwwwww.欧美系列| 中文字幕中文字幕中文字幕亚洲无线| 99免费精品视频| 色综合久久久久综合| 欧美日本一区二区| 精品国产髙清在线看国产毛片| 日韩欧美一区中文| 国产日产欧美一区二区三区| 日韩一区欧美一区| 午夜视频一区在线观看| 精品一区二区三区av| 欧美性生活大片视频| 色综合久久久久久久久久久| 在线电影国产精品| 精品蜜桃在线看| 亚洲视频1区2区| 日本亚洲三级在线| 成人av影视在线观看| 欧美日韩精品一区二区三区四区 | 全国精品久久少妇| 成人高清免费观看| 欧美情侣在线播放| 国产人成一区二区三区影院| 亚洲乱码国产乱码精品精可以看| 蜜臀av一级做a爰片久久| 成人毛片在线观看| 欧美日韩精品专区| 日本一区二区成人| 日本欧洲一区二区| 成人久久视频在线观看| 一级特黄大欧美久久久| 精品制服美女丁香| 欧美丝袜丝nylons| 久久精品亚洲精品国产欧美kt∨| 亚洲精品免费视频| 国产mv日韩mv欧美| 欧美一区二区视频免费观看| ...xxx性欧美| 激情国产一区二区| 欧美区一区二区三区| 亚洲天堂成人网| 国产成人精品在线看| 日韩欧美你懂的| 久久综合久久鬼色中文字| 一区二区三区色| 成人黄色国产精品网站大全在线免费观看| 欧美精品在线观看播放| 亚洲啪啪综合av一区二区三区| 国产精品99久久久久| 欧美一卡二卡三卡四卡| 亚洲国产成人高清精品| 91在线视频观看| 国产精品久久久久毛片软件| 狠狠色狠狠色综合系列| 日韩你懂的在线播放| 日韩成人一区二区三区在线观看| 日本高清成人免费播放| 国产精品你懂的在线欣赏| 国产伦精品一区二区三区免费| 欧美日韩aaaaa| 香蕉加勒比综合久久| 欧美三级一区二区| 夜色激情一区二区| 99精品桃花视频在线观看| 国产精品久久99| 成人动漫视频在线| 国产精品久久久久桃色tv| 不卡的电影网站| 成人h动漫精品一区二|