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

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

?? smtp_config.c

?? 著名的入侵檢測系統(tǒng)snort的最新版本的源碼
?? C
?? 第 1 頁 / 共 2 頁
字號:
/**************************************************************************** *  * Copyright (C) 2005-2007 Sourcefire Inc. * * 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. * ****************************************************************************//*************************************************************************** * smtp_config.c * * Author: Andy Mullican * Author: Todd Wease * * Description: * * Handle configuration of the SMTP preprocessor * * Entry point functions: * *    SMTP_ParseArgs() * ***************************************************************************/#include <sys/types.h>#include <stdlib.h>#include <ctype.h>#include <string.h>#include <stdio.h>#ifdef HAVE_CONFIG_H#include "config.h"#endif#include "snort_smtp.h"#include "smtp_config.h"#include "bounds.h"#include "sf_dynamic_preprocessor.h"/*  Global variable to hold configuration */SMTPConfig     _smtp_config;SMTPCmdConfig *_smtp_cmd_config;extern DynamicPreprocessorData _dpd;extern SMTPToken *_smtp_cmds;extern SMTPSearch *_smtp_cmd_search;extern const SMTPToken _smtp_known_cmds[];/* Private functions */static void PrintConfig(void);static int  ProcessPorts(char *, int);static int  ProcessCmds(char *, int, int);static int  GetCmdId(char *);static int  AddCmd(char *name);static int  ProcessAltMaxCmdLen(char *, int);static int  ProcessXlink2State(char *, int);/* * Function: SMTP_ParseArgs(char *) * * Purpose: Process the preprocessor arguments from the rules file and  *          initialize the preprocessor's data struct.  This function doesn't *          have to exist if it makes sense to parse the args in the init  *          function. * * Arguments: args => argument list * * Returns: void function * */void SMTP_ParseArgs(char *args){    int ret = 0;    char *arg;    char *value;    char errStr[ERRSTRLEN];    int errStrLen = ERRSTRLEN;    if (args == NULL)    {        return;    }    /*  Set config to defaults */    memset(&_smtp_config, 0, sizeof(SMTPConfig));    _smtp_config.ports[SMTP_DEFAULT_SERVER_PORT / 8]     |= 1 << (SMTP_DEFAULT_SERVER_PORT % 8);    _smtp_config.ports[XLINK2STATE_DEFAULT_PORT / 8]     |= 1 << (XLINK2STATE_DEFAULT_PORT % 8);    _smtp_config.ports[SMTP_DEFAULT_SUBMISSION_PORT / 8] |= 1 << (SMTP_DEFAULT_SUBMISSION_PORT % 8);    _smtp_config.inspection_type = SMTP_STATELESS;    _smtp_config.max_command_line_len = DEFAULT_MAX_COMMAND_LINE_LEN;    _smtp_config.max_header_line_len = DEFAULT_MAX_HEADER_LINE_LEN;    _smtp_config.max_response_line_len = DEFAULT_MAX_RESPONSE_LINE_LEN;    _smtp_config.alert_xlink2state = 1;    _smtp_config.print_cmds = 1;    _smtp_cmd_config = (SMTPCmdConfig *)calloc(CMD_LAST, sizeof(SMTPCmdConfig));    if (_smtp_cmd_config == NULL)    {        DynamicPreprocessorFatalMessage("%s(%d) => Failed to allocate memory for SMTP "                                        "command structure\n",                                         *(_dpd.config_file), *(_dpd.config_line));    }    *errStr = '\0';    arg = strtok(args, CONF_SEPARATORS);        while ( arg != NULL )    {        if ( !strcasecmp(CONF_PORTS, arg) )        {            ret = ProcessPorts(errStr, errStrLen);        }        else if ( !strcasecmp(CONF_INSPECTION_TYPE, arg) )        {            value = strtok(NULL, CONF_SEPARATORS);            if ( value == NULL )            {                return;            }            if ( !strcasecmp(CONF_STATEFUL, value) )            {                _smtp_config.inspection_type = SMTP_STATEFUL;            }            else            {                _smtp_config.inspection_type = SMTP_STATELESS;            }        }        else if ( !strcasecmp(CONF_NORMALIZE, arg) )        {            value = strtok(NULL, CONF_SEPARATORS);            if ( value == NULL )            {                return;            }            if ( !strcasecmp(CONF_NONE, value) )            {                _smtp_config.normalize = NORMALIZE_NONE;            }            else if ( !strcasecmp(CONF_ALL, value) )            {                _smtp_config.normalize = NORMALIZE_ALL;            }            else            {                _smtp_config.normalize = NORMALIZE_CMDS;            }        }        else if ( !strcasecmp(CONF_IGNORE_DATA, arg) )        {                                _smtp_config.ignore_data = 1;                    }        else if ( !strcasecmp(CONF_IGNORE_TLS_DATA, arg) )        {            _smtp_config.ignore_tls_data = 1;                    }        else if ( !strcasecmp(CONF_MAX_COMMAND_LINE_LEN, arg) )        {            char *endptr;            value = strtok(NULL, CONF_SEPARATORS);            if ( value == NULL )            {                return;            }                        _smtp_config.max_command_line_len = strtol(value, &endptr, 10);        }        else if ( !strcasecmp(CONF_MAX_HEADER_LINE_LEN, arg) )        {            char *endptr;            value = strtok(NULL, CONF_SEPARATORS);            if ( value == NULL )            {                return;            }                        _smtp_config.max_header_line_len = strtol(value, &endptr, 10);        }        else if ( !strcasecmp(CONF_MAX_RESPONSE_LINE_LEN, arg) )        {            char *endptr;            value = strtok(NULL, CONF_SEPARATORS);            if ( value == NULL )            {                return;            }                        _smtp_config.max_response_line_len = strtol(value, &endptr, 10);        }        else if ( !strcasecmp(CONF_NO_ALERTS, arg) )        {                 _smtp_config.no_alerts = 1;        }        else if ( !strcasecmp(CONF_ALERT_UNKNOWN_CMDS, arg) )        {            _smtp_config.alert_unknown_cmds = 1;        }        else if ( !strcasecmp(CONF_INVALID_CMDS, arg) )        {            /* Parse disallowed commands */            ret = ProcessCmds(errStr, errStrLen, ACTION_ALERT);        }        else if ( !strcasecmp(CONF_VALID_CMDS, arg) )        {            /* Parse allowed commands */            ret = ProcessCmds(errStr, errStrLen, ACTION_NO_ALERT);           }        else if ( !strcasecmp(CONF_NORMALIZE_CMDS, arg) )        {            /* Parse normalized commands */            ret = ProcessCmds(errStr, errStrLen, ACTION_NORMALIZE);        }        else if ( !strcasecmp(CONF_ALT_MAX_COMMAND_LINE_LEN, arg) )        {            /* Parse max line len for commands */            ret = ProcessAltMaxCmdLen(errStr, errStrLen);        }        else if ( !strcasecmp(CONF_XLINK2STATE, arg) )        {            ret = ProcessXlink2State(errStr, errStrLen);        }        else if ( !strcasecmp(CONF_PRINT_CMDS, arg) )        {            _smtp_config.print_cmds = 1;        }        else        {            DynamicPreprocessorFatalMessage("%s(%d) => Unknown SMTP configuration option %s\n",                                             *(_dpd.config_file), *(_dpd.config_line), arg);        }                if (ret == -1)        {            /*            **  Fatal Error, log error and exit.            */            if (*errStr)            {                DynamicPreprocessorFatalMessage("%s(%d) => %s\n",                                                 *(_dpd.config_file), *(_dpd.config_line), errStr);            }            else            {                DynamicPreprocessorFatalMessage("%s(%d) => Undefined Error.\n",                                                 *(_dpd.config_file), *(_dpd.config_line));            }        }        /*  Get next token */        arg = strtok(NULL, CONF_SEPARATORS);    }    PrintConfig();}static void PrintConfig(void){    int i;    const SMTPToken *cmd;    char buf[8192];    memset(&buf[0], 0, sizeof(buf));    _dpd.logMsg("\nSMTP Config:\n");        snprintf(buf, sizeof(buf) - 1, "    Ports: ");    for (i = 0; i < 65536; i++)    {        if (_smtp_config.ports[i / 8] & (1 << (i % 8)))        {            _dpd.printfappend(buf, sizeof(buf) - 1, "%d ", i);        }    }    _dpd.logMsg("%s\n", buf);    _dpd.logMsg("    Inspection Type: %s\n",                _smtp_config.inspection_type ? "Stateful" : "Stateless");    snprintf(buf, sizeof(buf) - 1, "    Normalize: ");    switch (_smtp_config.normalize)    {        case NORMALIZE_ALL:            _dpd.printfappend(buf, sizeof(buf) - 1, "all");            break;        case NORMALIZE_NONE:            _dpd.printfappend(buf, sizeof(buf) - 1, "none");            break;        case NORMALIZE_CMDS:            if (_smtp_config.print_cmds)            {                for (cmd = _smtp_cmds; cmd->name != NULL; cmd++)                {                    if (_smtp_cmd_config[cmd->search_id].normalize)                    {                        _dpd.printfappend(buf, sizeof(buf) - 1, "%s ", cmd->name);                    }                }            }            else            {                _dpd.printfappend(buf, sizeof(buf) - 1, "cmds");            }                        break;    }    _dpd.logMsg("%s\n", buf);    _dpd.logMsg("    Ignore Data: %s\n",                _smtp_config.ignore_data ? "Yes" : "No");    _dpd.logMsg("    Ignore TLS Data: %s\n",                _smtp_config.ignore_tls_data ? "Yes" : "No");    _dpd.logMsg("    Ignore SMTP Alerts: %s\n",               _smtp_config.no_alerts ? "Yes" : "No");    if (!_smtp_config.no_alerts)    {        snprintf(buf, sizeof(buf) - 1, "    Max Command Line Length: ");        if (_smtp_config.max_command_line_len == 0)            _dpd.printfappend(buf, sizeof(buf) - 1, "Unlimited");        else            _dpd.printfappend(buf, sizeof(buf) - 1, "%d", _smtp_config.max_command_line_len);        _dpd.logMsg("%s\n", buf);        if (_smtp_config.print_cmds)        {            int max_line_len_count = 0;            int max_line_len = 0;            snprintf(buf, sizeof(buf) - 1, "    Max Specific Command Line Length: ");            for (cmd = _smtp_cmds; cmd->name != NULL; cmd++)            {                max_line_len = _smtp_cmd_config[cmd->search_id].max_line_len;                if (max_line_len != 0)                {                    if (max_line_len_count % 5 == 0)                    {                        _dpd.logMsg("%s\n", buf);                        snprintf(buf, sizeof(buf) - 1, "       %s:%d ", cmd->name, max_line_len);                    }                    else                    {                        _dpd.printfappend(buf, sizeof(buf) - 1, "%s:%d ", cmd->name, max_line_len);                    }                    max_line_len_count++;                }            }            if (max_line_len_count == 0)                _dpd.logMsg("%sNone\n", buf);            else                _dpd.logMsg("%s\n", buf);        }        snprintf(buf, sizeof(buf) - 1, "    Max Header Line Length: ");        if (_smtp_config.max_header_line_len == 0)            _dpd.logMsg("%sUnlimited\n", buf);        else            _dpd.logMsg("%s%d\n", buf, _smtp_config.max_header_line_len);        snprintf(buf, sizeof(buf) - 1, "    Max Response Line Length: ");        if (_smtp_config.max_response_line_len == 0)            _dpd.logMsg("%sUnlimited\n", buf);        else            _dpd.logMsg("%s%d\n", buf, _smtp_config.max_response_line_len);    }        _dpd.logMsg("    X-Link2State Alert: %s\n",               _smtp_config.alert_xlink2state ? "Yes" : "No");    if (_smtp_config.alert_xlink2state)    {        _dpd.logMsg("    Drop on X-Link2State Alert: %s\n",                   _smtp_config.drop_xlink2state ? "Yes" : "No");    }    if (_smtp_config.print_cmds && !_smtp_config.no_alerts)    {        int alert_count = 0;                snprintf(buf, sizeof(buf) - 1, "    Alert on commands: ");        for (cmd = _smtp_cmds; cmd->name != NULL; cmd++)        {            if (_smtp_cmd_config[cmd->search_id].alert)            {                _dpd.printfappend(buf, sizeof(buf) - 1, "%s ", cmd->name);                alert_count++;            }        }        if (alert_count == 0)        {            _dpd.logMsg("%sNone\n", buf);        }        else        {            _dpd.logMsg("%s\n", buf);        }    }}/***  NAME**    ProcessPorts::*//****  Process the port list.****  This configuration is a list of valid ports and is ended by a **  delimiter.****  @param ErrorString error string buffer**  @param ErrStrLen   the length of the error string buffer****  @return an error code integer **          (0 = success, >0 = non-fatal error, <0 = fatal error)

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
精品美女一区二区三区| 538prom精品视频线放| 精品日韩av一区二区| 亚洲欧美色一区| 国产风韵犹存在线视精品| 在线播放中文字幕一区| 亚洲欧美色一区| 国产精品自在在线| 3d成人动漫网站| 一二三区精品福利视频| 成人av片在线观看| 精品国产91九色蝌蚪| 日韩精品免费专区| 欧美熟乱第一页| 亚洲卡通欧美制服中文| 国产成人精品www牛牛影视| 欧美一区二区免费| 亚洲mv在线观看| 91精品福利视频| 成人免费小视频| 国产精品正在播放| 精品久久人人做人人爱| 日本视频免费一区| 欧美三级欧美一级| 亚洲午夜免费电影| 色婷婷亚洲一区二区三区| 国产精品美日韩| 国产精品99久| 久久久噜噜噜久久中文字幕色伊伊 | 国产一区91精品张津瑜| 色婷婷综合五月| 亚洲女人的天堂| 色先锋资源久久综合| 综合久久给合久久狠狠狠97色 | 日本最新不卡在线| 欧美日韩一区精品| 亚洲高清免费视频| 欧美色老头old∨ideo| 一区二区三区不卡视频在线观看| heyzo一本久久综合| 国产精品人妖ts系列视频| 国产精品亚洲人在线观看| 久久久久久久久免费| 国产一区免费电影| 国产午夜亚洲精品不卡| 国产成人午夜高潮毛片| 国产欧美日韩中文久久| 成人av网站免费观看| 亚洲天堂精品视频| 在线影视一区二区三区| 亚洲国产精品天堂| 欧美精品久久天天躁| 日韩av电影免费观看高清完整版在线观看 | 日韩欧美一卡二卡| 秋霞电影网一区二区| 宅男在线国产精品| 男人操女人的视频在线观看欧美| 91精品国产综合久久蜜臀| 蜜桃久久久久久久| 久久精品一区四区| 成人av动漫在线| 亚洲精选视频在线| 欧美日韩精品欧美日韩精品一综合| 一级中文字幕一区二区| 欧美伦理电影网| 精品一区二区三区在线播放 | 色网站国产精品| 亚洲成人动漫在线免费观看| 欧美一区二区三区喷汁尤物| 韩国欧美国产1区| 国产精品久久久久毛片软件| 色婷婷av一区二区三区软件| 午夜精品123| 2023国产精品| 91色porny在线视频| 亚洲午夜电影网| 日韩欧美中文字幕一区| 高清国产一区二区| 一区二区三区色| 精品国产乱码久久久久久图片 | 麻豆成人免费电影| 国产欧美日本一区视频| 91在线免费看| 日韩激情一区二区| 欧美国产亚洲另类动漫| 色一情一伦一子一伦一区| 美女视频黄久久| 国产精品二区一区二区aⅴ污介绍| 欧美性videosxxxxx| 精品一区二区免费视频| 亚洲欧洲三级电影| 91精品啪在线观看国产60岁| 国产成人午夜片在线观看高清观看| 亚洲天堂免费看| 精品国产一区二区三区av性色| 成人免费视频视频在线观看免费| 亚洲国产一区视频| 久久综合给合久久狠狠狠97色69| 91行情网站电视在线观看高清版| 久久99蜜桃精品| 亚洲精品成人a在线观看| 欧美成人激情免费网| 91网址在线看| 国产一区二区精品久久| 亚洲成人免费影院| 中文字幕不卡在线播放| 7777精品伊人久久久大香线蕉经典版下载 | 夜夜嗨av一区二区三区四季av| 欧美精品日韩综合在线| jvid福利写真一区二区三区| 免费精品99久久国产综合精品| √…a在线天堂一区| 精品国产一区久久| 欧美三级韩国三级日本一级| 丰满岳乱妇一区二区三区| 免费欧美日韩国产三级电影| 一区二区三区中文字幕| 久久精品一区二区| 欧美一区二区三区成人| 色欧美日韩亚洲| 国产成人在线色| 久久99热99| 日韩av成人高清| 亚洲国产精品久久人人爱| 中文一区在线播放| 精品粉嫩aⅴ一区二区三区四区| 色婷婷久久久亚洲一区二区三区 | 久色婷婷小香蕉久久| 亚洲一区二区三区小说| 国产精品电影院| 欧美激情一区不卡| 精品国产百合女同互慰| 欧美一区二区三区思思人| 欧美无乱码久久久免费午夜一区| 成人污视频在线观看| 国产精品综合网| 精品一区二区综合| 美女网站色91| 美腿丝袜亚洲色图| 日韩和欧美一区二区| 亚洲综合激情另类小说区| 中文字幕字幕中文在线中不卡视频| 国产亚洲一区二区三区四区| 精品噜噜噜噜久久久久久久久试看| 91精品国产色综合久久不卡电影 | 99re这里只有精品首页| 国产盗摄女厕一区二区三区| 国产一区二区三区视频在线播放| 美日韩一级片在线观看| 免费xxxx性欧美18vr| 日韩精品三区四区| 日韩电影网1区2区| 日韩和欧美的一区| 日韩国产欧美在线观看| 午夜精品aaa| 日本最新不卡在线| 理论电影国产精品| 另类小说欧美激情| 久久99精品国产.久久久久久| 美国欧美日韩国产在线播放 | 17c精品麻豆一区二区免费| 国产精品第13页| 亚洲天堂久久久久久久| 亚洲欧美另类图片小说| 亚洲女同一区二区| 亚洲网友自拍偷拍| 日韩精品一级二级| 精品一区二区av| 国产一区二区久久| 成人污视频在线观看| 99国产精品一区| 在线观看国产日韩| 91精品国产综合久久精品性色| 91精品黄色片免费大全| 26uuu久久综合| 欧美激情一区二区| 一区二区三区中文字幕| 午夜电影一区二区| 精品亚洲免费视频| 国产成人精品免费视频网站| 99视频在线精品| 欧美日韩在线综合| 欧美一二三四区在线| 久久先锋影音av鲁色资源网| 中文av字幕一区| 亚洲一线二线三线久久久| 午夜av电影一区| 国产一区三区三区| 91色|porny| 欧美日韩高清一区二区| 欧美变态凌虐bdsm| 国产精品国模大尺度视频| 亚洲黄一区二区三区| 免费观看成人鲁鲁鲁鲁鲁视频| 国产黄色精品视频| 欧美在线免费观看视频| 欧美成人女星排名| 亚洲视频一区在线| 免费成人在线网站| 懂色av一区二区在线播放|