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

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

?? dp_log.c

?? 知名的開源IDS的日志工具
?? C
字號:
/* $Id: dp_log.c,v 1.7 2004/04/03 19:57:32 andrewbaker Exp $ *//*** Copyright (C) 2001-2002 Andrew R. Baker <andrewb@snort.org>** Copyright (C) 2001 Martin Roesch <roesch@sourcefire.com>** Portions Copyright (C) 2003-2004 Sourcefire, Inc.**** This program is distributed under the terms of version 1.0 of the ** Q Public License.  See LICENSE.QPL for further details.**** 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.***//*  I N C L U D E S  *****************************************************/#include "config.h"#include <sys/types.h>#include <stdio.h>#include <stdlib.h>#include <string.h>#ifdef SOLARIS    #include <strings.h>#endif#include <errno.h>#include <unistd.h>#include "barnyard.h"#include "output-plugins/op_plugbase.h"#include "dp_plugbase.h"#include "strlcpyu.h"#include "util.h"#include "dp_log.h"#include "spool.h"/*  P R O T O T Y P E S  ************************************************/void LogDpSetup(char *config, DpFunctionalNode *dpfn);int LogDpReadFileHeader(DpFunctionalNode *dpfn, SpoolFileHandle *sph);int LogDpReadRecord(SpoolFileHandle *sph);int LogDpProcessRecord(void *data, DpFunctionalNode *dp);int LogDpHeaderCompare(DpFunctionalNode *dpfn, void *old_header,         void *new_header);void LogDpPrintRecord(void *data);int linktype = 0;void LogDpInit(){    PluginInfo pi;    pi.author = strdup("Martin Roesch <roesch@sourcefire.com>\n"            "Andrew R. Baker <andrewb@snort.org>");    pi.version = strdup("1.0");    pi.type = strdup("log input processor");    pi.copyright = strdup("(C) Copyright 2001, Martin Roesch"            " & Andrew R. Baker");    pi.description =         strdup("reads the log spool and reformats for output");    pi.usage = strdup("dp_log");    RegisterDp("dp_log", LogDpSetup, "log", &pi);    free(pi.author);    free(pi.version);    free(pi.type);    free(pi.copyright);    free(pi.description);    free(pi.usage);     if(pv.verbose)        LogMessage("dp_log loaded\n");    return;}void LogDpSetup(char *config, DpFunctionalNode *dpfn){    dpfn->type = strdup("log");	dpfn->magic = LOG_MAGIC;	RegisterDpReadRecord(LogDpReadRecord, dpfn);	RegisterDpReadFileHeader(LogDpReadFileHeader, dpfn);	RegisterDpProcessRecord(LogDpProcessRecord, dpfn);	RegisterDpHeaderCompare(LogDpHeaderCompare, dpfn);}int LogDpReadFileHeader(DpFunctionalNode *dpfn, SpoolFileHandle *sph){	ssize_t bytes_read;           /* allocate storage space for the spool file header */    if(!sph->header)    {        if(!(sph->header = calloc(1, sizeof(UnifiedLogFileHeader))))        {            FatalError("Out of memory reading spool file header "                    "(wanted %u bytes)",                    sizeof(UnifiedLogFileHeader));        }    }    bytes_read = read(sph->filedes, sph->header + sph->offset,             sizeof(UnifiedLogFileHeader) - sph->offset);        if(bytes_read + sph->offset != sizeof(UnifiedLogFileHeader))    {        if(bytes_read == -1)        {            /* Read error */            LogMessage("ERROR: read error: %s\n", strerror(errno));            return N_FILE_ERROR;        }        if(bytes_read == 0)        {            return N_READ_EOF;        }        sph->offset += bytes_read;        return N_READ_PARTIAL;    }    sph->offset = 0;    {        UnifiedLogFileHeader *file_header;        file_header = (UnifiedLogFileHeader *)sph->header;        linktype = file_header->linktype;    }     /* XXX should be part of the start step */    /* copy the header into the dp plugin */    if(dpfn->context.file_header != NULL)        free(dpfn->context.file_header);    dpfn->context.file_header = SafeAlloc(sizeof(UnifiedLogFileHeader));    memcpy(dpfn->context.file_header, sph->header,             sizeof(UnifiedLogFileHeader));        return 0;}            int LogDpHeaderCompare(DpFunctionalNode *dpfn, void *old_header,         void *new_header){    if(memcmp(old_header, new_header, sizeof(UnifiedLogFileHeader)) != 0)    {        DataProcessorRestart(dpfn);    }    return 0;}/* Partial reads should rarely, if ever, happen.  Thus we should not actually   call lseek very often  */static UnifiedLog unified_log;int LogDpReadRecord(SpoolFileHandle *sph){    ssize_t bytes_read;    ssize_t packet_len;    int fd;    Record *record;    if(!sph)        return -1;  /* Invalid args */    fd = sph->filedes;    record = &sph->record;    if(sph->offset < sizeof(UnifiedLog))    {           /* Read the first portion of the unified log reader */        bytes_read = read(sph->filedes, &unified_log + sph->offset,                sizeof(UnifiedLog) - sph->offset);        if(bytes_read == -1)        {            LogMessage("ERROR: read error: %s\n", strerror(errno));            return N_FILE_ERROR;        }        if(bytes_read + sph->offset != sizeof(UnifiedLog))        {            if(bytes_read + sph->offset == 0)            {                return N_READ_EOF;            }            sph->offset += bytes_read;            return N_READ_PARTIAL;        }        /* Extract packet length */        packet_len = unified_log.pkth.caplen;        if(packet_len >= 0x1ffff)        {            LogMessage("ERROR: Invalid packet length: %u\n", packet_len);            return N_FILE_ERROR;        }        /* Allocate record storage based on packet length */        sph->record.dynamic = 1;        sph->record.data = calloc(1, sizeof(UnifiedLog) + packet_len + 2);        if(!sph->record.data)        {            FatalError("Out of memory (wanted %u bytes)\n",                     sizeof(UnifiedLog) + packet_len + 2);        }        memcpy(sph->record.data, &unified_log, sizeof(UnifiedLog));        sph->offset = sizeof(UnifiedLog) + 2;    }    if(sph->offset >= sizeof(UnifiedLog) + 2)    {        /* In case we don't have it already */        packet_len = unified_log.pkth.caplen;        bytes_read = read(sph->filedes, sph->record.data + sph->offset,                 packet_len + 2 + sizeof(UnifiedLog) - sph->offset);        if(bytes_read == -1)        {            LogMessage("ERROR: read error: %s\n", strerror(errno));            return N_FILE_ERROR;        }                    if(bytes_read + sph->offset != sizeof(UnifiedLog) + 2 + packet_len)        {            sph->offset += bytes_read;            return N_READ_PARTIAL;        }        sph->offset = 0;        return 0;    }    /* Should be unreachable */    LogMessage("Should be unreachable\n");    return -1;}int LogDpProcessRecord(void *data, DpFunctionalNode *dp){    if(data == NULL)	{#ifdef DEBUG		printf("NULL Argument to ProcessUnifiedLogRecord\n");#endif		return 1;	}	#ifdef DEBUG    LogDpPrintRecord(data);#endif	/* Call the output plugins */    CallOutputPlugins(dp->oList, data);    return 0;}void LogDpPrintRecord(void *data){	UnifiedLogRecord *record;    if(data == NULL)        return;	record = (UnifiedLogRecord *)data;    LogMessage("Log->sig_generator  = %x\n", record->log.event.sig_generator);    LogMessage("Log->sig_id         = %x\n", record->log.event.sig_id);    LogMessage("Log->sig_rev        = %x\n", record->log.event.sig_rev);    LogMessage("Log->classification = %x\n", record->log.event.classification);    LogMessage("Log->priority       = %x\n", record->log.event.priority);    LogMessage("Log->event_id       = %x\n", record->log.event.event_id);    LogMessage("Log->reference      = %x\n", record->log.event.event_reference);    LogMessage("Log->ref_sec        = %x\n", record->log.event.ref_time.tv_sec);    LogMessage("Log->ref_usec       = %x\n", record->log.event.ref_time.tv_usec);    LogMessage("Log->flags          = 0x%08X\n", (u_int32_t) record->log.flags);    LogMessage("Log->sec            = %x\n", record->log.pkth.ts.tv_sec);    LogMessage("Log->usec           = %x\n", record->log.pkth.ts.tv_usec);    LogMessage("Log->pktlen         = %x\n", record->log.pkth.pktlen);    LogMessage("Log->caplen         = %u\n", record->log.pkth.caplen);    LogMessage("------------------------------------------------------\n");}

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产成人在线视频免费播放| 91精品国产入口| 69堂成人精品免费视频| 国产亚洲人成网站| 日韩国产在线观看一区| 成人精品免费网站| 欧美va在线播放| 亚洲高清中文字幕| 91亚洲精品一区二区乱码| 2020国产精品久久精品美国| 一区二区久久久久| 99在线精品观看| 国产女同性恋一区二区| 成人一道本在线| 日韩视频在线永久播放| 亚洲一区二区中文在线| 99久久精品国产精品久久| 精品国产乱码久久久久久老虎| 午夜欧美在线一二页| 91久久国产最好的精华液| 国产精品素人一区二区| 成人性生交大片免费看中文 | 日韩制服丝袜av| 一本到不卡免费一区二区| 国产日产欧美一区二区视频| 国产综合久久久久久鬼色| 日韩免费福利电影在线观看| 日韩电影一二三区| 欧美绝品在线观看成人午夜影视| 椎名由奈av一区二区三区| 91在线国内视频| 国产精品伦理在线| 不卡视频在线看| 国产精品福利电影一区二区三区四区| 国产精品一区二区久激情瑜伽| 欧美精品一区二区三区蜜桃| 国产一区二区三区精品欧美日韩一区二区三区 | 91精品国产欧美一区二区| 一区二区三区电影在线播| 91浏览器在线视频| 国产精品久久久久久久久免费丝袜 | 国产不卡视频一区二区三区| 久久中文字幕电影| 国产成人午夜精品影院观看视频| 91精品国产色综合久久ai换脸 | 日韩一区二区三| 久久精品国内一区二区三区| 精品久久久久久久久久久久久久久 | 亚洲成a人v欧美综合天堂| 欧美性受xxxx黑人xyx| 午夜电影一区二区| 日韩一区二区三区观看| 黄页视频在线91| 国产精品免费免费| 91视频观看视频| 香港成人在线视频| 日韩欧美一区二区视频| 国产裸体歌舞团一区二区| 成人免费小视频| 欧美精品粉嫩高潮一区二区| 韩国女主播一区二区三区| 亚洲欧美在线视频| 欧美日韩国产小视频在线观看| 九九**精品视频免费播放| 国产精品萝li| 欧美一区二区在线不卡| 国产黄色成人av| 天天色 色综合| 亚洲国产精品精华液ab| 欧美日韩小视频| 成人午夜视频网站| 免费成人在线视频观看| 中文字幕日本不卡| 日韩三级中文字幕| 色综合 综合色| 极品少妇一区二区三区精品视频 | 在线这里只有精品| 精品亚洲成a人| 亚洲与欧洲av电影| 久久精品水蜜桃av综合天堂| 欧美日韩中文另类| 国产成人在线免费| 日本va欧美va瓶| 亚洲综合999| 综合久久国产九一剧情麻豆| 欧美成人三级在线| 欧美日韩卡一卡二| 色8久久人人97超碰香蕉987| 国产999精品久久久久久绿帽| 亚洲不卡av一区二区三区| 国产精品毛片a∨一区二区三区| 日韩精品一区国产麻豆| 欧美亚洲动漫另类| 色婷婷亚洲精品| 国产ts人妖一区二区| 另类小说一区二区三区| 亚洲大片精品永久免费| 亚洲黄色片在线观看| 国产精品全国免费观看高清 | 91麻豆精品国产自产在线观看一区 | 欧美日韩国产精品成人| 成人免费毛片片v| 国产一区在线精品| 极品美女销魂一区二区三区| 美脚の诱脚舐め脚责91| 日韩和欧美的一区| 亚洲高清不卡在线| 香蕉影视欧美成人| 丝袜美腿高跟呻吟高潮一区| 亚洲va韩国va欧美va精品| 亚洲va欧美va人人爽午夜| 亚洲午夜影视影院在线观看| 亚洲香肠在线观看| 亚洲福中文字幕伊人影院| 亚洲成人精品在线观看| 亚瑟在线精品视频| 水野朝阳av一区二区三区| 丝袜美腿亚洲综合| 蜜桃传媒麻豆第一区在线观看| 日本sm残虐另类| 久久国产精品第一页| 韩国中文字幕2020精品| 粉嫩aⅴ一区二区三区四区| 成人动漫视频在线| 91在线观看美女| 欧美群妇大交群中文字幕| 欧美一级日韩免费不卡| 精品成a人在线观看| 欧美国产1区2区| 亚洲在线成人精品| 毛片av一区二区三区| 国产美女久久久久| 波多野结衣中文一区| 欧美偷拍一区二区| 日韩精品中午字幕| 日本一区二区三区电影| 亚洲精品国产a| 日韩成人免费看| 国产黄色精品视频| 在线日韩一区二区| 精品国产不卡一区二区三区| 欧美激情一区二区三区蜜桃视频| 亚洲欧美激情视频在线观看一区二区三区 | av资源网一区| 欧美精品久久一区| 国产偷国产偷精品高清尤物| 亚洲视频资源在线| 日韩av一区二| 成人激情综合网站| 91精品视频网| 国产欧美一区二区精品久导航| 中文字幕在线不卡视频| 秋霞影院一区二区| 99久久综合国产精品| 欧美一区二区日韩| 亚洲欧美日韩一区二区三区在线观看 | 蜜桃av一区二区三区| 国产一区二区剧情av在线| 91麻豆免费观看| 精品国产一二三| 亚洲一区二区三区小说| 国产成人午夜片在线观看高清观看| 一本大道久久精品懂色aⅴ| 久久人人97超碰com| 午夜精品久久一牛影视| 成人18视频日本| 久久看人人爽人人| 亚洲午夜激情网页| 不卡高清视频专区| 久久理论电影网| 久久精品国产秦先生| 欧美午夜片在线观看| 亚洲欧洲av另类| 成人免费av网站| 久久久国际精品| 久久91精品国产91久久小草| 欧美精选一区二区| 亚洲人成网站在线| 成年人国产精品| 欧美—级在线免费片| 九九热在线视频观看这里只有精品| 欧美日韩国产影片| 亚洲综合视频在线观看| 91麻豆高清视频| 日韩一区在线免费观看| 成人午夜碰碰视频| 欧美激情一区二区三区蜜桃视频 | 91丨九色丨黑人外教| 久久精品亚洲一区二区三区浴池| 日韩成人一区二区三区在线观看| 欧美中文字幕亚洲一区二区va在线 | 国产精品女上位| 国产成人av电影| 国产精品乱码一区二三区小蝌蚪| 久久精品国产成人一区二区三区| 7777精品伊人久久久大香线蕉超级流畅 | 久久成人羞羞网站| 欧美猛男超大videosgay| 伊人夜夜躁av伊人久久| 色婷婷综合视频在线观看|