NDIS_STATUS RTMPReadParametersHook( PRTMP_ADAPTER pAd) { char * src = NULL; RTMP_OS_FD srcf; RTMP_OS_FS_INFO osFSInfo; int retval = NDIS_STATUS_FAILURE; char * buffer; #ifdef HOSTAPD_SUPPORT int i; #endif /*HOSTAPD_SUPPORT */ /* buffer = kmalloc(MAX_INI_BUFFER_SIZE, MEM_ALLOC_FLAG); */ os_alloc_mem(pAd, (unsigned char **)&buffer, MAX_INI_BUFFER_SIZE); if(buffer == NULL) return NDIS_STATUS_FAILURE; memset(buffer, 0x00, MAX_INI_BUFFER_SIZE); { #ifdef CONFIG_STA_SUPPORT IF_DEV_CONFIG_OPMODE_ON_STA(pAd) { src = STA_PROFILE_PATH; } #endif /* CONFIG_STA_SUPPORT */ #ifdef MULTIPLE_CARD_SUPPORT src = (char *)pAd->MC_FileName; #endif /* MULTIPLE_CARD_SUPPORT */ } // Regardless of what we find in the DAT file, set defaults here. // Now the DAT file is only used to force settings to certain values. // Initialize with defaults first RTMPSetDefaultProfileParameters(pAd); retval = NDIS_STATUS_SUCCESS; if (src && *src) { RtmpOSFSInfoChange(&osFSInfo, TRUE); srcf = RtmpOSFileOpen(src, O_RDONLY, 0); if (IS_FILE_OPEN_ERR(srcf)) { DBGPRINT(RT_DEBUG_ERROR, ("Open file \"%s\" failed (configuration file not absolutely necessary)\n", src)); } else { retval =RtmpOSFileRead(srcf, buffer, MAX_INI_BUFFER_SIZE); if (retval > 0) { RTMPSetProfileParameters(pAd, buffer); retval = NDIS_STATUS_SUCCESS; } else DBGPRINT(RT_DEBUG_ERROR, ("Read file \"%s\" failed(errCode=%d)!\n", src, retval)); retval = RtmpOSFileClose(srcf); if ( retval != 0) { retval = NDIS_STATUS_FAILURE; DBGPRINT(RT_DEBUG_ERROR, ("Close file \"%s\" failed(errCode=%d)!\n", src, retval)); } } RtmpOSFSInfoChange(&osFSInfo, FALSE); } #ifdef HOSTAPD_SUPPORT for (i = 0; i < pAd->ApCfg.BssidNum; i++) { pAd->ApCfg.MBSSID[i].Hostapd=FALSE; DBGPRINT(RT_DEBUG_TRACE, ("Reset ra%d hostapd support=FLASE", i)); } #endif /*HOSTAPD_SUPPORT */ #ifdef SINGLE_SKU_V2 RTMPSetSingleSKUParameters(pAd); #endif /* SINGLE_SKU_V2 */ /* kfree(buffer); */ os_free_mem(NULL, buffer); return (retval); }
NDIS_STATUS RTMPReadParametersHook( IN PRTMP_ADAPTER pAd) { PSTRING src = NULL; RTMP_OS_FD srcf; RTMP_OS_FS_INFO osFSInfo; INT retval = NDIS_STATUS_FAILURE; PSTRING buffer; #ifdef HOSTAPD_SUPPORT int i; #endif /*HOSTAPD_SUPPORT */ /* buffer = kmalloc(MAX_INI_BUFFER_SIZE, MEM_ALLOC_FLAG); */ os_alloc_mem(pAd, (UCHAR **)&buffer, MAX_INI_BUFFER_SIZE); if(buffer == NULL) return NDIS_STATUS_FAILURE; memset(buffer, 0x00, MAX_INI_BUFFER_SIZE); { #ifdef CONFIG_STA_SUPPORT IF_DEV_CONFIG_OPMODE_ON_STA(pAd) { src = STA_PROFILE_PATH; } #endif /* CONFIG_STA_SUPPORT */ #ifdef MULTIPLE_CARD_SUPPORT src = (PSTRING)pAd->MC_FileName; #endif /* MULTIPLE_CARD_SUPPORT */ } if (src && *src) { RtmpOSFSInfoChange(&osFSInfo, TRUE); srcf = RtmpOSFileOpen(src, O_RDONLY, 0); if (IS_FILE_OPEN_ERR(srcf)) { DBGPRINT(RT_DEBUG_ERROR, ("Open file \"%s\" failed!\n", src)); } else { retval =RtmpOSFileRead(srcf, buffer, MAX_INI_BUFFER_SIZE); if (retval > 0) { RTMPSetProfileParameters(pAd, buffer); retval = NDIS_STATUS_SUCCESS; } else DBGPRINT(RT_DEBUG_ERROR, ("Read file \"%s\" failed(errCode=%d)!\n", src, retval)); retval = RtmpOSFileClose(srcf); if ( retval != 0) { retval = NDIS_STATUS_FAILURE; DBGPRINT(RT_DEBUG_ERROR, ("Close file \"%s\" failed(errCode=%d)!\n", src, retval)); } } RtmpOSFSInfoChange(&osFSInfo, FALSE); } #ifdef HOSTAPD_SUPPORT for (i = 0; i < pAd->ApCfg.BssidNum; i++) { pAd->ApCfg.MBSSID[i].Hostapd=FALSE; DBGPRINT(RT_DEBUG_TRACE, ("Reset ra%d hostapd support=FLASE", i)); } #endif /*HOSTAPD_SUPPORT */ /* kfree(buffer); */ os_free_mem(NULL, buffer); return (retval); }
NDIS_STATUS RTMPReadParametersHook( IN PRTMP_ADAPTER pAd) { PSTRING src = NULL; RTMP_OS_FD srcf; RTMP_OS_FS_INFO osFSInfo; INT retval = NDIS_STATUS_FAILURE; PSTRING buffer; #ifdef HOSTAPD_SUPPORT int i; #endif /*HOSTAPD_SUPPORT */ /* buffer = kmalloc(MAX_INI_BUFFER_SIZE, MEM_ALLOC_FLAG); */ { #ifdef CONFIG_AP_SUPPORT IF_DEV_CONFIG_OPMODE_ON_AP(pAd) { src = AP_PROFILE_PATH; } #endif /* CONFIG_AP_SUPPORT */ #ifdef MULTIPLE_CARD_SUPPORT if (pAd->MC_RowID == 0) src = PROFILE_PATH_1; else src = PROFILE_PATH_2; #endif /* MULTIPLE_CARD_SUPPORT */ } if (src && *src) { RtmpOSFSInfoChange(&osFSInfo, TRUE); srcf = RtmpOSFileOpen(src, O_RDONLY, 0); if (IS_FILE_OPEN_ERR(srcf)) { DBGPRINT(RT_DEBUG_ERROR, ("Open file \"%s\" failed!\n", src)); } else { #if LINUX_VERSION_CODE >= KERNEL_VERSION(3,19,0) ULONG fsize = (ULONG)file_inode(srcf)->i_size; #else ULONG fsize = (ULONG)srcf->f_dentry->d_inode->i_size; #endif /* buffer = kmalloc(MAX_INI_BUFFER_SIZE, MEM_ALLOC_FLAG); */ os_alloc_mem(pAd, (UCHAR **)&buffer, fsize+1); if (buffer == NULL) { if ((retval = RtmpOSFileClose(srcf)) != 0) DBGPRINT(RT_DEBUG_ERROR, ("Close file \"%s\" failed(errCode=%d)!\n", src, retval)); RtmpOSFSInfoChange(&osFSInfo, FALSE); return NDIS_STATUS_FAILURE; } memset(buffer, 0x00, fsize+1); retval =RtmpOSFileRead(srcf, buffer, fsize); if (retval > 0) { RTMPSetProfileParameters(pAd, buffer); retval = NDIS_STATUS_SUCCESS; } else DBGPRINT(RT_DEBUG_ERROR, ("Read file \"%s\" failed(errCode=%d)!\n", src, retval)); retval = RtmpOSFileClose(srcf); if ( retval != 0) { retval = NDIS_STATUS_FAILURE; DBGPRINT(RT_DEBUG_ERROR, ("Close file \"%s\" failed(errCode=%d)!\n", src, retval)); } /* kfree(buffer); */ os_free_mem(NULL, buffer); } RtmpOSFSInfoChange(&osFSInfo, FALSE); } #ifdef HOSTAPD_SUPPORT for (i = 0; i < pAd->ApCfg.BssidNum; i++) { pAd->ApCfg.MBSSID[i].Hostapd=FALSE; DBGPRINT(RT_DEBUG_TRACE, ("Reset ra%d hostapd support=FLASE", i)); } #endif /*HOSTAPD_SUPPORT */ return (retval); }