亚洲欧美第一页_禁久久精品乱码_粉嫩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一区二区三区免费野_久草精品视频
欧美大片一区二区三区| 亚洲成va人在线观看| 亚洲五月六月丁香激情| 国产专区综合网| 91超碰这里只有精品国产| 国产精品美女久久福利网站| 欧美aa在线视频| 欧美专区亚洲专区| 中文字幕高清不卡| 国产精品一卡二卡在线观看| 欧美亚洲动漫制服丝袜| 亚洲乱码国产乱码精品精小说| 国产一区二区美女| 91精品国产丝袜白色高跟鞋| 亚洲国产成人tv| 在线免费不卡电影| 亚洲激情男女视频| 91久久人澡人人添人人爽欧美| 亚洲国产精华液网站w | 成人动漫精品一区二区| 精品国产成人系列| 日产国产高清一区二区三区| 欧美午夜一区二区三区免费大片| 又紧又大又爽精品一区二区| 99在线热播精品免费| 国产女人水真多18毛片18精品视频| 麻豆国产精品777777在线| 91精品国产丝袜白色高跟鞋| 奇米一区二区三区av| 欧美一区二区久久| 久久国产综合精品| 精品国产成人在线影院 | 亚洲一区在线观看免费观看电影高清| 国产91露脸合集magnet| 国产天堂亚洲国产碰碰| 高清不卡一区二区在线| 国产精品久久久久久久久搜平片| 成人av网站在线观看免费| 欧美激情一二三区| 99精品1区2区| 亚洲成a人在线观看| 欧美精品在线视频| 狠狠狠色丁香婷婷综合久久五月| 久久久午夜精品| 91丝袜高跟美女视频| 樱花影视一区二区| 91麻豆精品国产91久久久久| 免费不卡在线观看| 国产精品私房写真福利视频| 色婷婷av久久久久久久| 亚洲国产毛片aaaaa无费看| 91精品国产福利| 国产成人精品影院| 一区二区三区在线高清| 777久久久精品| 国产精品一区在线| 亚洲欧洲在线观看av| 91超碰这里只有精品国产| 国产一区二区中文字幕| 亚洲精品成人a在线观看| 91精品国产综合久久久久| 国产精品亚洲第一 | 国产精品第四页| 欧美天天综合网| 国产自产2019最新不卡| 亚洲精品国产高清久久伦理二区| 7777女厕盗摄久久久| 成人精品一区二区三区四区 | 成人免费视频在线观看| 在线电影欧美成精品| 国产99一区视频免费 | 最新国产精品久久精品| 欧美老年两性高潮| 99精品久久久久久| 久久99精品国产麻豆婷婷洗澡| 综合婷婷亚洲小说| 久久欧美一区二区| 欧美日韩国产一二三| 国产.欧美.日韩| 毛片av一区二区三区| 亚洲精品美腿丝袜| 亚洲国产精品黑人久久久| 欧美疯狂性受xxxxx喷水图片| 国产1区2区3区精品美女| 视频一区在线播放| 亚洲人成影院在线观看| 久久久久久免费网| 欧美精品日韩综合在线| 色综合久久综合网97色综合| 国产黄色91视频| 狠狠色狠狠色综合日日91app| 亚洲成在线观看| 亚洲人成7777| 日韩伦理免费电影| 亚洲国产成人一区二区三区| 日韩欧美123| 欧美一区二区三区视频在线| 在线视频欧美精品| 在线观看亚洲成人| 99久久精品国产一区二区三区| 极品少妇一区二区| 久久国产精品99久久久久久老狼| 午夜久久久影院| 欧美日韩国产一级片| 午夜精品久久久久久久| 亚洲视频在线一区观看| 久久嫩草精品久久久久| 日韩免费观看高清完整版| 欧美一区二区视频网站| 欧美片网站yy| 欧美日韩激情一区二区| 欧美日韩视频一区二区| 欧美艳星brazzers| 欧美精品一级二级三级| 7777精品久久久大香线蕉| 欧美疯狂做受xxxx富婆| 欧美一级片在线观看| 日韩一级黄色片| 久久九九国产精品| 国产欧美日韩视频一区二区| ...av二区三区久久精品| 亚洲美女屁股眼交| 亚洲成人激情综合网| 亚洲高清视频的网址| 免费欧美高清视频| 国产一区中文字幕| 99这里只有精品| 欧美性xxxxx极品少妇| 制服.丝袜.亚洲.中文.综合| 精品国产免费一区二区三区四区 | 另类小说图片综合网| 国产一区二区在线电影| 成人午夜视频在线| 欧美中文字幕亚洲一区二区va在线 | 欧美视频三区在线播放| 91麻豆精品国产91久久久更新时间| 欧美一区二区三区的| 久久久777精品电影网影网 | 日本韩国精品在线| 欧美日韩黄色一区二区| 欧美变态口味重另类| 中文字幕一区二区三区精华液| 亚洲成人一区在线| 国产露脸91国语对白| 91天堂素人约啪| 欧美日韩五月天| 91麻豆精品视频| 欧美一区二区三区在线观看| 99re热视频精品| 欧美日韩久久一区二区| 精品久久久久av影院| 国产午夜精品一区二区三区视频| 亚洲免费观看高清完整版在线观看熊 | 国产精品乱码一区二三区小蝌蚪| 一区二区三区精品视频在线| 久久国产生活片100| 91色乱码一区二区三区| 日韩一级免费一区| 中文字幕一区二区三区四区| 日本欧美肥老太交大片| 99久久免费视频.com| 精品国产乱码久久久久久老虎| 亚洲精品亚洲人成人网在线播放| 久久精品久久精品| 26uuu成人网一区二区三区| 欧美精品在线视频| 日韩午夜av电影| 亚洲乱码国产乱码精品精小说| 韩国理伦片一区二区三区在线播放| 91美女在线视频| 国产日产精品一区| 日本午夜一区二区| 欧美午夜精品久久久久久超碰 | 国产精品99久久久久久久女警| 欧美精品tushy高清| 亚洲精品国产无天堂网2021| 国产二区国产一区在线观看| 91精品国产乱| 午夜欧美电影在线观看| 在线一区二区三区| 亚洲视频电影在线| av亚洲精华国产精华精华| 26uuu国产日韩综合| 青草国产精品久久久久久| 在线综合视频播放| 亚洲国产成人av| 色综合久久99| 亚洲视频你懂的| 色一情一伦一子一伦一区| 日韩一区中文字幕| 99视频精品全部免费在线| 国产午夜精品一区二区三区四区| 精品一区二区免费| 精品久久久网站| 久久国产麻豆精品| 欧美精品一区二区三区视频| 久久国产夜色精品鲁鲁99| 精品99一区二区三区| 国模少妇一区二区三区| 久久久久久久一区|