/* ========================================================================== Description: Issue a site survey command to driver Arguments: pAdapter Pointer to our adapter wrq Pointer to the ioctl argument Return Value: None Note: Usage: 1.) iwpriv ra0 set site_survey ========================================================================== */ INT Set_SiteSurvey_Proc( IN PRTMP_ADAPTER pAd, IN PSTRING arg) { NDIS_802_11_SSID Ssid; POS_COOKIE pObj; pObj = (POS_COOKIE) pAd->OS_Cookie; //check if the interface is down if (!RTMP_TEST_FLAG(pAd, fRTMP_ADAPTER_INTERRUPT_IN_USE)) { DBGPRINT(RT_DEBUG_TRACE, ("INFO::Network is down!\n")); return -ENETDOWN; } #ifdef CONFIG_STA_SUPPORT IF_DEV_CONFIG_OPMODE_ON_STA(pAd) { if (MONITOR_ON(pAd)) { DBGPRINT(RT_DEBUG_TRACE, ("!!! Driver is in Monitor Mode now !!!\n")); return -EINVAL; } } #endif // CONFIG_STA_SUPPORT // NdisZeroMemory(&Ssid, sizeof(NDIS_802_11_SSID)); #ifdef CONFIG_STA_SUPPORT IF_DEV_CONFIG_OPMODE_ON_STA(pAd) { Ssid.SsidLength = 0; if ((arg != NULL) && (strlen(arg) <= MAX_LEN_OF_SSID)) { RTMPMoveMemory(Ssid.Ssid, arg, strlen(arg)); Ssid.SsidLength = strlen(arg); } pAd->StaCfg.bSkipAutoScanConn = TRUE; StaSiteSurvey(pAd, &Ssid, SCAN_ACTIVE); } #endif // CONFIG_STA_SUPPORT // DBGPRINT(RT_DEBUG_TRACE, ("Set_SiteSurvey_Proc\n")); return TRUE; }
/* ========================================================================== Description: Issue a site survey command to driver Arguments: pAdapter Pointer to our adapter wrq Pointer to the ioctl argument Return Value: None Note: Usage: 1.) iwpriv ra0 set site_survey ========================================================================== */ INT Set_SiteSurvey_Proc( IN PRTMP_ADAPTER pAd, IN PSTRING arg) { NDIS_802_11_SSID Ssid; POS_COOKIE pObj; pObj = (POS_COOKIE) pAd->OS_Cookie; //check if the interface is down if (!RTMP_TEST_FLAG(pAd, fRTMP_ADAPTER_INTERRUPT_IN_USE)) { DBGPRINT(RT_DEBUG_TRACE, ("INFO::Network is down!\n")); return -ENETDOWN; } #ifdef CONFIG_STA_SUPPORT IF_DEV_CONFIG_OPMODE_ON_STA(pAd) { if (MONITOR_ON(pAd)) { DBGPRINT(RT_DEBUG_TRACE, ("!!! Driver is in Monitor Mode now !!!\n")); return -EINVAL; } } #endif // CONFIG_STA_SUPPORT // NdisZeroMemory(&Ssid, sizeof(NDIS_802_11_SSID)); #ifdef CONFIG_AP_SUPPORT #ifdef AP_SCAN_SUPPORT IF_DEV_CONFIG_OPMODE_ON_AP(pAd) { if ((strlen(arg) != 0) && (strlen(arg) <= MAX_LEN_OF_SSID)) { NdisMoveMemory(Ssid.Ssid, arg, strlen(arg)); Ssid.SsidLength = strlen(arg); } #ifndef APCLI_CONNECTION_TRIAL if (Ssid.SsidLength == 0) ApSiteSurvey(pAd, &Ssid, SCAN_PASSIVE, FALSE); else ApSiteSurvey(pAd, &Ssid, SCAN_ACTIVE, FALSE); #else /*for shorter scan time. use active scan and send probe req.*/ DBGPRINT(RT_DEBUG_TRACE, ("!!! Fast Scan for connection trial !!!\n")); ApSiteSurvey(pAd, &Ssid, FAST_SCAN_ACTIVE, FALSE); #endif /* APCLI_CONNECTION_TRIAL */ return TRUE; } #endif /* AP_SCAN_SUPPORT */ #endif // CONFIG_AP_SUPPORT // #ifdef CONFIG_STA_SUPPORT IF_DEV_CONFIG_OPMODE_ON_STA(pAd) { Ssid.SsidLength = 0; if ((arg != NULL) && (strlen(arg) <= MAX_LEN_OF_SSID)) { RTMPMoveMemory(Ssid.Ssid, arg, strlen(arg)); Ssid.SsidLength = strlen(arg); } pAd->StaCfg.bSkipAutoScanConn = TRUE; StaSiteSurvey(pAd, &Ssid, SCAN_ACTIVE); } #endif // CONFIG_STA_SUPPORT // DBGPRINT(RT_DEBUG_TRACE, ("Set_SiteSurvey_Proc\n")); return TRUE; }