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

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

?? pppbitsyncframing.c

?? 這是全套的PPP協(xié)議的源碼
?? C
?? 第 1 頁 / 共 3 頁
字號:
    }/******************************************************************************** pppBitSyncSend -*/LOCAL STATUS pppBitSyncSend    (    PFW_PLUGIN_OBJ_STATE *state,    M_BLK_ID * packet    )    {    register M_BLK_ID inPacket, outFrame;    M_BLK_ID endOfInPacket;    USHORT calculated16BitCkSum;    UINT32 calculated32BitCkSum;    char checksum[4] = {0,0,0,0};    char header[2];    UINT32 totalPacketLen = 0;    USHORT protocol;    BSYNC_FRAMING_STACK_DATA *stackData = 				(BSYNC_FRAMING_STACK_DATA *)state->stackData;    M_BLK pppHeader = {{NULL,NULL,NULL,2,MT_DATA,0,0},{NULL,0},NULL};    M_BLK pppCkSum  = {{NULL,NULL,NULL,2,MT_DATA,0,0},{NULL,0},NULL};    if (packet == NULL || (inPacket = *packet) == NULL)        {        RFC2233_COUNTER_UPDATE(stackData->pfwRFC2233CountTest, 				stackData->pfwRFC2233CountPair,                               M2_ctrId_ifOutErrors, 1);        return (ERROR);        }    else	endOfInPacket = inPacket;    pppHeader.mBlkHdr.mData = header;    pppCkSum.mBlkHdr.mData = checksum;    totalPacketLen = inPacket->mBlkPktHdr.len;    protocol = (USHORT)((inPacket->mBlkHdr.mData[0] << 8) |			inPacket->mBlkHdr.mData[1]);    /* check for Protocol compression */    if (stackData->localToPeerProtocolCompression == TRUE &&	inPacket->mBlkHdr.mData[0] == 0) /* first byte of protocol field == 0 */	{	inPacket->mBlkHdr.mData++;	inPacket->mBlkHdr.mLen--;        inPacket->mBlkPktHdr.len--;	totalPacketLen--;	}    /* check for Address and control field compression */    if ((protocol == LCP_PROTOCOL) ||	(stackData->localToPeerACCompression != TRUE))	{	header[0] = (char )PPP_ALLSTATIONS;	header[1] = PPP_UI;	/* header mBlk is now head of chain */	pppHeader.mBlkHdr.mNext = inPacket;	pppHeader.mBlkHdr.mFlags |= M_PKTHDR;	pppHeader.mBlkPktHdr.len = totalPacketLen + 2;	/* clear chain information from inPacket */	inPacket->mBlkPktHdr.len = 0;	inPacket->mBlkHdr.mFlags &= ~M_PKTHDR;	inPacket = &pppHeader;	totalPacketLen += 2;	}    if (stackData->transmitFcsSize == PPP_16BIT_FCS)	{	calculated16BitCkSum = calculate16BitFcs (PPPINITFCS16,inPacket);	calculated16BitCkSum = (USHORT) ~calculated16BitCkSum;	checksum[0] = calculated16BitCkSum & 0x00ff;	checksum[1] = (calculated16BitCkSum & 0xff00) >> 8;	/* find the end of the inPacket chain */	endOfInPacket = inPacket;	while(endOfInPacket->mBlkHdr.mNext != NULL)	    endOfInPacket = endOfInPacket->mBlkHdr.mNext;	/* link in the checksum bytes at the end of the chain */        pppCkSum.mBlkHdr.mLen = 2;	endOfInPacket->mBlkHdr.mNext = &pppCkSum;	inPacket->mBlkPktHdr.len +=2;	totalPacketLen += 2;	}    else if (stackData->transmitFcsSize == PPP_32BIT_FCS)	{	calculated32BitCkSum = calculate32BitFcs (PPPINITFCS32,inPacket);	calculated32BitCkSum ^= 0xffffffff;	checksum[0] = calculated32BitCkSum  & 0x00ff;	checksum[1] = (calculated32BitCkSum >>= 8) & 0x00ff;	checksum[2] = (calculated32BitCkSum >>= 8) & 0x00ff;	checksum[3] = (calculated32BitCkSum >>= 8) & 0x00ff;	/* find the end of the inPacket chain */	endOfInPacket = inPacket;	while(endOfInPacket->mBlkHdr.mNext != NULL)	    endOfInPacket = endOfInPacket->mBlkHdr.mNext;	/* link in the checksum bytes at the end of the chain */	pppCkSum.mBlkHdr.mLen = 4;	endOfInPacket->mBlkHdr.mNext = &pppCkSum;	inPacket->mBlkPktHdr.len +=4;	totalPacketLen += 4;	}    else if (stackData->transmitFcsSize != PPP_NULL_FCS)	{	netMblkClChainFree(*packet);        RFC2233_COUNTER_UPDATE(stackData->pfwRFC2233CountTest, 				stackData->pfwRFC2233CountPair,                               M2_ctrId_ifOutErrors, 1);	return ERROR;	}    /* allocate a new Mblk for the encoded frame */    if ((outFrame = netTupleGet(stackData->netPoolId,totalPacketLen,				    M_DONTWAIT, MT_DATA ,TRUE)) == NULL)	{	logMsg("BitSyncFraming:Failed to get encoded frame for StackObj 0x%x\n",		    (int)state->stackObj,2,3,4,5,6);	endOfInPacket->mBlkHdr.mNext = NULL;	netMblkClChainFree(*packet);        RFC2233_COUNTER_UPDATE(stackData->pfwRFC2233CountTest, 				stackData->pfwRFC2233CountPair,                               M2_ctrId_ifOutDiscards, 1);	return ERROR;	}    /* set Frame start flag */    outFrame->mBlkHdr.mData[0] = 0x7e;    outFrame->mBlkHdr.mLen = 1;    /* move past frame start and encode the PPP packet */    outFrame->mBlkHdr.mData++;    /* encode the header, payload and checksum */    if (convertNormalDataToSynchronousData (state,inPacket,outFrame) == ERROR)	{	netMblkClChainFree(outFrame);        endOfInPacket->mBlkHdr.mNext = NULL;        netMblkClChainFree(*packet);	return ERROR;	}    /*     * terminate original packet; strip reference to attached     * checksum mBlk if any     */    endOfInPacket->mBlkHdr.mNext = NULL;    /* free the original packet */    netMblkClChainFree(*packet);    /* point to the frame start byte in the out going frame */    outFrame->mBlkHdr.mData--;    outFrame->mBlkPktHdr.len++;    *packet = outFrame;    return (OK);    }/******************************************************************************** pppBitSyncReceive -*/LOCAL STATUS pppBitSyncReceive    (    PFW_PLUGIN_OBJ_STATE *state,    M_BLK_ID * packet    )    {    register M_BLK_ID inFrame, outPacket;    BSYNC_FRAMING_STACK_DATA *stackData = state->stackData;    USHORT calculated16BitCkSum;    UINT32 calculated32BitCkSum;    M_BLK_ID nextMblk;    int frameFlagsRemoved = 0;    int lengthOfEncodedData;    int sizeOfDecodedDataBuffer;    int decodedPktLen = 0;    PPP_LINK_STATUS_COUNTER_INCREMENT_INTERFACE * counterInterface = 		    (PPP_LINK_STATUS_COUNTER_INCREMENT_INTERFACE*)				stackData->pppLinkCounterInterface.interfaceObj;     if (packet == NULL || (inFrame = *packet) == NULL)        {        RFC2233_COUNTER_UPDATE(stackData->pfwRFC2233CountTest, 				stackData->pfwRFC2233CountPair,                               M2_ctrId_ifInErrors, 1);        return (ERROR);        }    /* move past the frame Begin flag */    while (inFrame != NULL && *(inFrame->mBlkHdr.mData) == 0x7e)	{	inFrame->mBlkHdr.mData++;	frameFlagsRemoved++;	if (--inFrame->mBlkHdr.mLen == 0)	    {	    if ((nextMblk = inFrame->mBlkHdr.mNext) != NULL)		{		nextMblk->mBlkHdr.mFlags |= M_PKTHDR;		nextMblk->mBlkPktHdr.len = 				(inFrame->mBlkPktHdr.len - frameFlagsRemoved);		netMblkClFree(inFrame);		inFrame = nextMblk;		}	    else		{		netMblkClChainFree(inFrame);		RFC2233_COUNTER_UPDATE(stackData->pfwRFC2233CountTest, 					stackData->pfwRFC2233CountPair,                                       M2_ctrId_ifInErrors, 1);		return ERROR;		}	    frameFlagsRemoved = 0;	    }	}    if (inFrame->mBlkHdr.mNext != NULL)	{	inFrame->mBlkPktHdr.len -= frameFlagsRemoved;	lengthOfEncodedData = inFrame->mBlkPktHdr.len;	}    else	lengthOfEncodedData = inFrame->mBlkHdr.mLen;    sizeOfDecodedDataBuffer = min(lengthOfEncodedData,inFrame->pClBlk->clSize);    /* allocate a new Mblk for the decoded frame and allow for decompression */    if ((outPacket = netTupleGet(stackData->netPoolId,	    sizeOfDecodedDataBuffer, M_DONTWAIT, MT_DATA ,TRUE)) == NULL)	{	logMsg("BitSyncFraming:Failed to get decoded frame for StackObj 0x%x\n",		    (int)state->stackObj,2,3,4,5,6);	netMblkClChainFree(inFrame);        RFC2233_COUNTER_UPDATE(stackData->pfwRFC2233CountTest, 				stackData->pfwRFC2233CountPair,                               M2_ctrId_ifOutDiscards, 1);	return ERROR;	}    else	{	/* do this because mBlkGet does not set mLen to zero */	outPacket->mBlkHdr.mLen  = 0;        outPacket->mBlkPktHdr.len = 0;	}    if (stackData->peerToLocalACCompression == TRUE)	outPacket->mBlkHdr.mData += 2;    if (stackData->peerToLocalProtocolCompression == TRUE)	outPacket->mBlkHdr.mData += 1;    /* decode the packet by removing all the stuffed (0) bits */    if ((decodedPktLen = convertSynchronousDataToNormalData(state,						inFrame,outPacket)) == 0)	{	netMblkClChainFree(inFrame);	netMblkClChainFree(outPacket);	return ERROR;	}    /* free received Frame */    netMblkClChainFree(*packet);    if (stackData->receiveFcsSize == PPP_16BIT_FCS)	{	/* find the end of the decoded packet chain; use inFrame as temp store*/	inFrame = outPacket;	while(inFrame->mBlkHdr.mNext != NULL)	    inFrame = inFrame->mBlkHdr.mNext;	/* Check the FCS */	calculated16BitCkSum = calculate16BitFcs(PPPINITFCS16, outPacket);	if (calculated16BitCkSum != PPPGOODFCS16)	    {	    (counterInterface->pppLinkStatusBadFCSsIncrement)(				    stackData->pppLinkCounterInterface.state);#ifdef PPP_DEBUG	    logMsg ("PPP: Error: Bad 16 Bit Checksum on Synchronous port \n",		    1,2,3,4,5,6);#endif /* PPP_DEBUG */	    netMblkClChainFree(outPacket);	    RFC2233_COUNTER_UPDATE(stackData->pfwRFC2233CountTest, 				    stackData->pfwRFC2233CountPair,                                   M2_ctrId_ifInErrors, 1);	    return (ERROR);	    }	/* update length on trailing mBlk-clBlk-cluster */	inFrame->mBlkHdr.mLen -= 2; /* Length of the FCS field */        inFrame->mBlkPktHdr.len -= 2;	}    else if (stackData->receiveFcsSize == PPP_32BIT_FCS)	{	/* find the end of the decoded packet chain; use inFrame as temp store*/	inFrame = outPacket;	while(inFrame->mBlkHdr.mNext != NULL)	    inFrame = inFrame->mBlkHdr.mNext;	/* Check the FCS */	calculated32BitCkSum = calculate32BitFcs(PPPINITFCS32, outPacket);	if (calculated32BitCkSum != PPPGOODFCS32)	    {	    (counterInterface->pppLinkStatusBadFCSsIncrement)(				    stackData->pppLinkCounterInterface.state);#ifdef PPP_DEBUG	    logMsg ("PPP: Error: Bad 32 Bit Checksum on Synchronous port \n",		    1,2,3,4,5,6);#endif /* PPP_DEBUG */	    netMblkClChainFree(outPacket);	    RFC2233_COUNTER_UPDATE(stackData->pfwRFC2233CountTest, 				    stackData->pfwRFC2233CountPair,                                   M2_ctrId_ifInErrors, 1);	    return (ERROR);	    }	/* update length on trailing mBlk-clBlk-cluster */	inFrame->mBlkHdr.mLen -= 4; /* Length of the FCS field */        inFrame->mBlkPktHdr.len -= 4;	}    else if (stackData->receiveFcsSize != PPP_NULL_FCS) /* NULL FCS */	{	netMblkClChainFree(outPacket);        RFC2233_COUNTER_UPDATE(stackData->pfwRFC2233CountTest, 				stackData->pfwRFC2233CountPair,                               M2_ctrId_ifInErrors, 1);	return ERROR;	}    if (decompress_ppp_header(state,outPacket) == ERROR)	{	netMblkClChainFree(outPacket);	return ERROR;	}    /* strip HDLC header */    outPacket->mBlkHdr.mData +=2;    outPacket->mBlkHdr.mLen -=2;    outPacket->mBlkPktHdr.len -=2;    *packet = outPacket;    return (OK);    }/******************************************************************************** decompress_ppp_header -*/LOCAL STATUS decompress_ppp_header     (    PFW_PLUGIN_OBJ_STATE *state,    M_BLK_ID	packet    )    {    UCHAR protocol_type_in_bytes[sizeof (USHORT_ENUM (PPP_PROTOCOL_TYPE))];    BOOL address_and_control_fields_are_compressed;    BOOL protocol_field_is_compressed;    _PPP_HEADER ppp_header;    BSYNC_FRAMING_STACK_DATA *stackData = state->stackData;    _PPP_PACKET *sptr_rxed_packet = (_PPP_PACKET *)packet->mBlkHdr.mData;    int lengthAdj;    USHORT_ENUM (PPP_PROTOCOL_TYPE) protocol_type;         if ((sptr_rxed_packet->header.hdlc_address == HDLC_ADDRESS) &&	(sptr_rxed_packet->header.hdlc_control == UNNUMBERED_INFORMATION) &&	(sptr_rxed_packet->header.protocol_type == LCP_PROTOCOL))	{

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
午夜精品久久久久久久久| 日韩国产精品久久| 久久精品在这里| 视频一区二区三区入口| 91福利在线观看| 国产女人aaa级久久久级| 男人的天堂亚洲一区| 7777精品伊人久久久大香线蕉超级流畅 | 国产女人aaa级久久久级| 黑人精品欧美一区二区蜜桃| 日韩欧美激情四射| 精品一区二区三区的国产在线播放| 91色视频在线| 亚洲一区二区三区美女| 91福利视频网站| 蜜臀av性久久久久av蜜臀妖精| 欧美一二三四在线| 国产一区日韩二区欧美三区| 国产日产欧美一区二区视频| 国产精品亚洲专一区二区三区| 国产精品久久看| 97se亚洲国产综合自在线观| 亚洲精品午夜久久久| 欧美日韩亚洲国产综合| 中文字幕在线观看不卡| 在线视频国产一区| 日韩在线一二三区| 久久亚洲精精品中文字幕早川悠里| 国产激情视频一区二区在线观看| 欧美韩日一区二区三区| 一本一道波多野结衣一区二区| 亚洲国产美女搞黄色| 精品日韩99亚洲| bt欧美亚洲午夜电影天堂| 亚洲激情校园春色| 欧美日韩成人综合| 麻豆精品一区二区| 欧美一区二区免费观在线| 色婷婷久久99综合精品jk白丝| 欧美性极品少妇| 亚洲精品一区二区精华| 国产精品网站在线观看| 亚洲欧洲成人精品av97| 午夜欧美视频在线观看| 大桥未久av一区二区三区中文| 99视频一区二区| 欧美成人性战久久| 亚洲高清免费观看高清完整版在线观看| 日本欧洲一区二区| 欧美日韩国产另类一区| 欧美激情综合五月色丁香 | 成人h动漫精品一区二区| 成人黄色软件下载| 久久婷婷色综合| 欧美极品少妇xxxxⅹ高跟鞋| 亚洲国产精品成人综合| 午夜电影久久久| 99视频在线观看一区三区| 国内精品伊人久久久久av一坑 | 884aa四虎影成人精品一区| 婷婷久久综合九色综合绿巨人| 中文在线一区二区| 在线播放中文一区| 欧美视频精品在线| 成人动漫中文字幕| 国产一区二区三区免费在线观看 | 天堂午夜影视日韩欧美一区二区| 在线91免费看| 亚洲精品视频自拍| 国产精品1区2区3区| 国产精品久久久久久久久搜平片| 奇米精品一区二区三区在线观看一 | 国产成人99久久亚洲综合精品| 美脚の诱脚舐め脚责91 | 国产午夜一区二区三区| 欧美二区在线观看| 色综合久久久久久久久久久| 国产乱国产乱300精品| 日韩电影在线一区二区| 亚洲精品日日夜夜| 国产精品色哟哟网站| 欧美成人综合网站| 99精品久久99久久久久| 国产精品资源在线| 精品一区二区免费看| 亚洲成人久久影院| 国产精品美女一区二区在线观看| 欧美成人一区二区三区在线观看 | 久久九九全国免费| 久久综合久久综合久久综合| 3751色影院一区二区三区| 色一区在线观看| 91浏览器打开| 95精品视频在线| aaa欧美色吧激情视频| 成人综合激情网| 色综合久久综合中文综合网| 色视频成人在线观看免| 欧美吻胸吃奶大尺度电影| av电影天堂一区二区在线观看| 福利91精品一区二区三区| 国产成人免费在线观看| 成人一二三区视频| av电影在线观看不卡| 成人激情免费网站| 色成人在线视频| 欧美色图免费看| 精品粉嫩aⅴ一区二区三区四区 | 久久免费美女视频| 日本一区二区三区dvd视频在线| 日本一区二区三区国色天香 | 91麻豆免费看| 欧洲日韩一区二区三区| 精品视频色一区| 6080午夜不卡| 中文字幕久久午夜不卡| 欧美一级片在线看| 欧美日韩精品一区二区天天拍小说| 男女激情视频一区| 国内外成人在线| 风间由美性色一区二区三区| 成人午夜精品一区二区三区| 91免费看片在线观看| 91麻豆123| 欧美一级免费大片| 精品国产髙清在线看国产毛片| 91精品国产欧美一区二区成人| 欧美日韩视频第一区| 7777精品伊人久久久大香线蕉经典版下载 | 美女视频一区二区| 亚洲aⅴ怡春院| 亚洲国产视频a| 91精品欧美久久久久久动漫| 日本不卡免费在线视频| 欧美日韩精品一区二区三区蜜桃| 日韩一级黄色片| 国产欧美中文在线| 亚洲国产精品欧美一二99| 国产在线一区观看| 在线看国产一区| 久久综合资源网| 精品国产亚洲在线| 亚洲一区二区三区四区五区黄| 久久99精品久久久久久久久久久久 | 99久久伊人网影院| 91色婷婷久久久久合中文| 欧美精品粉嫩高潮一区二区| 日韩欧美国产一区在线观看| 亚洲国产电影在线观看| 午夜精品国产更新| 日韩一级完整毛片| 欧美日韩在线播放一区| 一区二区三区成人| 久久久精品国产免大香伊| 日本美女一区二区| 日本电影亚洲天堂一区| 中文字幕av一区二区三区高 | 日韩一区二区精品葵司在线| 一区二区视频在线看| 国产大陆a不卡| 日韩免费高清av| 日韩av一区二区三区四区| 91高清在线观看| 亚洲欧美国产毛片在线| 国产69精品久久777的优势| 日韩一级完整毛片| 青草国产精品久久久久久| 在线观看一区二区精品视频| 一区二区在线看| 99久久免费精品高清特色大片| 久久综合久久久久88| 国产综合色视频| 日韩免费视频一区二区| 视频在线观看一区| 欧美日韩国产高清一区| 亚洲三级电影网站| 色老汉av一区二区三区| 欧美一二三四在线| 激情图片小说一区| 久久国产人妖系列| 日韩精品乱码av一区二区| 欧美日本国产视频| 丁香亚洲综合激情啪啪综合| 国产精品久久久久久久久搜平片| 欧美视频在线观看一区二区| 日韩中文字幕亚洲一区二区va在线| 精品久久久久久久久久久久包黑料| 视频一区视频二区中文字幕| 国模套图日韩精品一区二区| 国产精品久久久久久久久快鸭 | 久久这里都是精品| 毛片av一区二区| 国产午夜亚洲精品理论片色戒| 国产成人精品三级| 亚洲精品免费电影| 日韩午夜av电影| 成人在线视频一区| 3d成人h动漫网站入口| 欧美日韩亚洲不卡| 91福利国产成人精品照片|