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

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

?? ipsecmsgcserver.c

?? ipsec PNE 3.3 source code, running at more than vxworks6.x version.
?? C
字號:
/* ipsecMsgCServer.c - WindNet IPsec and IKE: Generic Message Channel Server Operations *//*  * Copyright (c) 2000-2005 Wind River Systems, Inc.  *  * The right to copy, distribute, modify or otherwise make use  * of this software may be licensed only pursuant to the terms  * of an applicable Wind River license agreement.  *//*modification history------------------------------------------01f,12dec05,djp  removed compiler warnings01e,26oct05,djp  Moved generic portions to common directory01d,28sep05,ewh  Resolved SPR11246501c,11apr05,djp  Added support for boolean array get/set (logger operations)01b,09mar05,djp  Added stats code01a,28feb05,djp  Fixed compiler warnings*//************************************************************************//* This file contains operations for the IPsec server message channel */#include <vxWorks.h>#include <errnoLib.h>#include "../msgCLib/msgCLib.h"#include "../common/wrSecMsgChannel.h"#include "../common/wrSecMsgCServer.h"#include "ipsecMsgChannel.h"#include "ipsecMsgCServer.h"#include "ipsec_print_routines.h"#include <wrn/ipsec/ipsecStats.h>/* External functions */STATUS ipsecAttachIfHandler(char* configString);STATUS ipsecDetachIfHandler(char* configString);STATUS ipsecDFBitHandler(char* configString);STATUS ipsecSetPMTUAgeHandler(char* configString);STATUS ipsecMonHandler(char* configString);STATUS ipsecDebugHandler(char* configString);void   ipsecShowVerHandler(void);STATUS ipsecShowHandler(void);STATUS ipsecShowIfHandler(void);#ifdef INCLUDE_COUNTERS_IPSEC/********************************************************************************* ipsecMsgCServerValidateStatsRequest - validate a stats request.** This routine validates a stats request and if successful attaches to the* associated shared memory. <configString> specifies the address of a * configuration string that will be filled in with the shared memory contents* if successful** RETURNS*   TRUE if the validation is successful. FALSE otherwise. If TRUE, the calling*   function will be responsible for detaching the shared memory.** NOMANUAL*/BOOL ipsecMsgCServerValidateStatsRequest    (    IPSEC_STATS_OPERATION* request,    char**                configString    )    {    if ((request->request.subType != IPSEC_STATS)  ||        (request->request.msg.msgLen < sizeof(IPSEC_STATS_OPERATION)))        {        request->request.retCode = ERROR;        return FALSE;        }    else        {        /* Attach to the configuration data and call the applicable TSI         * configuration request.         */         	if(request->shMemValid)		{        	*configString = shMemAttach(&request->shMem);        	if (*configString == NULL)            		{            		request->request.retCode = ERROR;            		return FALSE;            		}            	}        }    return TRUE;    } /******************************************************************************** handleStatsRequest() - process IPSEC Statistics Request ** This routine is responsible for processing statistics get requests received* via the message queue.** NOMANUAL*/LOCAL void handleStatsRequest    (    IPSEC_STATS_OPERATION* msg    )    {    char*  configString = NULL;    STATUS retCode      = OK;    /* Validate message. In case of an error the status code in the request     * message will be updated.     */    if (ipsecMsgCServerValidateStatsRequest(msg, &configString) == FALSE)        {        ipsec_printf(IPSEC_ERROR_PRINTF,                     "Invalid IPsec Statistics request\n");        msg->request.retCode = ERROR;        return;        }    /* Process the request. */    switch (msg->opCode)        {#ifdef INCLUDE_COUNTERS_NETWORK_INTERFACE            case IPSEC_IF_STATS_GET:                retCode = ipsecIfStatsGetHandler(configString,                                                 &msg->params.netIfParams);                break;#endif                #ifdef INCLUDE_COUNTERS_POLICIES            case IPSEC_POLICY_STATS_GET:                retCode = ipsecPolicyStatsGetHandler                    (configString, &msg->params.policyParams.inboundStats,                     &msg->params.policyParams.outboundStats);                break;#endif                #ifdef INCLUDE_COUNTERS_PROTECTION_SUITES            case PROTECTION_SUITE_STATS_GET:                retCode = protectionSuiteStatsGetHandler                    (configString, &msg->params.psCountParams.psCounts);                break;            case PROTECTION_SUITE_STATS_GET_BY_SPI:                retCode = protectionSuiteStatsGetBySPIHandler                    (msg->params.psCountParams.spi,                      &msg->params.psCountParams.psCounts);                break;#endif            default:                retCode = ERROR;                break;        }    msg->request.retCode = retCode;    }#endif/********************************************************************************* handleTSIConfigRequest() - Process a IPSEC TSI Configuration Request.** This routine provides the entry point for the server side request handlers* for IPSEC TSI Configuration operations. These requests take a configuration * string as a parameter.* * This routine calls the appropriate handler (based on the operation code)* and after processing fills  in the return code with the result from the* operation.** NOMANUAL*/LOCAL void handleTSIConfigRequest(TSI_CONFIG_OPERATION* request)    {    char*  configString = NULL;    STATUS retCode      = OK;    /* Validate message. In case of an error the status code in the request     * message will be updated.     */    if (wrSecMsgCServerValidateConfigRequest(request, &configString) == FALSE)        {        ipsec_printf(IPSEC_ERROR_PRINTF,                     "Invalid IPsec Configuration request\n");        request->request.retCode = ERROR;        return;        }    /* Process the request. */    switch (request->opCode)        {            case IPSEC_ATTACH_IF:                retCode = ipsecAttachIfHandler(configString);                break;            case IPSEC_DETACH_IF:                retCode = ipsecDetachIfHandler(configString);                break;            case IPSEC_DFBIT:                retCode = ipsecDFBitHandler(configString);                break;            case IPSEC_SET_PMTU_AGE:                retCode = ipsecSetPMTUAgeHandler(configString);                break;            case IPSEC_MON:                retCode = ipsecMonHandler(configString);                break;            case IPSEC_DEBUG:                retCode = ipsecDebugHandler(configString);                break;            default:                retCode = ERROR;        }    /* Release the shared data and fill in the return code */    shMemDetach(&request->shMem);    request->request.retCode = retCode;    }/********************************************************************************* handleTSINoParamsRequest() - Process a null parameter IPSEC TSI Request.** This routine provides the entry point for the server side request handlers* for IPSEC TSI operations that do not require a configuration * string as a parameter.* * This routine calls the appropriate handler (based on the operation code)* and after processing fills  in the return code with the result from the* operation.** NOMANUAL*/LOCAL void handleTSINoParamsRequest(TSI_NO_PARAMS_OPERATION* request)    {    STATUS retCode = OK;    if (wrSecMsgCServerValidateNoParamRequest(request) == FALSE)        {        ipsec_printf(IPSEC_ERROR_PRINTF,                      "Invalid IPSEC request\n");        retCode = ERROR;        }    else        {        /* Call the applicable TSI request based on the request subtype */        switch (request->opCode)            {                case IPSEC_SHOW_VER:                    ipsecShowVerHandler();                    retCode = OK;                    break;                case IPSEC_SHOW:                    retCode = ipsecShowHandler();                    break;                case IPSEC_SHOW_IF:                    retCode = ipsecShowIfHandler();                    break;                default:                    retCode = ERROR;            }        }    /* Fill in the return code */    request->request.retCode = retCode;    }/********************************************************************************* handleTSIBoolGetSet() - Process a TSI BOOL get/set request.** This routine provides the entry point for the server side request handlers* for IPsec TSI operations associated with get/set of a boolean * parameter. * * This routine calls the appropriate handler (based on the operation code)* and after processing fills  in the return code with the result from the* operation.** NOMANUAL*/LOCAL void handleTSIBoolGetSet(TSI_BOOL_GET_SET_OPERATION* request)    {    if (wrSecMsgCServerValidateBoolRequest(request) == FALSE)        {        ipsec_printf(IPSEC_ERROR_PRINTF,                      "Invalid IPsec request\n");        request->request.retCode = ERROR;        return;        }    /* Call the applicable TSI request based on the message fields */    switch (request->param)        {#ifdef INCLUDE_LOGGING_IPSEC            case IPSEC_LOGGER_EVENT_ENABLED:                if (request->doSet)                     {                    ipsecLoggerLogEventEnabledSetHandler(request->index,                                                         request->value);                    }                else                    {                    request->value =                        ipsecLoggerIsLogEventEnabled(request->index);                    }                request->request.retCode = OK;                break;#endif            default:                ipsec_printf(IPSEC_ERROR_PRINTF,                              "Invalid IPsec client request\n");                request->request.retCode = ERROR;        }    }/******************************************************************************** ipsecMsgCServerHandleRequest() - handles IPSEC requests** This routine is responsible for processing IPSEC API messages ** NOMANUAL*/void ipsecMsgCServerHandleRequest    (    WRSEC_REQUEST* msg     /* Request to be processed */    )    {    switch (msg->subType)        {            case TSI_CONFIG:                handleTSIConfigRequest((TSI_CONFIG_OPERATION *) msg);                msgCReply(msgCMsgSenderGet((MSG_CH_MSG *) msg, NULL),                           (MSG_CH_MSG *) msg, msg->msg.msgLen, NO_WAIT, NULL);                break;            case TSI_NO_PARAMS:                handleTSINoParamsRequest((TSI_NO_PARAMS_OPERATION *) msg);                msgCReply(msgCMsgSenderGet((MSG_CH_MSG *) msg, NULL),                           (MSG_CH_MSG *) msg, msg->msg.msgLen, NO_WAIT, NULL);                break;            case TSI_BOOL_GET_SET:                handleTSIBoolGetSet((TSI_BOOL_GET_SET_OPERATION *) msg);                msgCReply(msgCMsgSenderGet((MSG_CH_MSG *) msg, NULL),                           (MSG_CH_MSG *) msg, msg->msg.msgLen, NO_WAIT, NULL);                break;#ifdef INCLUDE_COUNTERS_IPSEC            case IPSEC_STATS:                handleStatsRequest((IPSEC_STATS_OPERATION *) msg);                msgCReply(msgCMsgSenderGet((MSG_CH_MSG *) msg, NULL),                           (MSG_CH_MSG *) msg, msg->msg.msgLen, NO_WAIT, NULL);                break;#endif            default:                wrSecMsgCServerHandleUnknownRequest(msg);        }    }

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲成a人v欧美综合天堂下载| 日本视频免费一区| 7777精品伊人久久久大香线蕉的| 国产一区中文字幕| 一区二区三区免费看视频| 日韩无一区二区| 91丨porny丨首页| 国内精品免费在线观看| 亚洲一区二区黄色| 国产精品美女一区二区三区| 91精品国产入口| 一本一道久久a久久精品综合蜜臀| 精品中文字幕一区二区| 午夜电影一区二区三区| 国产精品久久久久久户外露出 | 777久久久精品| 91亚洲精品久久久蜜桃| 国产一区视频在线看| 日韩电影在线一区二区三区| 夜夜揉揉日日人人青青一国产精品| 欧美国产一区在线| 2022国产精品视频| 欧美电影一区二区三区| 色网综合在线观看| 91首页免费视频| 成人va在线观看| 国产麻豆视频精品| 日本va欧美va精品| 偷窥少妇高潮呻吟av久久免费| 一区二区三区国产精品| 中文字幕av一区二区三区| 久久亚洲春色中文字幕久久久| 在线不卡免费欧美| 欧美妇女性影城| 欧美日本高清视频在线观看| 欧美丝袜丝交足nylons图片| 在线精品视频一区二区三四| 色一情一乱一乱一91av| 色婷婷综合久久久久中文一区二区| 菠萝蜜视频在线观看一区| 国产成人精品网址| 福利电影一区二区三区| 成人影视亚洲图片在线| 国产91在线观看丝袜| 成人午夜视频在线观看| 成人亚洲精品久久久久软件| 成人av动漫网站| 97精品电影院| 91福利国产成人精品照片| 在线观看日韩毛片| 欧美一三区三区四区免费在线看| 91精品啪在线观看国产60岁| 日韩片之四级片| 26uuu久久综合| 日本一二三不卡| 日韩一区在线看| 一区二区三区在线视频免费| 亚洲一卡二卡三卡四卡 | 国产精品一区二区三区网站| 国产精品自在在线| 成人午夜视频福利| 欧美无砖砖区免费| 日韩欧美另类在线| 国产视频一区在线播放| 亚洲摸摸操操av| 日韩国产欧美三级| 狠狠色丁香久久婷婷综| 国产91在线观看丝袜| 色拍拍在线精品视频8848| 欧美酷刑日本凌虐凌虐| 日韩欧美一区二区视频| 日本一区二区电影| 亚洲mv大片欧洲mv大片精品| 久草精品在线观看| 91在线国产福利| 欧美精品久久久久久久久老牛影院| www一区二区| 亚洲精品中文在线影院| 免费成人美女在线观看.| 成人午夜免费电影| 欧美日韩国产高清一区二区三区 | 精品久久国产字幕高潮| 国产精品久久久一本精品| 亚洲一区二区视频在线观看| 精品一区二区三区在线观看国产 | 一区二区三区在线视频观看 | 亚洲人成网站在线| 麻豆精品一区二区三区| 91色乱码一区二区三区| 日韩一区二区三区观看| 国产精品白丝在线| 久久国产精品99精品国产| 91香蕉国产在线观看软件| 日韩午夜激情电影| 亚洲综合色网站| 粉嫩一区二区三区性色av| 欧美精品精品一区| 亚洲男人的天堂网| 国产不卡一区视频| 日韩一区二区三区视频在线观看 | 久久99热99| 欧美性受xxxx黑人xyx| 久久精品一二三| 日本在线不卡视频| 色综合久久天天| 日本一区二区视频在线观看| 免费看日韩精品| 欧美日韩一区二区在线观看视频 | 成人中文字幕在线| 日韩一区二区三免费高清| 国产精品嫩草影院av蜜臀| 欧美aa在线视频| 在线视频中文字幕一区二区| 国产日产欧美一区| 国产美女av一区二区三区| 91精品国产综合久久久久久久久久| 亚洲欧洲成人自拍| 国产suv一区二区三区88区| 欧美大片日本大片免费观看| 亚洲成年人网站在线观看| 日本乱人伦一区| 国产精品色一区二区三区| 国产在线不卡一区| 日韩欧美中文字幕一区| 亚洲成人在线观看视频| 在线观看视频一区二区| 一区二区三区在线免费播放| 一本色道久久综合精品竹菊| 亚洲欧美一区二区视频| 成人免费高清视频在线观看| 久久精品视频免费| 国产成人一区在线| 国产亚洲短视频| 国产成人精品综合在线观看| 2023国产一二三区日本精品2022| 麻豆国产一区二区| 精品欧美乱码久久久久久 | 97se狠狠狠综合亚洲狠狠| 中文字幕精品一区二区精品绿巨人| 国产一区激情在线| 国产欧美一区二区精品性色| 高清国产一区二区| 中文字幕中文字幕一区二区| 色综合色综合色综合色综合色综合 | 国产一区视频导航| 久久久久久免费毛片精品| 国产精品99久久久久久宅男| 久久久久久久性| 不卡大黄网站免费看| 亚洲婷婷综合久久一本伊一区| 97se亚洲国产综合自在线| 一二三区精品福利视频| 4hu四虎永久在线影院成人| 免费人成精品欧美精品| 久久亚洲综合色一区二区三区| 国产成人亚洲精品青草天美| 国产精品久久久久久久久图文区| 91久久国产最好的精华液| 午夜精品视频在线观看| 欧美不卡一二三| 成人精品视频网站| 亚洲影视在线观看| 91精品国产高清一区二区三区| 国产呦萝稀缺另类资源| 亚洲欧洲无码一区二区三区| 欧美日韩视频不卡| 国精产品一区一区三区mba视频| 精品午夜久久福利影院| 亚洲精品一区二区三区在线观看| 国产成人精品影视| 一区二区三区成人| 精品裸体舞一区二区三区| www.亚洲国产| 午夜激情综合网| 中文字幕欧美激情| 欧美三级电影在线观看| 国产精品一区二区视频| 亚洲一二三专区| 国产拍欧美日韩视频二区| 在线精品视频一区二区| 国产毛片精品一区| 五月激情六月综合| 欧美国产乱子伦| 欧美精品一二三区| 粉嫩一区二区三区在线看| 亚洲h动漫在线| 国产精品传媒视频| 日韩亚洲欧美在线| 91视频免费观看| 国产乱人伦精品一区二区在线观看| 亚洲欧洲制服丝袜| 精品国产sm最大网站| 91久久精品国产91性色tv | 色av一区二区| 国产一区二区三区精品视频| 亚洲国产一区视频| 国产精品无遮挡| 精品国产欧美一区二区| 欧美揉bbbbb揉bbbbb| jizz一区二区|