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

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

?? ftpp_eo_log.c

?? 著名的入侵檢測系統snort的最新版本的源碼
?? C
字號:
/* * ftpp_eo_log.c * * Copyright (C) 2004 Sourcefire,Inc * Steven A. Sturges <ssturges@sourcefire.com> * Daniel J. Roelker <droelker@sourcefire.com> * Marc A. Norton <mnorton@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. * * Description: * * This file contains the event output functionality that  * FTPTelnet uses to log events and data associated with * the events. * * Log events, retrieve events, and select events that HttpInspect * generates. *  * Logging Events: *   Since the object behind this is no memset()s, we have to rely on the *   stack interface to make sure we don't log the same event twice.  So *   if there are events in the stack we cycle through to make sure that *   there are none available before we add a new event and increment the *   stack count.  Then to reset the event queue, we just need to set the *   stack count back to zero. * * NOTES: * - 16.09.04:  Initial Development.  SAS * */#include <stdlib.h>#include "ftpp_si.h"#include "ftpp_eo.h"#include "ftpp_eo_events.h"#include "ftpp_return_codes.h"//#include "signature.h"typedef struct _ClassInfo{    char *typeName;    int id;    char *name;    int priority;    struct _ClassInfo *next;} ClassInfo;/* * The ftp & telnet events and the priorities are listed here. * Any time that a new client event is added, we have to * add the event id and the priority here.  If you want to * change either of those characteristics, you have to change * them here.  */static FTPP_EVENT_INFO ftp_event_info[FTP_EO_EVENT_NUM] = {    { FTP_EO_TELNET_CMD,        FTP_EO_TELNET_CMD_SID,        0,        FTPP_EO_LOW_PRIORITY,        FTP_EO_TELNET_CMD_STR },    { FTP_EO_INVALID_CMD,        FTP_EO_INVALID_CMD_SID,        0,        FTPP_EO_LOW_PRIORITY,        FTP_EO_INVALID_CMD_STR },    { FTP_EO_PARAMETER_LENGTH_OVERFLOW,        FTP_EO_PARAMETER_LENGTH_OVERFLOW_SID,        0,        FTPP_EO_HIGH_PRIORITY,        FTP_EO_PARAMETER_LENGTH_OVERFLOW_STR },    { FTP_EO_MALFORMED_PARAMETER,        FTP_EO_MALFORMED_PARAMETER_SID,        0,        FTPP_EO_HIGH_PRIORITY,        FTP_EO_MALFORMED_PARAMETER_STR },    { FTP_EO_PARAMETER_STR_FORMAT,        FTP_EO_PARAMETER_STR_FORMAT_SID,        0,        FTPP_EO_HIGH_PRIORITY,        FTP_EO_PARAMETER_STR_FORMAT_STR },    { FTP_EO_RESPONSE_LENGTH_OVERFLOW,        FTP_EO_RESPONSE_LENGTH_OVERFLOW_SID,        0,        FTPP_EO_LOW_PRIORITY,        FTP_EO_RESPONSE_LENGTH_OVERFLOW_STR },    { FTP_EO_ENCRYPTED,        FTP_EO_ENCRYPTED_SID,        0,        FTPP_EO_LOW_PRIORITY,        FTP_EO_ENCRYPTED_STR },    { FTP_EO_BOUNCE,        FTP_EO_BOUNCE_SID,        0,        FTPP_EO_MED_PRIORITY,        FTP_EO_BOUNCE_STR },    { FTP_EO_EVASIVE_TELNET_CMD,        FTP_EO_EVASIVE_TELNET_CMD_SID,        0,        FTPP_EO_LOW_PRIORITY,        FTP_EO_EVASIVE_TELNET_CMD_STR }};static FTPP_EVENT_INFO telnet_event_info[TELNET_EO_EVENT_NUM] = {    { TELNET_EO_AYT_OVERFLOW,            TELNET_EO_AYT_OVERFLOW_SID,            0,            FTPP_EO_HIGH_PRIORITY,            TELNET_EO_AYT_OVERFLOW_STR },    { TELNET_EO_ENCRYPTED,        TELNET_EO_ENCRYPTED_SID,        0,        FTPP_EO_LOW_PRIORITY,        TELNET_EO_ENCRYPTED_STR },    { TELNET_EO_SB_NO_SE,        TELNET_EO_SB_NO_SE_SID,        0,        FTPP_EO_LOW_PRIORITY,        TELNET_EO_SB_NO_SE_STR }};static int log_initialized = 0;/* * Function: ftpp_eo_event_log_init() * * Purpose: Initialize the event logger. *          We need to initialize the event logger for the FTP/Telnet *          preprocessor.  Initializes the event info objects and class types. * * Arguments: None * * Returns: void * */void ftpp_eo_event_log_init(){    if (!log_initialized)    {        ClassInfo *type = _dpd.getRuleInfoByName("protocol-command-decode");        if (type != NULL)        {            ftp_event_info[FTP_EO_TELNET_CMD].classification = type->id;            ftp_event_info[FTP_EO_TELNET_CMD].priority = type->priority;            ftp_event_info[FTP_EO_INVALID_CMD].classification = type->id;            ftp_event_info[FTP_EO_INVALID_CMD].priority = type->priority;            ftp_event_info[FTP_EO_MALFORMED_PARAMETER].classification =                type->id;            ftp_event_info[FTP_EO_MALFORMED_PARAMETER].priority =                type->priority;            ftp_event_info[FTP_EO_ENCRYPTED].classification = type->id;            ftp_event_info[FTP_EO_ENCRYPTED].priority = type->priority;            ftp_event_info[FTP_EO_EVASIVE_TELNET_CMD].classification = type->id;            ftp_event_info[FTP_EO_EVASIVE_TELNET_CMD].priority = type->priority;            telnet_event_info[TELNET_EO_ENCRYPTED].classification = type->id;            telnet_event_info[TELNET_EO_ENCRYPTED].priority = type->priority;        }        type = _dpd.getRuleInfoByName("string-detect");        if (type != NULL)        {            ftp_event_info[FTP_EO_RESPONSE_LENGTH_OVERFLOW].classification =                type->id;            ftp_event_info[FTP_EO_RESPONSE_LENGTH_OVERFLOW].priority =                type->priority;        }        type = _dpd.getRuleInfoByName("policy-violation");        if (type != NULL)        {            ftp_event_info[FTP_EO_BOUNCE].classification = type->id;            ftp_event_info[FTP_EO_BOUNCE].priority = type->priority;        }        type = _dpd.getRuleInfoByName("attempted-admin");        if (type != NULL)        {            ftp_event_info[FTP_EO_PARAMETER_LENGTH_OVERFLOW].classification =                type->id;            ftp_event_info[FTP_EO_PARAMETER_LENGTH_OVERFLOW].priority =                type->priority;            ftp_event_info[FTP_EO_PARAMETER_STR_FORMAT].classification =                type->id;            ftp_event_info[FTP_EO_PARAMETER_STR_FORMAT].priority =                type->priority;            telnet_event_info[TELNET_EO_AYT_OVERFLOW].classification =                type->id;            telnet_event_info[TELNET_EO_AYT_OVERFLOW].priority =                type->priority;            telnet_event_info[TELNET_EO_SB_NO_SE].classification =                 type->id;            telnet_event_info[TELNET_EO_SB_NO_SE].priority=                 type->priority;        }        log_initialized = 1;    }}/* * Function: ftpp_eo_event_log(FTPP_GEN_EVENTS *gen_events, *                             FTPP_EVENT_INFO *event_info, *                             int iEvent, *                             void *data, void (*free_data)(void *) ) * * Purpose: This function logs events during FTPTelnet processing. *          The idea behind this event logging is modularity, but at the *          same time performance.  We accomplish this utilizing an *          optimized stack as an index into the client event array, *          instead of walking a list for already logged events.  The *          problem here is that we can't just log every event that we've *          already seen, because this opens us up to a DOS.  So by using *          this method, we can quickly check if an event has already been *          logged and deal appropriately. * * Arguments: gen_events    => pointer to the generic event data *            event_info    => pointer to the event info array *            iEvent        => index within the event array *            data          => pointer to user allocated data *            free_data     => pointer to a function to free the user data * * Returns: int => return code indicating error or success * */int ftpp_eo_event_log(FTPP_GEN_EVENTS *gen_events, FTPP_EVENT_INFO *event_info,                      int iEvent, void *data, void (*free_data)(void *) ){    FTPP_EVENT *event;    int iCtr;    /*     * This is where we cycle through the current event stack.  If the event     * to be logged is already in the queue, then we increment the event     * count, before returning.  Otherwise, we fall through the loop and     * set the event before adding it to the queue and incrementing the     * pointer.     */    for(iCtr = 0; iCtr < gen_events->stack_count; iCtr++)    {        if(gen_events->stack[iCtr] == iEvent)        {            gen_events->events[iEvent].count++;            return FTPP_SUCCESS;        }    }    /*     * Initialize the event before putting it in the queue.     */    event = &(gen_events->events[iEvent]);    event->event_info = event_info;    event->count = 1;    event->data = data;    event->free_data = free_data;    /*     * We now add the event to the stack.     */    gen_events->stack[gen_events->stack_count] = iEvent;    gen_events->stack_count++;    return FTPP_SUCCESS;}/* * Function: telnet_eo_event_log(TELNET_SESSION *Session, *                               int iEvent, *                               void *data, void (*free_data)(void *)) * * Purpose: This function logs events for telnet processing. *          It invokes ftpp_eo_event_log using a generic event structure *          that contains the telnet specific data. * * Arguments: Session       => pointer to the Telnet session *            iEvent        => the event id for the event *            data          => pointer to the user data of the event *            free_data     => pointer to a function to free the user data * * Returns: int => return code indicating error or success * */int telnet_eo_event_log(TELNET_SESSION *Session, int iEvent, void *data,        void (*free_data)(void *)){    int iRet;    TELNET_EVENTS *telnet_events;    FTPP_EVENT_INFO *event_info;    FTPP_GEN_EVENTS gen_events;    ftpp_eo_event_log_init();    /*     * Check the input variables for correctness     */    if(!Session || (iEvent >= TELNET_EO_EVENT_NUM))    {        return FTPP_INVALID_ARG;    }    telnet_events = &(Session->event_list);    gen_events.events = (FTPP_EVENT *)&(telnet_events->events);    gen_events.stack = (int *)&(telnet_events->stack);    gen_events.stack_count = telnet_events->stack_count;    event_info = &telnet_event_info[iEvent];     iRet = ftpp_eo_event_log(&gen_events, event_info, iEvent, data, free_data);    telnet_events->stack_count = gen_events.stack_count;    return iRet;}/* * Function: ftp_eo_event_log(FTP_SESSION *Session, *                            int iEvent, *                            void *data, void (*free_data)(void *)) * * Purpose: This function logs events for ftp processing. *          It invokes ftpp_eo_event_log using a generic event structure *          that contains the ftp specific data. * * Arguments: Session       => pointer to the FTP session *            iEvent        => the event id for the event *            data          => pointer to the user data of the event *            free_data     => pointer to a function to free the user data * * Returns: int => return code indicating error or success * */int ftp_eo_event_log(FTP_SESSION *Session, int iEvent, void *data,        void (*free_data)(void *)){    int iRet;    FTP_EVENTS *ftp_events;    FTPP_EVENT_INFO *event_info;    FTPP_GEN_EVENTS gen_events;    ftpp_eo_event_log_init();    /*     * Check the input variables for correctness     */    if(!Session || (iEvent >= FTP_EO_EVENT_NUM))    {        return FTPP_INVALID_ARG;    }    ftp_events = &(Session->event_list);    gen_events.events = (FTPP_EVENT *)&(ftp_events->events);    gen_events.stack = (int *)&(ftp_events->stack);    gen_events.stack_count = ftp_events->stack_count;    event_info = &ftp_event_info[iEvent];     iRet = ftpp_eo_event_log(&gen_events, event_info, iEvent, data, free_data);    ftp_events->stack_count = gen_events.stack_count;    return iRet;}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲欧美日韩国产手机在线 | 91九色02白丝porn| 欧美老人xxxx18| 日本一区二区三区国色天香| 亚洲成av人片在线| 国产精品99久久久久久有的能看| 欧洲精品一区二区三区在线观看| 久久婷婷国产综合精品青草| 五月综合激情网| 99re热这里只有精品免费视频| 欧美一区二区三区精品| 亚洲精品国久久99热| 国产精品一卡二| 日韩午夜激情电影| 舔着乳尖日韩一区| 日本高清免费不卡视频| 国产欧美日韩亚州综合| 免费不卡在线视频| 欧美日韩国产精品自在自线| 日韩一区中文字幕| 成人高清视频在线| 国产欧美日韩三区| 国产主播一区二区| 欧美精品一区男女天堂| 奇米精品一区二区三区在线观看| 欧美三级午夜理伦三级中视频| 中文在线资源观看网站视频免费不卡| 久久99国内精品| 日韩一级视频免费观看在线| 丝袜美腿亚洲一区| 欧美精品粉嫩高潮一区二区| 亚洲综合在线第一页| 色综合天天综合网国产成人综合天| 国产色产综合产在线视频| 狠狠色丁香久久婷婷综合_中| 91精品蜜臀在线一区尤物| 日韩专区欧美专区| 91麻豆精品国产91久久久资源速度 | 国产日韩一级二级三级| 国产精品一区二区视频| 国产区在线观看成人精品| 国产精品1区二区.| 中文字幕av在线一区二区三区| 风间由美性色一区二区三区| 国产精品―色哟哟| 成人av免费观看| 亚洲精品你懂的| 欧美三级韩国三级日本三斤| 午夜欧美2019年伦理| 日韩写真欧美这视频| 国产真实乱子伦精品视频| 国产精品久久夜| 在线观看91精品国产入口| 日韩国产欧美三级| 精品免费视频一区二区| 国产成人99久久亚洲综合精品| 国产精品麻豆欧美日韩ww| 欧美综合色免费| 美女诱惑一区二区| 国产欧美日韩在线观看| 欧美亚州韩日在线看免费版国语版| 日韩极品在线观看| 久久新电视剧免费观看| 成人看片黄a免费看在线| 亚洲一区二区三区小说| 欧美成人激情免费网| 成人午夜免费视频| 亚洲sss视频在线视频| 亚洲精品一区二区三区四区高清 | 久久久不卡影院| 日本丶国产丶欧美色综合| 免费的成人av| 日韩一区中文字幕| 欧美成人bangbros| 91亚洲永久精品| 麻豆中文一区二区| 亚洲欧美日本在线| 欧美成人乱码一区二区三区| 97se狠狠狠综合亚洲狠狠| 男人的j进女人的j一区| 综合av第一页| 欧美精品一区二区三区久久久| 91免费版在线| 韩国视频一区二区| 偷拍一区二区三区四区| 国产精品嫩草影院av蜜臀| 91精品国产欧美一区二区| eeuss影院一区二区三区| 美女在线一区二区| 夜夜亚洲天天久久| 中文字幕不卡在线| 久久综合精品国产一区二区三区| 日本二三区不卡| 成人午夜免费视频| 国产又粗又猛又爽又黄91精品| 亚洲午夜免费电影| 中文字幕一区二区三| 精品国产一二三| 91精品蜜臀在线一区尤物| 欧亚一区二区三区| 91在线小视频| 不卡视频一二三| 国产成人av电影在线| 九一九一国产精品| 免费观看在线色综合| 午夜视频久久久久久| 一区二区激情小说| 伊人一区二区三区| 中文字幕一区二区三区在线不卡| 久久久影视传媒| 国产精品成人免费精品自在线观看| 精品少妇一区二区三区免费观看| 欧美日韩一区小说| 欧美日韩另类一区| 欧美日韩激情在线| 欧美日韩国产高清一区二区| 欧日韩精品视频| 欧美群妇大交群中文字幕| 欧美专区在线观看一区| 欧美又粗又大又爽| 欧美三级日韩三级| 欧美一区二区三区日韩视频| 5858s免费视频成人| 日韩免费一区二区| 精品少妇一区二区三区视频免付费| 日韩一区二区三区视频| 日韩欧美在线一区二区三区| 精品久久一区二区三区| 2021国产精品久久精品| 久久九九99视频| 中文字幕一区二区三中文字幕| 亚洲欧美乱综合| 亚洲国产va精品久久久不卡综合| 日一区二区三区| 国内精品久久久久影院一蜜桃| 国产成人啪午夜精品网站男同| 成人性视频免费网站| 97精品久久久久中文字幕| 在线观看中文字幕不卡| 在线不卡一区二区| 久久午夜电影网| 亚洲欧美综合色| 婷婷成人激情在线网| 国产精品亚洲成人| 色呦呦网站一区| 欧美一区二视频| 国产欧美日产一区| 亚洲一二三级电影| 久久99精品久久久久久久久久久久| 国产成人在线电影| 欧美在线观看一二区| 精品国精品国产| 亚洲男女一区二区三区| 日韩二区三区四区| 不卡av在线免费观看| 在线电影一区二区三区| 国产日韩影视精品| 日韩精品一级二级| 成人av小说网| 日韩欧美高清dvd碟片| 中文字幕在线不卡视频| 日本女优在线视频一区二区| 成人av中文字幕| 日韩一级大片在线| 亚洲精品国产视频| 国产精品影视在线观看| 欧美日韩亚洲综合在线| 中文字幕日韩一区| 久久精品国产亚洲一区二区三区 | 亚洲乱码日产精品bd| 久久草av在线| 欧美日韩国产精品成人| 成人免费在线观看入口| 黄页网站大全一区二区| 欧美日韩国产a| 国产精品乱人伦一区二区| 老司机精品视频线观看86| 色94色欧美sute亚洲线路二| 国产日产欧美一区| 男女男精品网站| 欧日韩精品视频| 亚洲六月丁香色婷婷综合久久| 精品亚洲欧美一区| 欧美一激情一区二区三区| 亚洲综合视频在线观看| 91视频一区二区| 国产欧美日韩精品a在线观看| 久久国产精品露脸对白| 91麻豆精品国产自产在线| 午夜精品福利久久久| 91豆麻精品91久久久久久| 国产精品久久久久影院色老大| 国产老肥熟一区二区三区| 精品sm捆绑视频| 九九**精品视频免费播放| 日韩免费视频一区二区| 久久精品国产在热久久| 精品久久久影院| 国内精品第一页| 久久久久久亚洲综合影院红桃|