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

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

?? zdauthrsp.c

?? GW-US54GXS_Linux_v2.15.0.0_CE zd1211原碼
?? C
字號:
#ifndef __ZDAUTHRSP_C__
#define __ZDAUTHRSP_C__

#include "zd80211.h"
#include "zd1205.h"

U8 AuthRspState = STE_AUTH_RSP_IDLE;
static U8 arChalng[CHAL_TEXT_LEN]; 	//Challenge text
static MacAddr_t Sta2;
static MacAddr_t Sta;
extern struct net_device *g_dev;

BOOLEAN CheckAlg(U8 alg)
{
	int i = 0;

	for (i=0; i<3; i++){
		if (i == 2)
			return FALSE;
			
		if (mAuthAlogrithms[i] == alg)
			return TRUE;
	}
	return FALSE;
}


BOOLEAN AuthOdd_Idle(Signal_t *signal) 
{
    struct zd1205_private *macp=g_dev->priv;
	FrmDesc_t *pfrmDesc;
	Frame_t *rdu;
	U16 arAlg;
	U16	arSeq;
	U16	arSC;
	U8 vapId = 0;	
	
	ZDEBUG("AuthOdd_Idle");
	pfrmDesc = signal->frmInfo.frmDesc;
	rdu = pfrmDesc->mpdu;
	arSeq = authSeqNum(rdu);
	arAlg = authType(rdu);
	memcpy((U8 *)&Sta, (U8 *)addr2(rdu), 6);

	if (arSeq != 1){
		arSC = SC_AUTH_OUT_OF_SEQ;
		UpdateStaStatus(&Sta, STATION_STATE_NOT_AUTH, vapId);
		mkAuthFrm(pfrmDesc, &Sta, arAlg, arSeq+1, arSC, NULL, vapId);
		return sendMgtFrame(signal, pfrmDesc);
	}
	
	if (!CheckAlg(arAlg)){
		arSC = SC_UNSUPT_ALG;
		UpdateStaStatus(&Sta, STATION_STATE_NOT_AUTH, vapId);
		mkAuthFrm(pfrmDesc, &Sta, arAlg, arSeq+1, arSC, NULL, vapId);
		return sendMgtFrame(signal, pfrmDesc);
	}
	
	if (pdot11Obj->StatusNotify(STA_AUTH_REQ, (U8 *)&Sta)){ //Reject it
		arSC = SC_UNSPEC_FAILURE;
		UpdateStaStatus(&Sta, STATION_STATE_NOT_AUTH, vapId);
		mkAuthFrm(pfrmDesc, &Sta, arAlg, arSeq+1, arSC, NULL, vapId);
		return sendMgtFrame(signal, pfrmDesc);
	}	
		
	if (arAlg == OPEN_SYSTEM){
		if (UpdateStaStatus(&Sta, STATION_STATE_AUTH_OPEN, vapId))
			arSC = SC_SUCCESSFUL;
		else
			arSC = SC_AP_FULL;	
		
		mkAuthFrm(pfrmDesc, &Sta, arAlg, arSeq+1, arSC, NULL, vapId);
		return sendMgtFrame(signal, pfrmDesc);
	}

	if (arAlg == SHARE_KEY){
		//WPA
		if (macp->cardSetting.WPAIeLen){
		//if ((mDynKeyMode == DYN_KEY_TKIP) || (mDynKeyMode == DYN_KEY_AES)){
			arSC = SC_UNSUPT_ALG;
			UpdateStaStatus(&Sta, STATION_STATE_NOT_AUTH, vapId);
			mkAuthFrm(pfrmDesc, &Sta, arAlg, arSeq+1, arSC, NULL, vapId);

			return sendMgtFrame(signal, pfrmDesc);
		}	
		else{
			if ((mCurrConnUser + 1) > mLimitedUser)
				arSC = SC_AP_FULL;	
			else	
				arSC = SC_SUCCESSFUL;
			
			mkAuthFrm(pfrmDesc, &Sta, arAlg, arSeq+1, arSC, arChalng, vapId);
			if (arSC == SC_SUCCESSFUL){
				pdot11Obj->StartTimer(512, DO_CHAL);
				AuthRspState = STE_AUTH_RSP_WAIT_CRSP;
			}	
			return sendMgtFrame(signal, pfrmDesc);
		}	
	}

	freeFdesc(pfrmDesc);
	return TRUE;
}


BOOLEAN AuthOdd_WaitChalRsp(Signal_t *signal) 

{
	FrmDesc_t *pfrmDesc;
	Frame_t *rdu;
	U8 arAlg2;
	U16	arSeq2;
	U16	arSC;
	U8 vapId = 0;
	U8 ChalText[130];
	
	ZDEBUG("AuthOdd_WaitChalRsp");	
	pfrmDesc = signal->frmInfo.frmDesc;
	rdu = pfrmDesc->mpdu;
	
	arSeq2	= authSeqNum(rdu);
	arAlg2	= authType(rdu);
	memcpy((U8 *)&Sta2, (U8 *)addr2(rdu), 6);

	if(arSeq2 == 1){
		if (memcmp(&Sta, &Sta2, 6) == 0){ // open system request from a different station
			arSC = SC_UNSPEC_FAILURE;
			goto fail_sta2;
		}
		
		if (arAlg2 == OPEN_SYSTEM){
			arSC = SC_SUCCESSFUL;
			UpdateStaStatus(&Sta, STATION_STATE_AUTH_OPEN, vapId);
			mkAuthFrm(pfrmDesc, &Sta2, arAlg2, arSeq2+1, arSC, NULL, vapId);
			
			return sendMgtFrame(signal, pfrmDesc);
		}
		else{
			arSC = SC_UNSPEC_FAILURE;
			goto fail_sta2;
		}
	}
	else if(arSeq2 == 3){
		if (memcmp(&Sta, &Sta2, 6) == 0){
			pdot11Obj->StopTimer(DO_CHAL);
			if (wepBit(rdu)){
				if (!getElem(rdu, EID_CTEXT, (Element *)&ChalText[0],1)){
					goto chal_failed;
				}	
				else {
					//zd1205_OctetDump("ChalText = ", &ChalText[0], CHAL_TEXT_LEN+2);
					if (memcmp(&ChalText[2], arChalng, CHAL_TEXT_LEN) != 0){
						goto chal_failed;
					}	
				}	
				
				if (UpdateStaStatus(&Sta, STATION_STATE_AUTH_KEY, vapId))
					arSC = SC_SUCCESSFUL;
				else
					arSC = SC_AP_FULL;	
			}
			else{
chal_failed:			
				arSC = SC_CHAL_FAIL;
				UpdateStaStatus(&Sta2, STATION_STATE_NOT_AUTH, vapId);
			}
		}
		else{
			arSC = SC_UNSPEC_FAILURE;
			UpdateStaStatus(&Sta2, STATION_STATE_NOT_AUTH, vapId);
		}
		AuthRspState = STE_AUTH_RSP_IDLE;
		mkAuthFrm(pfrmDesc, &Sta2, arAlg2, arSeq2+1, arSC, NULL, vapId);
		return sendMgtFrame(signal, pfrmDesc);
	}
	else{
		arSC = SC_UNSPEC_FAILURE;
		goto fail_sta2;
	}

fail_sta2:
	UpdateStaStatus(&Sta2, STATION_STATE_NOT_AUTH, vapId);
	mkAuthFrm(pfrmDesc, &Sta2, arAlg2, arSeq2+1, arSC, NULL, vapId);
	return sendMgtFrame(signal, pfrmDesc);
}	


BOOLEAN Tchal_WaitChalRsp(Signal_t *signal) 
{
	U8 vapId = 0;
	
	ZDEBUG("Tchal_WaitChalRsp");		
	if 	(AuthRspState == STE_AUTH_RSP_WAIT_CRSP){
		UpdateStaStatus(&Sta, STATION_STATE_NOT_AUTH, vapId);
		AuthRspState = STE_AUTH_RSP_IDLE;
	}
	return FALSE;
}


BOOLEAN Deauth(Signal_t *signal)
{
	FrmDesc_t *pfrmDesc;
	Frame_t *rdu;
	U8 vapId = 0;

	ZDEBUG("Deauth");
	pfrmDesc = signal->frmInfo.frmDesc;
	rdu = pfrmDesc->mpdu;
	UpdateStaStatus(addr2(rdu), STATION_STATE_NOT_AUTH, vapId);
	if (memcmp(&mBssId, addr2(rdu), 6) == 0)
		pdot11Obj->StatusNotify(STA_DEAUTHED, (U8 *)addr2(rdu));
	
	if (mBssType == INFRASTRUCTURE_BSS){
		//if (memcmp(&mBssId, addr2(rdu), 6) == 0){
			FPRINT("Deauth");
			mAssoc = FALSE;
			memset((U8 *)&mBssId, 0, 6);
			mRequestFlag |= DIS_CONNECT_SET;
		//}
	}	
		
	//here to handle deauth ind.
	freeFdesc(pfrmDesc);
	return TRUE;
}


BOOLEAN AuthRspEntry(Signal_t *signal)
{
	if (AuthRspState == STE_AUTH_RSP_IDLE){
		switch(signal->id){
			case SIG_AUTH_ODD:
				return AuthOdd_Idle(signal);
				
			case SIG_DEAUTH:
				return Deauth(signal);

			default:
				return TRUE;		
		}	
	}

	else if (AuthRspState == STE_AUTH_RSP_WAIT_CRSP){
		switch(signal->id){
			case SIG_AUTH_ODD:
				return AuthOdd_WaitChalRsp(signal);
				
			case SIG_DEAUTH:
				return Deauth(signal);
				                                                   
			case SIG_TO_CHAL:
				return Tchal_WaitChalRsp(signal);
				
			default:
				return TRUE;
		}		
	}
	else
		return TRUE;		
}

#endif

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
proumb性欧美在线观看| 福利一区在线观看| 日韩视频一区二区三区在线播放| 69堂成人精品免费视频| 国产性天天综合网| 亚洲国产另类av| 国产一区欧美日韩| 欧美又粗又大又爽| 欧美午夜免费电影| 亚洲国产乱码最新视频| 4438成人网| 精品无码三级在线观看视频| 欧美日韩一区二区在线观看| 一区视频在线播放| 韩国三级中文字幕hd久久精品| 欧美特级限制片免费在线观看| 亚洲国产精品视频| 日韩欧美区一区二| 美洲天堂一区二卡三卡四卡视频| 91久久香蕉国产日韩欧美9色| 国产免费成人在线视频| 国产永久精品大片wwwapp| 中文字幕免费不卡| 高清不卡在线观看| 一区二区三区精品久久久| 成人av动漫网站| 国产欧美日本一区视频| 一本大道久久精品懂色aⅴ| 国产精品美女久久久久av爽李琼| 国产乱对白刺激视频不卡| 精品黑人一区二区三区久久| 日韩av中文字幕一区二区三区| 欧美日韩精品一区视频| 日韩中文字幕一区二区三区| 欧美日韩一级大片网址| 精品在线亚洲视频| 亚洲黄色av一区| 欧美亚洲动漫精品| 国产传媒日韩欧美成人| 亚洲欧洲在线观看av| 91精品久久久久久久99蜜桃| 99久久精品免费看国产| 亚洲欧美日韩人成在线播放| 91免费看片在线观看| 一区二区三区日韩欧美精品| 26uuu国产一区二区三区| 成人综合婷婷国产精品久久蜜臀| 国产精品水嫩水嫩| 欧美电影免费观看高清完整版在线 | 91丨九色丨蝌蚪丨老版| 久久9热精品视频| 国产亚洲精久久久久久| 欧美日韩三级一区| 97久久人人超碰| 欧美日韩在线三区| 免费成人美女在线观看.| 日韩精品一区二区三区在线观看 | 成人午夜激情在线| 精彩视频一区二区三区| 琪琪一区二区三区| 亚洲国产视频一区二区| 综合av第一页| 制服视频三区第一页精品| 色中色一区二区| kk眼镜猥琐国模调教系列一区二区| 激情综合色播五月| 视频一区二区中文字幕| 香蕉加勒比综合久久 | 久久精品一区二区| 久久新电视剧免费观看| www亚洲一区| 精品国产一区二区三区久久久蜜月 | 亚洲五月六月丁香激情| 亚洲天堂网中文字| 中文字幕一区二区三区不卡在线 | 日本欧美一区二区在线观看| 亚洲午夜av在线| 亚洲 欧美综合在线网络| 樱桃国产成人精品视频| 亚洲视频1区2区| 亚洲欧美另类图片小说| 亚洲丝袜制服诱惑| 亚洲精品免费电影| 亚洲美女淫视频| 亚洲资源在线观看| 日韩欧美国产1| 欧美电影在线免费观看| 不卡一卡二卡三乱码免费网站| 懂色av一区二区三区免费观看| 国产成人精品亚洲777人妖| 国产美女精品在线| caoporn国产精品| 色噜噜狠狠色综合欧洲selulu| 97久久久精品综合88久久| 日本高清不卡视频| 欧美日韩精品专区| 日韩午夜电影av| 国产日韩欧美高清| 亚洲毛片av在线| 日韩影院免费视频| 国产一区二区福利| 99久久婷婷国产综合精品| 日本福利一区二区| 欧美成人精品福利| 91精品国产综合久久精品图片| 欧美草草影院在线视频| 国产亚洲综合性久久久影院| 一区在线中文字幕| 视频一区二区中文字幕| 精品写真视频在线观看| 99国产精品国产精品久久| 欧美精品tushy高清| 久久精品视频在线免费观看| 亚洲乱码中文字幕| 看电视剧不卡顿的网站| 9l国产精品久久久久麻豆| 欧美日韩日日骚| 亚洲国产精品二十页| 亚洲成av人片在线观看无码| 国产精品一区二区91| 欧美日韩综合在线| 欧美激情在线一区二区三区| 亚洲午夜久久久久中文字幕久| 极品尤物av久久免费看| 欧美在线三级电影| 中文字幕巨乱亚洲| 蜜芽一区二区三区| 91香蕉视频污| 久久久久久久久久久久电影| 国产偷国产偷精品高清尤物| 一区二区三区美女| 成人一区在线看| 欧美一区二区精品在线| 久久麻豆一区二区| 亚洲成av人片观看| 不卡av免费在线观看| 亚洲精品一区二区三区99| 一区二区三区中文字幕电影 | 日韩电影在线观看网站| 91视频免费播放| 国产亚洲欧美一区在线观看| 午夜欧美一区二区三区在线播放| 日韩不卡一二三区| 91成人在线免费观看| 国产精品国产三级国产aⅴ入口| 亚洲精品一二三| 国产成人精品免费在线| 日韩欧美国产麻豆| 视频一区在线视频| 欧美曰成人黄网| 亚洲狼人国产精品| 91蜜桃视频在线| 欧美激情综合五月色丁香| 国产精品一色哟哟哟| 精品久久国产老人久久综合| 日韩黄色小视频| 欧美精品在线一区二区三区| 自拍偷拍欧美激情| 成人中文字幕电影| 国产色婷婷亚洲99精品小说| 韩国av一区二区三区在线观看| 欧美一区二区三区免费大片| 婷婷中文字幕综合| 91精品国产手机| 美女网站色91| 日韩三级在线观看| 久久精品噜噜噜成人88aⅴ| 91精品国产一区二区三区| 日韩国产成人精品| 日韩精品最新网址| 国产在线精品一区二区夜色| 欧美成人bangbros| 国产精品正在播放| 欧美激情艳妇裸体舞| 成人福利视频在线| 亚洲免费在线视频| 欧美色精品在线视频| 午夜精品123| 欧美日本一道本在线视频| 亚洲一二三四区| 91精品国产综合久久蜜臀| 久久av中文字幕片| 日本一区二区免费在线观看视频| 成人午夜在线免费| 亚洲天堂2014| 在线不卡一区二区| 激情五月激情综合网| 中文字幕一区二区三区四区| 91久久奴性调教| 香蕉久久夜色精品国产使用方法| 日韩视频永久免费| 成人午夜碰碰视频| 亚洲一区在线视频观看| 日韩一级高清毛片| 成人av手机在线观看| 亚洲一区成人在线| 精品国产电影一区二区| 99天天综合性| 亚洲国产日产av| 久久一区二区视频|