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

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

?? fwwebhttprpmwmbpost.c

?? firewall PNE 3.3 source code, running at more than vxworks6.x version.
?? C
?? 第 1 頁(yè) / 共 2 頁(yè)
字號(hào):
/* httpRpmWmbPost.c - WindMark POST request processing modules *//* Copyright 2001-2004 Wind River Systems, Inc. *//*modification history--------------------01l,13aug04,zhu  allow setting all in POST01k,11aug04,zhu  customized for firewall webscreen, porting to dual stack01j,27dlr04,dlr  Do not destroy the optional GET session if not created in httpRpmWmbPostExec01i,06may04,vmk  error handling for wmbTransactionProcess ( spr#91378)01h,27apr04,adb  replaced all buffer size constants with kMagicMarkupBufferSize01g,10mar04,adb  NULL instance to empty sting conversion01f,03mar04,gsr  for inline instancing set operation SPR#9100801e,16jan04,jws  remove per project dependencies01d,18aug03,jws  documentation updates01c,24jul03,jws  SPR 89657 work and general clean-up01b,16jun03,adb  introduced tempBuf in lclBuildSetTrans01a,06nov01,jc   initial creation.*//*DESCRIPTIONThis library contains request processing modules (RPMs) for settingWindmarks via an http POST.  These standard RPMs can be associated with URLsusing the WMIT project configuration tool.In addition, the function httpRpmWmbPostExec() can be called by a user customRPM to do Windmark POST processing with various options not available using the"standard" RPMs.  For example, a custom RPM which would set only posted itemswhose value has changed could be as simple as:\csshort customRPM    (    HTTP_REQ_ID reqId    )    {    return httpRpmWmbPostExec(reqId,RPM_CHANGE_ONLY_SET);    }\ceBefore the functions in this library are called to process a request, somepre-processing of the data must be done.  The functions httpRpmUpload() orhttpRpmPost() copy any name=value duplets in the CGI stream (the http request)to the server's environment.  Functions here will look for WindMarks in thatenvironment, and if found, will access the backplane to update their values.So, for example, the following sequence could be used to registerhttpRpmWmbPost() with the server for the URL /url/:\cs    httpRpmConfAdd (HTTP_M_POST, "/url/", httpRpmPost)    httpRpmConfAdd (HTTP_M_POST, "/url/", httpRpmWmbPost)\ceRegistration is normally done automatically during server initializationin code generated by the tool WMIT.  RPMs are invoked seriatim until onedoes not return RPM_OK.  RPMs in this library return RPM_OK, only if theydo not recognize the Content-Type of the request.Functions in this library recognize POSTs with Content-Type of"application/x-www-form-urlencoded" or "multipart/form-data".  These are thestandard types for forms and multi-part forms, respectively.INCLUDE FILES: httpLib.h,httpRpms.h*/#undef DEBUG_INFO/* system header files */#include <string.h>#include <ctype.h>#include <stdio.h>#include <stdlib.h>/* WM header files */#include "wrn/wm/http/httpLib.h"#include "wrn/wm/http/httpRpms.h"#include "wrn/wm/http/private/httpReq.h"#include "wrn/wm/http/private/httpInt.h"#include "wrn/wm/http/httpWmbExpandInstance.h"/* WM project header files */#if 0#include "wmw_httpconf.h"#endif#include "fwWebDevice.h"/* externals - will move to header file(s) */IMPORT STATUS (*pWmmErrorLogStart)(INT32);IMPORT STATUS (*pWmmErrorLogEnd)(INT32);IMPORT ubyte4  wmVarMagicMarkupBufferSize;/* constants *//* locals */LOCAL STATUS lclBuildSetTrans(HTTP_REQ_ID, WMB_SESSION_T *, WMB_TID_T,                              WMB_SESSION_T *);LOCAL short   lclReportError();LOCAL sbyte * lclParseInstanceInfo(sbyte * fullWindMarkName);#if 0  /* unused routines */LOCAL STATUS lclBuildGetTrans(HTTP_REQ_ID,WMB_SESSION_T *,WMB_TID_T);LOCAL STATUS lclGetToSetTrans(HTTP_REQ_ID,WMB_SESSION_T *,WMB_TID_T,int);LOCAL BOOL lclValueMatches    (    WMB_OBJ_T obj,     /* object to check */    sbyte *   pVal     /* value to check against */    );LOCAL WMB_OBJ_T lclObjCut    (    WMB_TID_T tid,    WMB_OBJ_T obj    );/* debuggering */LOCAL void lclDumpTrans(WMB_TID_T,char *);#endif/* format string for error reporting */static char errFmt[] = "httpRpmWmbPost errno = %d\r\n";/* prototypes missing from header files */WM_BUFFER_T * wmbObjectValueBufferGet    (    WMB_OBJ_T       obj    );/**************************************************************************** fwWebHttpRpmWmbPost - process Windmarks in a POST** This is the routine that actually sets WindMarks.  It underlies* httpRpmWmbPost() and httpRpmWmbBestEffortPost().  Users who write their* own custom RPM module would typically call this function to do the* actual Windmark processing.** If <flags> is 0, all items in the POST will be set.  Otherwise, <flags>* may be any combination of:* \is* \i RPM_BEST_EFFORT_SET* The set transaction is done on a "best effort" basis and will succeed* even if some items cannot be set.* \i RPM_CHANGE_ONLY_SET* Set only those items whose value will change.  If, for some reason, the* current value of an item cannot be determined, it will be set.* \ie** RETURNS: RPM_OK if the POST Content-Type is inappropriate; RPM_DONE if* the post processing was successful; RPM_ERROR otherwise.*/short fwWebHttpRpmWmbPost    (    HTTP_REQ_ID reqId  /* handle of the active request */    )    {    int         flags=0;   /* processing options */    const sbyte *     contentEnc;    WMB_SESSION_T *   pSession = NULL;    WMB_SESSION_T *   pGetSession = NULL;    WMB_TID_T         tid = NULL;    WMB_OBJ_T         pObj;    ubyte4            trans_flags;    BOOL              doSet;	/* Set up the transaction flag(s) */	trans_flags = (flags & RPM_BEST_EFFORT_SET)  ?  WMB_TM_NOUNDO : 0;	/* Check the header for correct content type */    contentEnc = httpMimeHdrGet(reqId, HDR_IN, "Content-Type");    if (strcmp(contentEnc, "application/x-www-form-urlencoded") &&        strcmp(contentEnc, "multipart/form-data"))        {        return RPM_OK; /* some other RPM may deal with it */        }    /* create a WMB session */    if (OK != wmbSessionCreate (httpGetWmbComp(), 0,                                WMB_SESSION_NO_DEF_TRANSACTION, &pSession))        {        return lclReportError ();        }    /*     * A second session may be created if we are doing selective set's.     * It is not an error if this session cannot be created.     */    if (flags & RPM_CHANGE_ONLY_SET)        {        wmbSessionCreate(httpGetWmbComp(),0,0,&pGetSession);        }    if (pWmmErrorLogStart)  pWmmErrorLogStart(pSession->id);    /*     * Create a transaction in which to store the WindMark objects.     * If this fails, report the error, but continue so that we can     * clean-up properly.     */    doSet = ((wmbTransactionCreate(pSession, 0, trans_flags, &tid) == OK) &&             (lclBuildSetTrans(reqId, pSession, tid, pGetSession) == OK))            ?  TRUE : FALSE;    if (!doSet)  lclReportError();  /* do now to report proper errno */#if 0    lclDumpTrans(tid,"Before Set");#endif    if (doSet)  /* If nothing is wrong, we now do a SET transaction. */        {	    if (wmbTransactionProcess(tid, CMD_SET_K) != OK)            {            pObj = wmbTransactionErrQGet( tid );		    if (NULL != pObj )                {                httpWindMarkSetFailed(reqId, wmbObjectNamePtrGet(pObj), wmbTransactionStatusGet(tid));                }            else                {                wmLogPrintf ("httpRpmWmbPost: failed to process transaction\n");                }                            doSet = FALSE;            }        else        {        fwWebReachEndSet();        /*         * httpPostReply() is a user supplied function which sends some         * kind of POST response message to the client.  It might need         * to know the session we're in.         */        reqId->pSession = pSession;        httpPostReply (reqId, HTTP_OK);        }        }    if (pWmmErrorLogEnd)  pWmmErrorLogEnd(pSession->id);    /*     * Clean up.  There is really no point in checking for errors     * here.     */    if (NULL != pGetSession)    	wmbSessionDestroy(pGetSession);    wmbTransactionEnd(tid);    wmbSessionDestroy(pSession);    return (doSet)  ?  RPM_DONE : RPM_ERROR;    }/**************************************************************************** lclBuildSetTrans - build transaction for setting Windmarks** This routine searches an http request for form element names and* adds them to a wmb transaction.  If <pGetSession> is not NULL, and buffer* space can be allocated, it will do a get on each WindMark and only add it* to the transaction if it's value will change.** Because of session and transaction interactions, we must do our get's in* a different session than the one for the set transaction we are building.** RETURNS: OK or ERROR*/LOCAL STATUS lclBuildSetTrans    (    HTTP_REQ_ID     reqId,         /* http request */    WMB_SESSION_T * pSession,      /* session for setting */    WMB_TID_T       tid,           /* transaction in pSession */    WMB_SESSION_T * pGetSession    /* (optional) session for getting */    )    {    sbyte *        pMagicMarkup;

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
91视频91自| 精品国免费一区二区三区| 蜜臀av在线播放一区二区三区| 亚洲国产精品黑人久久久| 欧美日韩国产综合一区二区三区| 国产成人免费网站| 老汉av免费一区二区三区| 夜夜亚洲天天久久| 欧美韩日一区二区三区| 日韩免费视频线观看| 欧美专区日韩专区| 成人深夜视频在线观看| 久久99精品一区二区三区| 亚洲自拍偷拍网站| 一区在线观看视频| 久久蜜桃av一区精品变态类天堂| 91.麻豆视频| 在线观看中文字幕不卡| 99在线精品观看| 国产成人在线免费| 国产在线精品国自产拍免费| 奇米色一区二区| 亚洲成av人**亚洲成av**| 亚洲男人的天堂在线观看| 欧美国产激情二区三区| 久久久蜜桃精品| 久久日一线二线三线suv| 欧美不卡一二三| 欧美一区二区三区在线| 91麻豆精品国产自产在线观看一区| 欧美最猛性xxxxx直播| 日本福利一区二区| 色综合夜色一区| 色婷婷综合视频在线观看| 91香蕉国产在线观看软件| 91浏览器入口在线观看| 色综合久久精品| 欧洲av一区二区嗯嗯嗯啊| 色婷婷综合久久久久中文一区二区 | 欧美日韩另类一区| 在线看不卡av| 欧美日韩你懂的| 欧美一区二区三区视频在线 | 欧美高清性hdvideosex| 欧美性猛交xxxxxxxx| 欧美美女网站色| 日韩视频在线永久播放| 久久夜色精品国产噜噜av| 国产免费久久精品| 中文字幕一区二区三区四区不卡| 国产精品国产三级国产aⅴ无密码| 国产精品美女久久久久久久网站| 国产精品久久精品日日| 一区二区三区中文字幕在线观看| 亚洲国产精品麻豆| 日韩不卡一二三区| 国产一区二区三区最好精华液| 国产在线播精品第三| 高清国产午夜精品久久久久久| 91免费视频网址| 欧美日韩高清一区二区三区| 欧美成人精品福利| 国产精品久久久久一区| 亚洲一区二区三区四区在线免费观看| 午夜国产精品影院在线观看| 久久成人免费网| 成人动漫视频在线| 精品视频免费看| 精品精品欲导航| 国产精品乱人伦| 亚洲国产aⅴ天堂久久| 蜜桃免费网站一区二区三区| 成人黄色小视频| 欧美日韩国产高清一区二区三区 | 国产精品美女久久久久aⅴ国产馆 国产精品美女久久久久av爽李琼 国产精品美女久久久久高潮 | 久久久久久久久久久久久女国产乱| 中文字幕免费观看一区| 亚洲成人在线网站| 国产一区二区三区精品视频| 99久久久久免费精品国产| 欧美日韩国产精品自在自线| 国产欧美va欧美不卡在线| 亚洲午夜在线观看视频在线| 国产麻豆精品在线| 欧美精品一二三| 国产精品入口麻豆九色| 奇米888四色在线精品| www.日韩在线| 日韩精品一区在线观看| 亚洲激情校园春色| 国产电影一区二区三区| 欧美乱妇15p| 亚洲欧洲色图综合| 精品系列免费在线观看| 欧美无砖砖区免费| 欧美国产视频在线| 美女在线一区二区| 欧美在线短视频| 国产精品二三区| 激情av综合网| 欧美精品色一区二区三区| 中文字幕制服丝袜一区二区三区| 美女一区二区三区| 欧美日韩中文一区| 亚洲免费视频成人| 成人精品视频一区二区三区 | 国产精品免费人成网站| 精品亚洲porn| 欧美一区中文字幕| 亚洲愉拍自拍另类高清精品| 成人h版在线观看| 久久这里都是精品| 美腿丝袜亚洲综合| 日韩一区二区在线看| 天天色天天爱天天射综合| 色素色在线综合| 国产精品无遮挡| 国产福利一区二区三区视频在线 | 欧美成人r级一区二区三区| 亚洲二区在线观看| 在线观看av一区| 亚洲激情成人在线| 91看片淫黄大片一级在线观看| 久久久午夜电影| 国产乱妇无码大片在线观看| 精品久久99ma| 狠狠色丁香婷婷综合久久片| 欧美高清激情brazzers| 五月开心婷婷久久| 欧美久久婷婷综合色| 日日夜夜精品免费视频| 欧美日韩国产影片| 五月婷婷激情综合网| 欧美日韩国产三级| 日韩黄色免费电影| 日韩午夜精品电影| 韩国成人在线视频| 精品欧美乱码久久久久久1区2区| 美女免费视频一区二区| 欧美白人最猛性xxxxx69交| 久久精品99国产国产精| 亚洲精品在线网站| 懂色av噜噜一区二区三区av| 中文字幕av免费专区久久| 99精品桃花视频在线观看| 亚洲美女视频一区| 欧美另类久久久品| 麻豆精品一区二区| 26uuu欧美| av成人免费在线| 一区二区三区资源| 91精品久久久久久蜜臀| 九九九精品视频| 国产偷v国产偷v亚洲高清| 成人亚洲一区二区一| 亚洲人成影院在线观看| 欧美日韩另类国产亚洲欧美一级| 免费观看91视频大全| 国产午夜亚洲精品午夜鲁丝片| av福利精品导航| 亚洲综合丁香婷婷六月香| 日韩视频在线你懂得| 国产在线国偷精品产拍免费yy| 国产精品福利一区二区三区| 欧美日韩美女一区二区| 国产一区日韩二区欧美三区| 亚洲伦理在线精品| 日韩女优毛片在线| 成人毛片在线观看| 亚洲v日本v欧美v久久精品| 久久久久久久网| 欧美在线观看视频一区二区三区| 久久精品久久久精品美女| 国产精品美女一区二区| 欧美日韩国产综合一区二区| 国产精品456| 五月天亚洲婷婷| 久久久久99精品国产片| 欧美伊人久久久久久久久影院| 激情欧美日韩一区二区| 亚洲精品成a人| 久久免费国产精品| 欧美日韩精品一区视频| 粉嫩蜜臀av国产精品网站| 日韩主播视频在线| 国产精品国产三级国产普通话蜜臀| 777精品伊人久久久久大香线蕉| 国产精品1区二区.| 偷拍亚洲欧洲综合| 中文字幕在线免费不卡| 日韩欧美一区二区在线视频| 99精品一区二区| 国产美女视频91| 天堂在线一区二区| 亚洲人成电影网站色mp4| 久久久精品国产免大香伊| 制服丝袜亚洲精品中文字幕| 91在线播放网址| 国产盗摄女厕一区二区三区| 日本成人超碰在线观看|