⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 airo.c_kernel_2.6.14_patch

📁 Linux上的802.1x 的supplicant的实现。很多supplicant程序都是基于它开发的
💻 14_PATCH
字号:
diff -urpN a/drivers/net/wireless/airo.c b/drivers/net/wireless/airo.c--- a/drivers/net/wireless/airo.c	2005-10-27 20:02:08.000000000 -0400+++ b/drivers/net/wireless/airo.c	2005-11-02 10:32:25.000000000 -0500@@ -4059,7 +4059,7 @@ static int PC4500_writerid(struct airo_i 		Cmd cmd; 		Resp rsp; -		if (test_bit(FLAG_ENABLED, &ai->flags))+		if (test_bit(FLAG_ENABLED, &ai->flags) && (RID_WEP_TEMP != rid)) 			printk(KERN_ERR 				"%s: MAC should be disabled (rid=%04x)\n", 				__FUNCTION__, rid);@@ -5119,9 +5119,9 @@ static int set_wep_key(struct airo_info  		printk(KERN_INFO "Setting key %d\n", index); 	} -	disable_MAC(ai, lock);+	if (perm) disable_MAC(ai, lock); 	writeWepKeyRid(ai, &wkr, perm, lock);-	enable_MAC(ai, &rsp, lock);+	if (perm) enable_MAC(ai, &rsp, lock); 	return 0; } @@ -6202,6 +6202,8 @@ static int airo_set_encode(struct net_de { 	struct airo_info *local = dev->priv; 	CapabilityRid cap_rid;		/* Card capability info */+	int perm = ( dwrq->flags & IW_ENCODE_TEMP ? 0 : 1 );+	u16 currentAuthType = local->config.authType;  	/* Is WEP supported ? */ 	readCapabilityRid(local, &cap_rid, 1);@@ -6244,7 +6246,7 @@ static int airo_set_encode(struct net_de 			/* Copy the key in the driver */ 			memcpy(key.key, extra, dwrq->length); 			/* Send the key to the card */-			set_wep_key(local, index, key.key, key.len, 1, 1);+			set_wep_key(local, index, key.key, key.len, perm, 1); 		} 		/* WE specify that if a valid key is set, encryption 		 * should be enabled (user may turn it off later)@@ -6252,13 +6254,12 @@ static int airo_set_encode(struct net_de 		if((index == current_index) && (key.len > 0) && 		   (local->config.authType == AUTH_OPEN)) { 			local->config.authType = AUTH_ENCRYPT;-			set_bit (FLAG_COMMIT, &local->flags); 		} 	} else { 		/* Do we want to just set the transmit key index ? */ 		int index = (dwrq->flags & IW_ENCODE_INDEX) - 1; 		if ((index >= 0) && (index < ((cap_rid.softCap & 0x80)?4:1))) {-			set_wep_key(local, index, NULL, 0, 1, 1);+			set_wep_key(local, index, NULL, 0, perm, 1); 		} else 			/* Don't complain if only change the mode */ 			if(!dwrq->flags & IW_ENCODE_MODE) {@@ -6273,7 +6274,7 @@ static int airo_set_encode(struct net_de 	if(dwrq->flags & IW_ENCODE_OPEN) 		local->config.authType = AUTH_ENCRYPT;	// Only Wep 	/* Commit the changes to flags if needed */-	if(dwrq->flags & IW_ENCODE_MODE)+	if (local->config.authType != currentAuthType) 		set_bit (FLAG_COMMIT, &local->flags); 	return -EINPROGRESS;		/* Call commit handler */ }

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -