Exemple #1
0
void os_indicate_disconnect( _adapter *adapter )
{
   //RT_PMKID_LIST   backupPMKIDList[ NUM_PMKID_CACHE ];
   u8              backupPMKIDIndex = 0;
   u8              backupTKIPCountermeasure = 0x00;
      
_func_enter_;

   indicate_wx_disassoc_event(adapter);	
   netif_carrier_off(adapter->pnetdev);
	
   if(adapter->securitypriv.dot11AuthAlgrthm == dot11AuthAlgrthm_8021X)//802.1x
   {		 
        // Added by Albert 2009/02/18
        // We have to backup the PMK information for WiFi PMK Caching test item.
        //
        // Backup the btkip_countermeasure information.
        // When the countermeasure is trigger, the driver have to disconnect with AP for 60 seconds.
        
        _memset( &backupPMKIDList[ 0 ], 0x00, sizeof( RT_PMKID_LIST ) * NUM_PMKID_CACHE );

        _memcpy( &backupPMKIDList[ 0 ], &adapter->securitypriv.PMKIDList[ 0 ], sizeof( RT_PMKID_LIST ) * NUM_PMKID_CACHE );
        backupPMKIDIndex = adapter->securitypriv.PMKIDIndex;
        backupTKIPCountermeasure = adapter->securitypriv.btkip_countermeasure;

       _memset((unsigned char *)&adapter->securitypriv, 0, sizeof (struct security_priv));
       _init_timer(&(adapter->securitypriv.tkip_timer),adapter->pnetdev, use_tkipkey_handler, adapter);

       // Added by Albert 2009/02/18
       // Restore the PMK information to securitypriv structure for the following connection.
       _memcpy( &adapter->securitypriv.PMKIDList[ 0 ], &backupPMKIDList[ 0 ], sizeof( RT_PMKID_LIST ) * NUM_PMKID_CACHE );
       adapter->securitypriv.PMKIDIndex = backupPMKIDIndex;
       adapter->securitypriv.btkip_countermeasure = backupTKIPCountermeasure;

	adapter->securitypriv.ndisauthtype = Ndis802_11AuthModeOpen;
	adapter->securitypriv.ndisencryptstatus = Ndis802_11WEPDisabled;

   }
   else //reset values in securitypriv 
   {
   	//if(adapter->mlmepriv.fw_state & WIFI_STATION_STATE)
   	//{
	struct security_priv *psec_priv=&adapter->securitypriv;

	psec_priv->dot11AuthAlgrthm =dot11AuthAlgrthm_Open;  //open system
	psec_priv->dot11PrivacyAlgrthm = _NO_PRIVACY_;
	psec_priv->dot11PrivacyKeyIndex = 0;

	psec_priv->dot118021XGrpPrivacy = _NO_PRIVACY_;
	psec_priv->dot118021XGrpKeyid = 1;

	psec_priv->ndisauthtype = Ndis802_11AuthModeOpen;
	psec_priv->ndisencryptstatus = Ndis802_11WEPDisabled;	
	psec_priv->wps_phase = _FALSE;
   	//}
   }

_func_exit_;

}
Exemple #2
0
void os_indicate_disconnect( _adapter *adapter )
{
   //RT_PMKID_LIST   backupPMKIDList[ NUM_PMKID_CACHE ];
  
_func_enter_;

	indicate_wx_disassoc_event(adapter);	
	netif_carrier_off(adapter->pnetdev);

#ifdef RTK_DMP_PLATFORM
	_set_workitem(&adapter->mlmepriv.Linkdown_workitem);
#endif
	 rtw_reset_securitypriv( adapter );

_func_exit_;

}