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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? sanity.c

?? r73模塊的無線網卡在Linux下的驅動程序
?? C
?? 第 1 頁 / 共 3 頁
字號:
/*************************************************************************** * RT2x00 SourceForge Project - http://rt2x00.serialmonkey.com             * *                                                                         * *   This program is free software; you can redistribute it and/or modify  * *   it under the terms of the GNU General Public License as published by  * *   the Free Software Foundation; either version 2 of the License, or     * *   (at your option) any later version.                                   * *                                                                         * *   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.             * *                                                                         * *   Licensed under the GNU GPL                                            * *   Original code supplied under license from RaLink Inc, 2004.           * ***************************************************************************//*************************************************************************** *	Module Name:	sanity.c * *	Abstract: * *	Revision History: *	Who		When		What *	--------	----------	----------------------------- *	John Chang	2004-09-01	add WMM support * ***************************************************************************/#include "rt_config.h"#include <net/iw_handler.h>UCHAR	WPA_OUI[] = {0x00, 0x50, 0xf2, 0x01};UCHAR	RSN_OUI[] = {0x00, 0x0f, 0xac};UCHAR   WME_INFO_ELEM[]  = {0x00, 0x50, 0xf2, 0x02, 0x00, 0x01};UCHAR   WME_PARM_ELEM[] = {0x00, 0x50, 0xf2, 0x02, 0x01, 0x01};UCHAR   RALINK_OUI[]  = {0x00, 0x0c, 0x43};UCHAR   WSC_OUI[] = {0x00, 0x50, 0xf2, 0x04};/*    ==========================================================================    Description:        MLME message sanity check    Return:        TRUE if all parameters are OK, FALSE otherwise    ========================================================================== */BOOLEAN MlmeScanReqSanity(    IN PRTMP_ADAPTER pAd,    IN VOID *Msg,    IN ULONG MsgLen,    OUT UCHAR *pBssType,    OUT CHAR Ssid[],    OUT UCHAR *pSsidLen,    OUT UCHAR *pScanType){    MLME_SCAN_REQ_STRUCT *Info;    Info = (MLME_SCAN_REQ_STRUCT *)(Msg);    *pBssType = Info->BssType;    *pSsidLen = Info->SsidLen;    memcpy(Ssid, Info->Ssid, *pSsidLen);    *pScanType = Info->ScanType;    if ((*pBssType == BSS_INFRA || *pBssType == BSS_ADHOC || *pBssType == BSS_ANY) &&       (*pScanType == SCAN_ACTIVE || *pScanType == FAST_SCAN_ACTIVE || *pScanType == SCAN_PASSIVE))        return TRUE;    else    {        DBGPRINT(RT_DEBUG_TRACE, "MlmeScanReqSanity fail - wrong BssType or ScanType\n");        return FALSE;    }}/*    ==========================================================================    Description:        MLME message sanity check    Return:        TRUE if all parameters are OK, FALSE otherwise    ========================================================================== */BOOLEAN MlmeStartReqSanity(    IN PRTMP_ADAPTER pAd,    IN VOID *Msg,    IN ULONG MsgLen,    OUT CHAR Ssid[],    OUT UCHAR *pSsidLen){    MLME_START_REQ_STRUCT *Info;    Info = (MLME_START_REQ_STRUCT *)(Msg);    if (Info->SsidLen > MAX_LEN_OF_SSID)    {        DBGPRINT(RT_DEBUG_TRACE, "MlmeStartReqSanity fail - wrong SSID length\n");        return FALSE;    }    *pSsidLen = Info->SsidLen;    memcpy(Ssid, Info->Ssid, *pSsidLen);    return TRUE;}/*    ==========================================================================    Description:        MLME message sanity check    Return:        TRUE if all parameters are OK, FALSE otherwise    ========================================================================== */BOOLEAN MlmeAssocReqSanity(    IN PRTMP_ADAPTER pAd,    IN VOID *Msg,    IN ULONG MsgLen,    OUT PUCHAR pApAddr,    OUT USHORT *pCapabilityInfo,    OUT ULONG *pTimeout,    OUT USHORT *pListenIntv){    MLME_ASSOC_REQ_STRUCT *pInfo;    pInfo = (MLME_ASSOC_REQ_STRUCT *)Msg;    *pTimeout = pInfo->Timeout;                             // timeout    COPY_MAC_ADDR(pApAddr, pInfo->Addr);                   // AP address    *pCapabilityInfo = pInfo->CapabilityInfo;               // capability info    *pListenIntv = pInfo->ListenIntv;    return TRUE;}/*    ==========================================================================    Description:        MLME message sanity check    Return:        TRUE if all parameters are OK, FALSE otherwise    ========================================================================== */BOOLEAN MlmeAuthReqSanity(    IN PRTMP_ADAPTER pAd,    IN VOID *Msg,    IN ULONG MsgLen,    OUT PUCHAR pAddr,    OUT ULONG *pTimeout,    OUT USHORT *pAlg){    MLME_AUTH_REQ_STRUCT *pInfo;    pInfo  = (MLME_AUTH_REQ_STRUCT *)Msg;    COPY_MAC_ADDR(pAddr, pInfo->Addr);    *pTimeout = pInfo->Timeout;    *pAlg = pInfo->Alg;    if (((*pAlg == Ndis802_11AuthModeShared) ||(*pAlg == Ndis802_11AuthModeOpen)) &&        ((*pAddr & 0x01) == 0))    {        return TRUE;    }    else    {        DBGPRINT(RT_DEBUG_TRACE, "MlmeAuthReqSanity fail - wrong algorithm\n");        return FALSE;    }}/*    ==========================================================================    Description:        MLME message sanity check    Return:        TRUE if all parameters are OK, FALSE otherwise    ========================================================================== */BOOLEAN PeerAssocRspSanity(    IN PRTMP_ADAPTER pAd,    IN VOID *pMsg,    IN ULONG MsgLen,    OUT PUCHAR pAddr2,    OUT USHORT *pCapabilityInfo,    OUT USHORT *pStatus,    OUT USHORT *pAid,    OUT UCHAR SupRate[],    OUT UCHAR *pSupRateLen,    OUT UCHAR ExtRate[],    OUT UCHAR *pExtRateLen,    OUT PEDCA_PARM pEdcaParm){    CHAR          IeType, *Ptr;    PFRAME_802_11 pFrame = (PFRAME_802_11)pMsg;    PEID_STRUCT   pEid;	ULONG		  Length = 0;    COPY_MAC_ADDR(pAddr2, pFrame->Hdr.Addr2);    Ptr = pFrame->Octet;	Length += LENGTH_802_11;	*pCapabilityInfo = *(USHORT *)(&pFrame->Octet[0]);	Length += 2;	*pStatus = *(USHORT *)(&pFrame->Octet[2]);	Length += 2;    *pExtRateLen = 0;    pEdcaParm->bValid = FALSE;    if (*pStatus != MLME_SUCCESS)        return TRUE;	*pAid = *(USHORT *)(&pFrame->Octet[4]);	Length += 2;    // 	change Endian in RTMPFrameEndianChange() on big endian platform    //*pAid = le2cpu16(*pAid);    // TODO: check big endian issue &0x3fff    *pAid = (*pAid) & 0x3fff; // AID is low 14-bit    // -- get supported rates from payload and advance the pointer    IeType = pFrame->Octet[6];    *pSupRateLen = pFrame->Octet[7];    if ((IeType != IE_SUPP_RATES) || (*pSupRateLen > MAX_LEN_OF_SUPPORTED_RATES))    {        DBGPRINT(RT_DEBUG_TRACE, "PeerAssocRspSanity fail - wrong SupportedRates IE\n");        return FALSE;    }    else   		memcpy(SupRate, &pFrame->Octet[8], *pSupRateLen);	Length = Length + 2 + *pSupRateLen;    // many AP implement proprietary IEs in non-standard order, we'd better    // tolerate mis-ordered IEs to get best compatibility    pEid = (PEID_STRUCT) &pFrame->Octet[8 + (*pSupRateLen)];    // get variable fields from payload and advance the pointer	while ((Length + 2 + pEid->Len) <= MsgLen)    {        switch (pEid->Eid)        {            case IE_EXT_SUPP_RATES:                if (pEid->Len <= MAX_LEN_OF_SUPPORTED_RATES)                {                    memcpy(ExtRate, pEid->Octet, pEid->Len);                    *pExtRateLen = pEid->Len;                }                break;			case IE_VENDOR_SPECIFIC:                // handle WME PARAMTER ELEMENT                if (NdisEqualMemory(pEid->Octet, WME_PARM_ELEM, 6) && (pEid->Len == 24))                {                    PUCHAR ptr;                    int i;                    // parsing EDCA parameters                    pEdcaParm->bValid          = TRUE;                    pEdcaParm->bQAck           = FALSE; // pEid->Octet[0] & 0x10;                    pEdcaParm->bQueueRequest   = FALSE; // pEid->Octet[0] & 0x20;                    pEdcaParm->bTxopRequest    = FALSE; // pEid->Octet[0] & 0x40;                    //pEdcaParm->bMoreDataAck    = FALSE; // pEid->Octet[0] & 0x80;                    pEdcaParm->EdcaUpdateCount = pEid->Octet[6] & 0x0f;                    ptr = &pEid->Octet[8];                    for (i=0; i<4; i++)                    {                        UCHAR aci = (*ptr & 0x60) >> 5; // b5~6 is AC INDEX                        pEdcaParm->bACM[aci]  = (((*ptr) & 0x10) == 0x10);   // b5 is ACM                        pEdcaParm->Aifsn[aci] = (*ptr) & 0x0f;               // b0~3 is AIFSN                        pEdcaParm->Cwmin[aci] = *(ptr+1) & 0x0f;             // b0~4 is Cwmin                        pEdcaParm->Cwmax[aci] = *(ptr+1) >> 4;               // b5~8 is Cwmax                        pEdcaParm->Txop[aci]  = *(ptr+2) + 256 * (*(ptr+3)); // in unit of 32-us                        ptr += 4; // point to next AC                    }                }                break;#if 0            case IE_EDCA_PARAMETER:                if (pEid->Len == 18)                {                    PUCHAR ptr;                    int i;                    pEdcaParm->bValid          = TRUE;                    pEdcaParm->bQAck           = pEid->Octet[0] & 0x10;                    pEdcaParm->bQueueRequest   = pEid->Octet[0] & 0x20;                    pEdcaParm->bTxopRequest    = pEid->Octet[0] & 0x40;//                  pEdcaParm->bMoreDataAck    = pEid->Octet[0] & 0x80;                    pEdcaParm->EdcaUpdateCount = pEid->Octet[0] & 0x0f;                    ptr = &pEid->Octet[2];                    for (i=0; i<4; i++)                    {                        UCHAR aci = (*ptr & 0x60) >> 5; // b5~6 is AC INDEX                        pEdcaParm->bACM[aci]  = (((*ptr) & 0x10) == 0x10);   // b5 is ACM                        pEdcaParm->Aifsn[aci] = (*ptr) & 0x0f;               // b0~3 is AIFSN                        pEdcaParm->Cwmin[aci] = *(ptr+1) & 0x0f;             // b0~4 is Cwmin                        pEdcaParm->Cwmax[aci] = *(ptr+1) >> 4;               // b5~8 is Cwmax                        pEdcaParm->Txop[aci]  = *(ptr+2) + 256 * (*(ptr+3)); // in unit of 32-us                        ptr += 4; // point to next AC                    }                }                break;#endif            default:                DBGPRINT(RT_DEBUG_TRACE, "PeerAssocRspSanity - ignore unrecognized EID = %d\n", pEid->Eid);                break;        }		Length = Length + 2 + pEid->Len;        pEid = (PEID_STRUCT)((UCHAR*)pEid + 2 + pEid->Len);    }    return TRUE;}/*    ==========================================================================    Description:        MLME message sanity check    Return:        TRUE if all parameters are OK, FALSE otherwise    ========================================================================== */BOOLEAN PeerDisassocSanity(    IN PRTMP_ADAPTER pAd,    IN VOID *Msg,    IN ULONG MsgLen,    OUT PUCHAR pAddr2,    OUT USHORT *pReason){    PFRAME_802_11 pFrame = (PFRAME_802_11)Msg;    COPY_MAC_ADDR(pAddr2, pFrame->Hdr.Addr2);	*pReason = *(USHORT *)(&pFrame->Octet[0]);    return TRUE;}/*    ==========================================================================    Description:        MLME message sanity check    Return:        TRUE if all parameters are OK, FALSE otherwise    ========================================================================== */BOOLEAN PeerDeauthSanity(    IN PRTMP_ADAPTER pAd,    IN VOID *Msg,    IN ULONG MsgLen,    OUT PUCHAR pAddr2,    OUT USHORT *pReason){    PFRAME_802_11 pFrame = (PFRAME_802_11)Msg;    COPY_MAC_ADDR(pAddr2, pFrame->Hdr.Addr2);	*pReason = *(USHORT *)(&pFrame->Octet[0]);    return TRUE;}/*    ==========================================================================    Description:        MLME message sanity check    Return:        TRUE if all parameters are OK, FALSE otherwise    ========================================================================== */BOOLEAN PeerAuthSanity(    IN PRTMP_ADAPTER pAd,    IN VOID *Msg,    IN ULONG MsgLen,    OUT PUCHAR pAddr,    OUT USHORT *pAlg,    OUT USHORT *pSeq,    OUT USHORT *pStatus,    CHAR *pChlgText){    PFRAME_802_11 pFrame = (PFRAME_802_11)Msg;    COPY_MAC_ADDR(pAddr,   pFrame->Hdr.Addr2);	*pAlg = *(USHORT *)(&pFrame->Octet[0]);	*pSeq = *(USHORT *)(&pFrame->Octet[2]);	*pStatus = *(USHORT *)(&pFrame->Octet[4]);    if (*pAlg == Ndis802_11AuthModeOpen)    {        if (*pSeq == 1 || *pSeq == 2)        {            return TRUE;        }        else        {            DBGPRINT(RT_DEBUG_TRACE, "PeerAuthSanity fail - wrong Seg#\n");            return FALSE;        }    }    else if (*pAlg == Ndis802_11AuthModeShared)    {        if (*pSeq == 1 || *pSeq == 4)        {            return TRUE;        }        else if (*pSeq == 2 || *pSeq == 3)        {            memcpy(pChlgText, &pFrame->Octet[8], CIPHER_TEXT_LEN);            return TRUE;        }        else        {            DBGPRINT(RT_DEBUG_TRACE, "PeerAuthSanity fail - wrong Seg#\n");            return FALSE;        }    }    else    {        DBGPRINT(RT_DEBUG_TRACE, "PeerAuthSanity fail - wrong algorithm\n");        return FALSE;    }}/*    ==========================================================================    Description:        MLME message sanity check    Return:        TRUE if all parameters are OK, FALSE otherwise    ========================================================================== */BOOLEAN PeerProbeReqSanity(    IN PRTMP_ADAPTER pAd,    IN VOID *Msg,    IN ULONG MsgLen,    OUT PUCHAR pAddr2,    OUT CHAR Ssid[],    OUT UCHAR *pSsidLen){    UCHAR         Idx;	UCHAR	      RateLen;	CHAR          IeType;    PFRAME_802_11 pFrame = (PFRAME_802_11)Msg;    COPY_MAC_ADDR(pAddr2, pFrame->Hdr.Addr2);    if ((pFrame->Octet[0] != IE_SSID) || (pFrame->Octet[1] > MAX_LEN_OF_SSID))    {        DBGPRINT(RT_DEBUG_TRACE, "PeerProbeReqSanity fail - wrong SSID IE(Type=%d,Len=%d)\n",pFrame->Octet[0],pFrame->Octet[1]);        return FALSE;    }    *pSsidLen = pFrame->Octet[1];    memcpy(Ssid, &pFrame->Octet[2], *pSsidLen);    Idx = *pSsidLen + 2;	// -- get supported rates from payload and advance the pointer	IeType = pFrame->Octet[Idx];	RateLen = pFrame->Octet[Idx + 1];	if (IeType != IE_SUPP_RATES)    {        DBGPRINT(RT_DEBUG_TRACE, "PeerProbeReqSanity fail - wrong SupportRates IE(Type=%d,Len=%d)\n",pFrame->Octet[Idx],pFrame->Octet[Idx+1]);        return FALSE;    }	else	{

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美日韩亚洲国产综合| 在线免费一区三区| 高清不卡在线观看| www.日本不卡| 欧美日韩五月天| 精品国产乱码久久久久久久久| 日韩欧美电影一区| 国产精品久久久久久久久免费丝袜 | 在线播放中文一区| 国产欧美中文在线| 亚洲午夜电影在线观看| 国产一区二区不卡| 欧美丝袜自拍制服另类| 久久这里都是精品| 亚洲国产精品久久久久婷婷884| 精品一区二区免费看| 色综合久久中文字幕综合网| 日韩欧美色电影| 亚洲777理论| 色婷婷精品大在线视频 | 久久97超碰色| 欧美三级视频在线观看| av激情成人网| 精品三级在线看| 天天综合天天做天天综合| av一二三不卡影片| 欧美极品xxx| 国产成人免费av在线| 日韩一级黄色大片| 日本不卡在线视频| 欧美丰满少妇xxxbbb| 欧美国产精品久久| 国产经典欧美精品| 色婷婷久久久综合中文字幕| 国产视频一区在线播放| 韩国理伦片一区二区三区在线播放| 欧美色图激情小说| 午夜激情一区二区| 精品三级av在线| 国产精品一级黄| 国产精品久99| 国产99久久精品| 国产精品动漫网站| 欧美午夜电影在线播放| 午夜久久久影院| 久久综合五月天婷婷伊人| 丁香婷婷综合激情五月色| 亚洲欧洲一区二区在线播放| 色婷婷av一区二区三区大白胸 | 日本不卡一区二区三区| 日韩欧美在线一区二区三区| 国产精品一区在线观看你懂的| 久久综合精品国产一区二区三区| 精品一区二区久久久| 亚洲综合视频网| 2023国产精华国产精品| 欧美在线你懂的| 国产91在线观看| 日本亚洲视频在线| 亚洲美女在线一区| 亚洲精品一线二线三线无人区| 91影视在线播放| 国产成人亚洲精品狼色在线| 亚洲综合在线五月| 中文字幕综合网| 久久网这里都是精品| 67194成人在线观看| 91色porny| 99久久国产免费看| 国产suv精品一区二区883| 久久99精品久久久久久| 日韩精品色哟哟| 天堂影院一区二区| 亚洲成在线观看| 亚洲高清不卡在线观看| 亚洲综合一区二区精品导航| 中文字幕免费观看一区| 国产亚洲精品bt天堂精选| 日韩丝袜情趣美女图片| 91.xcao| 欧美va亚洲va香蕉在线| 3d成人动漫网站| 久久网站热最新地址| 欧美mv日韩mv国产网站| 久久视频一区二区| 亚洲欧美在线视频观看| 18涩涩午夜精品.www| 亚洲精品高清在线观看| 蜜乳av一区二区三区| 狠狠狠色丁香婷婷综合久久五月| 国产一区二区伦理片| 99在线精品观看| 欧美精品日韩一本| 久久美女高清视频| 亚洲精品va在线观看| 日本美女一区二区三区| 成人av资源在线观看| 欧美日韩一区久久| 亚洲国产经典视频| 香蕉乱码成人久久天堂爱免费| 韩国视频一区二区| 欧美色大人视频| 国产亚洲欧美日韩俺去了| 亚洲午夜日本在线观看| 国内精品免费在线观看| 91福利视频网站| 国产欧美一区二区在线观看| 秋霞国产午夜精品免费视频| 成人动漫在线一区| 欧美变态tickle挠乳网站| 亚洲精选视频免费看| 国产一区二区免费看| 这里只有精品99re| 亚洲综合一区二区| 91女神在线视频| 国产精品久久久久9999吃药| 国产精品一品视频| 久久嫩草精品久久久精品| 热久久一区二区| 日韩欧美一级二级| 美女视频黄 久久| 欧美一区在线视频| 免费观看91视频大全| 91精品国产色综合久久久蜜香臀| 亚洲精品视频一区| 在线一区二区三区做爰视频网站| 中文字幕亚洲不卡| 97久久精品人人爽人人爽蜜臀| 中文字幕av一区二区三区| 国产91丝袜在线播放| 国产精品美日韩| 色老汉一区二区三区| 亚洲午夜电影在线| 欧美一区二区女人| 国产精品一区二区三区四区| 国产精品麻豆网站| 欧美日韩一区三区四区| 九九视频精品免费| 国产精品久久久久久久久久免费看 | 国产在线国偷精品产拍免费yy| 久久亚洲综合色| 色婷婷av久久久久久久| 久久精品国产久精国产| 中文字幕在线观看不卡视频| 欧美色综合天天久久综合精品| a4yy欧美一区二区三区| 亚洲伦在线观看| 久久成人av少妇免费| 中文字幕日本乱码精品影院| 欧美性大战久久久久久久蜜臀| 日韩国产精品91| 亚洲免费在线观看视频| 欧美一区二区三区成人| 色8久久精品久久久久久蜜| 狠狠狠色丁香婷婷综合激情 | 99久久久精品免费观看国产蜜| 亚洲一区二区三区四区在线观看| 欧美大尺度电影在线| 色婷婷久久99综合精品jk白丝| 国产激情一区二区三区| 奇米在线7777在线精品 | 91在线观看地址| 高清不卡在线观看av| 久久电影网站中文字幕| 日韩在线观看一区二区| 一区二区三区在线免费视频| 国产婷婷色一区二区三区| 欧美久久一二区| 欧美久久一二三四区| 欧美精品aⅴ在线视频| 欧洲日韩一区二区三区| 色婷婷亚洲一区二区三区| 91麻豆免费看片| 欧美日韩精品三区| 欧美夫妻性生活| 精品第一国产综合精品aⅴ| 欧美电影在哪看比较好| 666欧美在线视频| 精品国产亚洲一区二区三区在线观看| 欧美高清你懂得| 久久精品综合网| 综合欧美亚洲日本| 亚洲123区在线观看| 奇米在线7777在线精品 | 欧美tickling挠脚心丨vk| 久久综合久久综合久久综合| 日韩亚洲欧美综合| 国产精品亲子乱子伦xxxx裸| 亚洲美女免费视频| 免费成人美女在线观看.| 国产精品77777| 欧美日韩国产在线播放网站| 精品久久人人做人人爱| 一区视频在线播放| 日韩国产高清在线| 在线观看三级视频欧美| 精品国一区二区三区| 亚洲国产中文字幕| 成人黄色在线网站| 久久综合999|