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

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

?? sanity.c

?? 臺灣RALink公司的 rt2570無線 802.11g 網卡的 驅動的源代碼 ,支持linux2.4以上的 內河
?? C
?? 第 1 頁 / 共 2 頁
字號:
/*
 ***************************************************************************
 * Ralink Tech Inc.
 * 4F, No. 2 Technology 5th Rd.
 * Science-based Industrial Park
 * Hsin-chu, Taiwan, R.O.C.
 *
 * (c) Copyright 2002-2004, Ralink Technology, Inc.
 *
 * 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.             * 
 *                                                                       * 
 ************************************************************************
	Module Name:
	sanityc

	Abstract:

	Revision History:
	Who			When			What
	--------	----------		----------------------------------------------
	Name		Date			Modification logs
	Jan Lee		2005-06-01		Release
*/
#include "rt_config.h"

UCHAR	WPA_OUI[] = {0x00, 0x50, 0xf2, 0x01};
UCHAR	RSN_OUI[] = {0x00, 0x0f, 0xac};

extern 	UCHAR	BCAST[];

/* 
    ==========================================================================
    Description:
        MLME message sanity check
    Return:
        TRUE if all parameters are OK, FALSE otherwise
    ==========================================================================
 */
BOOLEAN MlmeScanReqSanity(
    IN PRT2570ADAPTER pAd, 
    IN VOID *Msg, 
    IN ULONG MsgLen, 
    OUT UCHAR *BssType, 
    OUT CHAR Ssid[], 
    OUT UCHAR *SsidLen, 
    OUT UCHAR *ScanType) 
{
    MLME_SCAN_REQ_STRUCT *Info;
    
    Info = (MLME_SCAN_REQ_STRUCT *)(Msg);
    *BssType = Info->BssType;
    *SsidLen = Info->SsidLen;
    NdisMoveMemory(Ssid, Info->Ssid, *SsidLen);
    *ScanType = Info->ScanType;
    
    if ((*BssType == BSS_INFRA || *BssType == BSS_INDEP || *BssType == BSS_ANY) &&
       (*ScanType == SCAN_ACTIVE || *ScanType == 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 PRT2570ADAPTER pAd, 
    IN VOID *Msg, 
    IN ULONG MsgLen, 
    OUT CHAR Ssid[], 
    OUT UCHAR *SsidLen) 
{
    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;
    }

    *SsidLen = Info->SsidLen;
    NdisMoveMemory(Ssid, Info->Ssid, *SsidLen);

    return TRUE;
}

/* 
    ==========================================================================
    Description:
        MLME message sanity check
    Return:
        TRUE if all parameters are OK, FALSE otherwise
        
	IRQL = DISPATCH_LEVEL

    ==========================================================================
 */
BOOLEAN MlmeAssocReqSanity(
    IN PRT2570ADAPTER pAd, 
    IN VOID *Msg, 
    IN ULONG MsgLen, 
    OUT MACADDR *ApAddr, 
    OUT USHORT *CapabilityInfo, 
    OUT ULONG *Timeout, 
    OUT USHORT *ListenIntv) 
{
    MLME_ASSOC_REQ_STRUCT *Info;

    Info = (MLME_ASSOC_REQ_STRUCT *)Msg;
    *Timeout = Info->Timeout;                             // timeout
    COPY_MAC_ADDR(ApAddr, &Info->Addr);                   // AP address
    *CapabilityInfo = Info->CapabilityInfo;               // capability info
    *ListenIntv = Info->ListenIntv;
    
    return TRUE;
}

/* 
    ==========================================================================
    Description:
        MLME message sanity check
    Return:
        TRUE if all parameters are OK, FALSE otherwise
    ==========================================================================
 */
BOOLEAN MlmeAuthReqSanity(
    IN PRT2570ADAPTER pAd, 
    IN VOID *Msg, 
    IN ULONG MsgLen, 
    OUT MACADDR *Addr, 
    OUT ULONG *Timeout, 
    OUT USHORT *Alg) 
{
    MLME_AUTH_REQ_STRUCT *Info;

    Info  = (MLME_AUTH_REQ_STRUCT *)Msg;
    COPY_MAC_ADDR(Addr, &Info->Addr);
    *Timeout = Info->Timeout;
    *Alg = Info->Alg;
    
    if ((*Alg == Ndis802_11AuthModeShared || *Alg == Ndis802_11AuthModeOpen) && !MAC_ADDR_IS_GROUP(*Addr)) 
    {
        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
        
	IRQL = DISPATCH_LEVEL

    ==========================================================================
 */
BOOLEAN PeerAssocRspSanity(
    IN PRT2570ADAPTER pAd, 
    IN VOID *Msg, 
    IN ULONG MsgLen, 
    OUT MACADDR *Addr2, 
    OUT USHORT *CapabilityInfo, 
    OUT USHORT *Status, 
    OUT USHORT *Aid, 
    OUT UCHAR Rates[], 
    OUT UCHAR *RatesLen,
    OUT BOOLEAN *ExtendedRateIeExist) 
{
    CHAR          IeType, *Ptr;
    MACFRAME     *Fr = (MACFRAME *)Msg;
    PBEACON_EID_STRUCT	eid_ptr;
    
    COPY_MAC_ADDR(Addr2, &Fr->Hdr.Addr2);
    Ptr = Fr->Octet;
        
    NdisMoveMemory(CapabilityInfo, &Fr->Octet[0], 2);
    NdisMoveMemory(Status,         &Fr->Octet[2], 2);
	// Mask out unnecessary capability information
	*CapabilityInfo &= SUPPORTED_CAPABILITY_INFO;
    
    if (*Status == MLME_SUCCESS) 
    {
        NdisMoveMemory(Aid, &Fr->Octet[4], 2);
        *Aid = (*Aid) & 0x3fff; // AID is low 14-bit
        
        // -- get supported rates from payload and advance the pointer
        IeType = Fr->Octet[6];
        *RatesLen = Fr->Octet[7];
        if ((IeType != IE_SUPP_RATES) || (*RatesLen > MAX_LEN_OF_SUPPORTED_RATES))
        {
            DBGPRINT(RT_DEBUG_TRACE, "PeerAssocRspSanity fail - wrong SupportedRates IE\n");
            return FALSE;
        } 
        else 
       		NdisMoveMemory(Rates, &Fr->Octet[8], *RatesLen);

        // many AP implement proprietary IEs in non-standard order, we'd better
        // tolerate mis-ordered IEs to get best compatibility
        *ExtendedRateIeExist = FALSE;
        eid_ptr = (PBEACON_EID_STRUCT) &Fr->Octet[8 + (*RatesLen)];
            
        // get variable fields from payload and advance the pointer
        while (((UCHAR*)eid_ptr + eid_ptr->Len + 1) < ((UCHAR*)Fr + MsgLen))
        {
            switch (eid_ptr->Eid)
            {
                case IE_EXT_SUPP_RATES:
                    *ExtendedRateIeExist = TRUE;
                    if ((*RatesLen + eid_ptr->Len) <= MAX_LEN_OF_SUPPORTED_RATES)
                    {
                        NdisMoveMemory(&Rates[*RatesLen], eid_ptr->Octet, eid_ptr->Len);
                        *RatesLen = (*RatesLen) + eid_ptr->Len;
                    }
                    else
                    {
                        NdisMoveMemory(&Rates[*RatesLen], eid_ptr->Octet, MAX_LEN_OF_SUPPORTED_RATES - (*RatesLen));
                        *RatesLen = MAX_LEN_OF_SUPPORTED_RATES;
                    }
                    break;
                default:
                    DBGPRINT(RT_DEBUG_TRACE, "PeerAssocRspSanity - ignore unrecognized EID = %d\n", eid_ptr->Eid);
                    break;
            }
                   
            eid_ptr = (PBEACON_EID_STRUCT)((UCHAR*)eid_ptr + 2 + eid_ptr->Len);        
        }
    }
    
    return TRUE;
}

/* 
    ==========================================================================
    Description:
        MLME message sanity check
    Return:
        TRUE if all parameters are OK, FALSE otherwise
        
	IRQL = DISPATCH_LEVEL

    ==========================================================================
 */
BOOLEAN PeerDisassocSanity(
    IN PRT2570ADAPTER pAd, 
    IN VOID *Msg, 
    IN ULONG MsgLen, 
    OUT MACADDR *Addr2, 
    OUT USHORT *Reason) 
{
    MACFRAME *Fr = (MACFRAME *)Msg;

    COPY_MAC_ADDR(Addr2, &Fr->Hdr.Addr2);
    NdisMoveMemory(Reason, &Fr->Octet[0], 2);

    return TRUE;
}

/* 
    ==========================================================================
    Description:
        MLME message sanity check
    Return:
        TRUE if all parameters are OK, FALSE otherwise
        
	IRQL = DISPATCH_LEVEL

    ==========================================================================
 */
BOOLEAN PeerDeauthSanity(
    IN PRT2570ADAPTER pAd, 
    IN VOID *Msg, 
    IN ULONG MsgLen, 
    OUT MACADDR *Addr2, 
    OUT USHORT *Reason) 
{
    MACFRAME *Fr = (MACFRAME *)Msg;

    COPY_MAC_ADDR(Addr2, &Fr->Hdr.Addr2);
    NdisMoveMemory(Reason, &Fr->Octet[0], 2);

    return TRUE;
}

/* 
    ==========================================================================
    Description:
        MLME message sanity check
    Return:
        TRUE if all parameters are OK, FALSE otherwise
        
	IRQL = DISPATCH_LEVEL

    ==========================================================================
 */
BOOLEAN PeerAuthSanity(
    IN PRT2570ADAPTER pAd, 
    IN VOID *Msg, 
    IN ULONG MsgLen, 
    OUT MACADDR *Addr, 
    OUT USHORT *Alg, 
    OUT USHORT *Seq, 
    OUT USHORT *Status, 
    CHAR *ChlgText) 
{
    MACFRAME     *Fr = (MACFRAME *)Msg;

    COPY_MAC_ADDR(Addr,    &Fr->Hdr.Addr2);
    NdisMoveMemory(Alg,    &Fr->Octet[0], 2);
    NdisMoveMemory(Seq,    &Fr->Octet[2], 2);
    NdisMoveMemory(Status, &Fr->Octet[4], 2);

    if (*Alg == Ndis802_11AuthModeOpen) 
    {
        if (*Seq == 1 || *Seq == 2) 
        {
            return TRUE;
        } 
        else 
        {
            DBGPRINT(RT_DEBUG_TRACE, "PeerAuthSanity fail - wrong Seg#\n");
            return FALSE;
        }
    } 
    else if (*Alg == Ndis802_11AuthModeShared) 
    {
        if (*Seq == 1 || *Seq == 4) 
        {
            return TRUE;
        } 
        else if (*Seq == 2 || *Seq == 3) 
        {
            NdisMoveMemory(ChlgText, &Fr->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
        
	IRQL = DISPATCH_LEVEL

    ==========================================================================
 */
BOOLEAN PeerProbeReqSanity(
    IN PRT2570ADAPTER pAd, 
    IN VOID *Msg, 
    IN ULONG MsgLen, 
    OUT MACADDR *Addr2,
    OUT CHAR Ssid[], 
    OUT UCHAR *SsidLen) 
//    OUT UCHAR Rates[], 
//    OUT UCHAR *RatesLen) 
{
    UCHAR Idx;
	UCHAR	RateLen;
	CHAR          IeType;
    MACFRAME *Fr = (MACFRAME *)Msg;

    COPY_MAC_ADDR(Addr2, &Fr->Hdr.Addr2);

    if ((Fr->Octet[0] != IE_SSID) || (Fr->Octet[1] > MAX_LEN_OF_SSID)) 
    {
        DBGPRINT(RT_DEBUG_TRACE, "PeerProbeReqSanity fail - wrong SSID IE(Type=%d,Len=%d)\n",Fr->Octet[0],Fr->Octet[1]);
        return FALSE;
    } 
    
    *SsidLen = Fr->Octet[1];
    NdisMoveMemory(Ssid, &Fr->Octet[2], *SsidLen);

    Idx = *SsidLen + 2;

	// -- get supported rates from payload and advance the pointer
	IeType = Fr->Octet[Idx];
	RateLen = Fr->Octet[Idx + 1];
	if (IeType != IE_SUPP_RATES) 
    {
        DBGPRINT(RT_DEBUG_TRACE, "PeerProbeReqSanity fail - wrong SupportRates IE(Type=%d,Len=%d)\n",Fr->Octet[Idx],Fr->Octet[Idx+1]);
        return FALSE;
    }
	else
	{
		if ((pAd->PortCfg.AdhocMode == 2) && (RateLen < 8))
			return (FALSE);
	}

    return TRUE;
}

/* 
    ==========================================================================
    Description:
        MLME message sanity check
    Return:
        TRUE if all parameters are OK, FALSE otherwise
        
	IRQL = DISPATCH_LEVEL

    ==========================================================================
 */
BOOLEAN PeerBeaconAndProbeRspSanity(
    IN PRT2570ADAPTER pAd, 
    IN VOID *Msg, 
    IN ULONG MsgLen, 
    OUT MACADDR *Addr2, 
    OUT MACADDR *Bssid, 
    OUT CHAR Ssid[], 
    OUT UCHAR *SsidLen, 
    OUT UCHAR *BssType, 
    OUT USHORT *BeaconPeriod, 
    OUT UCHAR *Channel, 
    OUT LARGE_INTEGER *Timestamp, 
    OUT BOOLEAN *CfExist, 
    OUT CF_PARM *CfParm, 
    OUT USHORT *AtimWin, 
    OUT USHORT *CapabilityInfo, 
    OUT UCHAR Rate[], 
    OUT UCHAR *RateLen,
    OUT BOOLEAN *ExtendedRateIeExist,
    OUT UCHAR *Erp,
    OUT UCHAR *DtimCount, 
    OUT UCHAR *DtimPeriod, 
    OUT UCHAR *BcastFlag, 
    OUT UCHAR *MessageToMe, 
    OUT UCHAR *Legacy,
    OUT UCHAR SupRate[],
	OUT UCHAR *SupRateLen,
	OUT UCHAR ExtRate[],
	OUT UCHAR *ExtRateLen,
    OUT UCHAR *LengthVIE,
    OUT	PNDIS_802_11_VARIABLE_IEs pVIE) 
{
    CHAR				*Ptr, TimLen;
    MACFRAME			*Fr;
    PBEACON_EID_STRUCT	eid_ptr;
    UCHAR				SubType;

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美色成人综合| 国产欧美一区二区精品久导航| 国产精品美女www爽爽爽| 成人一区二区视频| 日韩成人精品在线观看| 亚洲视频在线一区二区| 99久久精品免费看国产| 亚洲天堂福利av| 欧洲色大大久久| 日韩国产欧美在线观看| 精品久久久久99| 日本伦理一区二区| 亚洲国产视频在线| 91精品国产手机| 国产大片一区二区| 亚洲黄色小说网站| 宅男噜噜噜66一区二区66| 精品系列免费在线观看| 国产精品久久久久影院亚瑟| 欧洲av在线精品| 国产在线观看免费一区| 亚洲精品久久久久久国产精华液| 欧美日韩国产综合视频在线观看| 久久国产精品99久久人人澡| 中文字幕乱码亚洲精品一区| 精品1区2区3区| 国产精品69毛片高清亚洲| 一区2区3区在线看| 久久久噜噜噜久久中文字幕色伊伊 | 亚洲精品国产品国语在线app| 欧美日韩午夜在线| 国产河南妇女毛片精品久久久| 亚洲人成亚洲人成在线观看图片| 欧美日本精品一区二区三区| 国产成人自拍网| 亚洲18女电影在线观看| 国产目拍亚洲精品99久久精品| 欧美日韩免费在线视频| 成人a级免费电影| 蜜臀av在线播放一区二区三区| 国产精品不卡在线| 日韩一区二区三区电影在线观看| 一本到高清视频免费精品| 精品亚洲欧美一区| 亚洲国产欧美在线人成| 国产精品麻豆欧美日韩ww| 在线不卡a资源高清| 不卡av免费在线观看| 精品一区二区综合| 亚洲一区二区三区国产| 国产精品精品国产色婷婷| 精品少妇一区二区三区在线播放| 在线看国产日韩| 成人涩涩免费视频| 国产一区日韩二区欧美三区| 亚洲狠狠爱一区二区三区| 国产精品视频一二| 精品国产一区二区国模嫣然| 蜜桃av噜噜一区| 精品视频1区2区3区| 粉嫩aⅴ一区二区三区四区五区| 亚洲chinese男男1069| 国产精品福利一区二区三区| 精品久久久久久久久久久久久久久 | 久久99九九99精品| 亚洲va欧美va天堂v国产综合| 亚洲欧洲韩国日本视频| 国产欧美综合在线观看第十页| 日韩一区二区高清| 这里是久久伊人| 91精品婷婷国产综合久久性色 | 91日韩在线专区| 东方aⅴ免费观看久久av| 国产在线精品国自产拍免费| 免费观看91视频大全| 亚洲成人av资源| 午夜久久久久久| 五月婷婷久久丁香| 日韩精品亚洲一区二区三区免费| 一区二区免费在线| 一区二区在线观看视频| 亚洲色图视频网| 亚洲精品免费看| 一区二区三区国产精品| 亚洲妇熟xx妇色黄| 午夜精品视频在线观看| 亚洲国产乱码最新视频 | av电影在线观看不卡| 国产成人精品1024| 成人精品一区二区三区中文字幕| 成人免费三级在线| 成人小视频免费在线观看| caoporn国产一区二区| 99re免费视频精品全部| 色偷偷成人一区二区三区91 | 自拍av一区二区三区| 亚洲另类在线视频| 亚洲第一在线综合网站| 免费日韩伦理电影| 国产精品18久久久久久久久久久久| 国产成人aaa| 色香蕉久久蜜桃| 欧美一区二区三区爱爱| 久久久综合网站| 亚洲视频资源在线| 视频精品一区二区| 国产一区二区三区四区五区美女| 成人激情小说网站| 欧美午夜寂寞影院| 欧美大片日本大片免费观看| 国产精品丝袜久久久久久app| 又紧又大又爽精品一区二区| 免费精品99久久国产综合精品| 国产黄色成人av| 欧美日韩午夜精品| 国产欧美日本一区视频| 亚洲一区视频在线| 国产精品538一区二区在线| 91天堂素人约啪| 日韩精品一区二| 一区二区三区欧美日韩| 精品一区二区三区欧美| 色婷婷av一区二区| 精品成人在线观看| 亚洲午夜精品在线| 国产很黄免费观看久久| 欧美日韩综合在线| 国产女人18水真多18精品一级做 | 丝袜脚交一区二区| 国产91色综合久久免费分享| 欧美日韩成人综合在线一区二区| 久久精品人人爽人人爽| 亚洲国产精品一区二区www | 91色婷婷久久久久合中文| 日韩免费在线观看| 亚洲bt欧美bt精品777| 成人午夜电影网站| 日韩欧美亚洲国产另类| 一区二区三区91| 丁香另类激情小说| 欧美一级在线视频| 91福利视频网站| 精品日韩一区二区三区| 亚洲国产精品一区二区www在线| 成人亚洲精品久久久久软件| 日韩一级在线观看| 亚洲电影在线播放| 91污在线观看| 国产精品初高中害羞小美女文| 极品尤物av久久免费看| 国产喷白浆一区二区三区| 另类中文字幕网| 欧美日韩免费在线视频| 亚洲麻豆国产自偷在线| 国产成人免费9x9x人网站视频| 欧美一级电影网站| 天堂va蜜桃一区二区三区漫画版| 色综合中文字幕国产 | 亚洲欧洲国产日本综合| 男人的天堂亚洲一区| 欧美色图免费看| 亚洲欧美另类久久久精品2019| 成人蜜臀av电影| 欧美国产日本韩| 国产成人精品三级| 精品国产精品网麻豆系列| 美女看a上一区| 欧美一区二区在线免费播放| 午夜精品福利在线| 欧美精品色一区二区三区| 亚洲另类春色国产| 欧美午夜理伦三级在线观看| 一区二区成人在线视频| 精品视频免费看| 三级精品在线观看| 欧美一区二区在线看| 捆绑紧缚一区二区三区视频| 欧美mv和日韩mv国产网站| 国产精品一色哟哟哟| 欧美国产日韩a欧美在线观看| 成人精品在线视频观看| 亚洲欧美视频一区| 在线欧美日韩国产| 首页欧美精品中文字幕| 日韩一区二区精品葵司在线| 精品午夜久久福利影院| 国产日韩精品久久久| 99riav一区二区三区| 一区二区三区四区不卡在线 | 欧美一区二区女人| 国产综合色视频| 中文字幕欧美国产| 日本高清不卡aⅴ免费网站| 亚洲一区二区三区三| 欧美精品日韩精品| 国产一区二区0| 日韩毛片一二三区| 欧美卡1卡2卡| 国产高清不卡二三区| 亚洲精品视频一区二区|