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

📄 80211mgr.c

📁 VIA VT6656 USB linux source code.
💻 C
📖 第 1 页 / 共 2 页
字号:
 * Return Value: *    None. *-*/VOIDvMgrEncodeReassocRequest(    IN  PWLAN_FR_REASSOCREQ  pFrame     ){    pFrame->pHdr = (PUWLAN_80211HDR)pFrame->pBuf;    // Fixed Fields     pFrame->pwCapInfo = (PWORD)(WLAN_HDR_A3_DATA_PTR(&(pFrame->pHdr->sA3))                                + WLAN_REASSOCREQ_OFF_CAP_INFO);    pFrame->pwListenInterval = (PWORD)(WLAN_HDR_A3_DATA_PTR(&(pFrame->pHdr->sA3))                                      + WLAN_REASSOCREQ_OFF_LISTEN_INT);    pFrame->pAddrCurrAP = (PIEEE_ADDR)(WLAN_HDR_A3_DATA_PTR(&(pFrame->pHdr->sA3))                                       + WLAN_REASSOCREQ_OFF_CURR_AP);    pFrame->len = WLAN_HDR_ADDR3_LEN + WLAN_REASSOCREQ_OFF_CURR_AP + sizeof(*(pFrame->pAddrCurrAP));    return;}/*+ *  * Routine Description: (AP) *  Decode Reassociation Request * * * Return Value: *    None. *-*/VOIDvMgrDecodeReassocRequest(    IN  PWLAN_FR_REASSOCREQ  pFrame     ){    PWLAN_IE   pItem;     pFrame->pHdr = (PUWLAN_80211HDR)pFrame->pBuf;    // Fixed Fields     pFrame->pwCapInfo = (PWORD)(WLAN_HDR_A3_DATA_PTR(&(pFrame->pHdr->sA3))                                + WLAN_REASSOCREQ_OFF_CAP_INFO);    pFrame->pwListenInterval = (PWORD)(WLAN_HDR_A3_DATA_PTR(&(pFrame->pHdr->sA3))                                      + WLAN_REASSOCREQ_OFF_LISTEN_INT);    pFrame->pAddrCurrAP = (PIEEE_ADDR)(WLAN_HDR_A3_DATA_PTR(&(pFrame->pHdr->sA3))                                       + WLAN_REASSOCREQ_OFF_CURR_AP);    // Information elements    pItem = (PWLAN_IE)(WLAN_HDR_A3_DATA_PTR(&(pFrame->pHdr->sA3))                       + WLAN_REASSOCREQ_OFF_SSID);                           while(((PBYTE)pItem) < (pFrame->pBuf + pFrame->len)) {        switch (pItem->byElementID){            case WLAN_EID_SSID:                if (pFrame->pSSID == NULL)                    pFrame->pSSID = (PWLAN_IE_SSID)pItem;                break;            case WLAN_EID_SUPP_RATES:                if (pFrame->pSuppRates == NULL)                                pFrame->pSuppRates = (PWLAN_IE_SUPP_RATES)pItem;                break;            case WLAN_EID_RSN:                if (pFrame->pRSN == NULL) {                    pFrame->pRSN = (PWLAN_IE_RSN)pItem;                }                break;            case WLAN_EID_RSN_WPA:                if (pFrame->pRSNWPA == NULL) {                    if (WPAb_Is_RSN((PWLAN_IE_RSN_EXT)pItem) == TRUE)                        pFrame->pRSNWPA = (PWLAN_IE_RSN_EXT)pItem;                }                break;                                            case WLAN_EID_EXTSUPP_RATES:                if (pFrame->pExtSuppRates == NULL)                                pFrame->pExtSuppRates = (PWLAN_IE_SUPP_RATES)pItem;                break;                            default:                DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO "Unrecognized EID=%dd in reassocreq decode.\n",                            pItem->byElementID);                break;        }        pItem = (PWLAN_IE)(((PBYTE)pItem) + 2 + pItem->len);    }    return;}/*+ *  * Routine Description:  *  Encode Probe Request * * * Return Value: *    None. *-*/VOID vMgrEncodeProbeRequest(    IN PWLAN_FR_PROBEREQ  pFrame     ){    pFrame->pHdr = (PUWLAN_80211HDR)pFrame->pBuf;    pFrame->len = WLAN_HDR_ADDR3_LEN;    return;}/*+ *  * Routine Description:  *  Decode Probe Request * * * Return Value: *    None. *-*/VOID vMgrDecodeProbeRequest(    IN PWLAN_FR_PROBEREQ  pFrame     ){    PWLAN_IE   pItem;     pFrame->pHdr = (PUWLAN_80211HDR)pFrame->pBuf;        // Information elements    pItem = (PWLAN_IE)(WLAN_HDR_A3_DATA_PTR(&(pFrame->pHdr->sA3)));    while( ((PBYTE)pItem) < (pFrame->pBuf + pFrame->len) ) {        switch (pItem->byElementID) {            case WLAN_EID_SSID:                if (pFrame->pSSID == NULL)                    pFrame->pSSID = (PWLAN_IE_SSID)pItem;                break;                            case WLAN_EID_SUPP_RATES:                if (pFrame->pSuppRates == NULL)                    pFrame->pSuppRates = (PWLAN_IE_SUPP_RATES)pItem;                break;                            case WLAN_EID_EXTSUPP_RATES:                if (pFrame->pExtSuppRates == NULL)                                pFrame->pExtSuppRates = (PWLAN_IE_SUPP_RATES)pItem;                break;                                                    default:                DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO "Bad EID=%dd in probereq\n", pItem->byElementID);                break;        }        pItem = (PWLAN_IE)(((PBYTE)pItem) + 2 +  pItem->len);    }        return;}/*+ *  * Routine Description:  *  Encode Probe Response * * * Return Value: *    None. *-*/VOID vMgrEncodeProbeResponse(    IN PWLAN_FR_PROBERESP  pFrame    ){    pFrame->pHdr = (PUWLAN_80211HDR)pFrame->pBuf;    // Fixed Fields     pFrame->pqwTimestamp = (PQWORD)(WLAN_HDR_A3_DATA_PTR(&(pFrame->pHdr->sA3))                                     + WLAN_PROBERESP_OFF_TS);    pFrame->pwBeaconInterval = (PWORD)(WLAN_HDR_A3_DATA_PTR(&(pFrame->pHdr->sA3))                                       + WLAN_PROBERESP_OFF_BCN_INT);    pFrame->pwCapInfo = (PWORD)(WLAN_HDR_A3_DATA_PTR(&(pFrame->pHdr->sA3))                                + WLAN_PROBERESP_OFF_CAP_INFO);    pFrame->len = WLAN_HDR_ADDR3_LEN + WLAN_PROBERESP_OFF_CAP_INFO +                   sizeof(*(pFrame->pwCapInfo));    return;}/*+ *  * Routine Description:  *  Decode Probe Response * * * Return Value: *    None. *-*/VOID vMgrDecodeProbeResponse(    IN PWLAN_FR_PROBERESP  pFrame    ){    PWLAN_IE    pItem;     BYTE        byCheckEID = 0;        pFrame->pHdr = (PUWLAN_80211HDR)pFrame->pBuf;    // Fixed Fields    pFrame->pqwTimestamp = (PQWORD)(WLAN_HDR_A3_DATA_PTR(&(pFrame->pHdr->sA3))                                    + WLAN_PROBERESP_OFF_TS);    pFrame->pwBeaconInterval = (PWORD)(WLAN_HDR_A3_DATA_PTR(&(pFrame->pHdr->sA3))                                       + WLAN_PROBERESP_OFF_BCN_INT);    pFrame->pwCapInfo = (PWORD)(WLAN_HDR_A3_DATA_PTR(&(pFrame->pHdr->sA3))                                + WLAN_PROBERESP_OFF_CAP_INFO);    // Information elements    pItem = (PWLAN_IE)(WLAN_HDR_A3_DATA_PTR(&(pFrame->pHdr->sA3))                       + WLAN_PROBERESP_OFF_SSID);                           while( ((PBYTE)pItem) < (pFrame->pBuf + pFrame->len) ) {        if (pItem->byElementID < byCheckEID)            break;        else            byCheckEID = pItem->byElementID;                switch (pItem->byElementID) {            case WLAN_EID_SSID:                if (pFrame->pSSID == NULL)                             pFrame->pSSID = (PWLAN_IE_SSID)pItem;                break;            case WLAN_EID_SUPP_RATES:                if (pFrame->pSuppRates == NULL)                pFrame->pSuppRates = (PWLAN_IE_SUPP_RATES)pItem;                break;            case WLAN_EID_FH_PARMS:                break;            case WLAN_EID_DS_PARMS:                if (pFrame->pDSParms == NULL)                    pFrame->pDSParms = (PWLAN_IE_DS_PARMS)pItem;                break;            case WLAN_EID_CF_PARMS:                if (pFrame->pCFParms == NULL)                    pFrame->pCFParms = (PWLAN_IE_CF_PARMS)pItem;                break;            case WLAN_EID_IBSS_PARMS:                if (pFrame->pIBSSParms == NULL)                    pFrame->pIBSSParms = (PWLAN_IE_IBSS_PARMS)pItem;                break;            case WLAN_EID_RSN:                if (pFrame->pRSN == NULL) {                    pFrame->pRSN = (PWLAN_IE_RSN)pItem;                }                break;                            case WLAN_EID_RSN_WPA:                if (pFrame->pRSNWPA == NULL) {                    if (WPAb_Is_RSN((PWLAN_IE_RSN_EXT)pItem) == TRUE)                        pFrame->pRSNWPA = (PWLAN_IE_RSN_EXT)pItem;                }                break;                            case WLAN_EID_ERP:                if (pFrame->pERP == NULL)                    pFrame->pERP = (PWLAN_IE_ERP)pItem;                break;            case WLAN_EID_EXTSUPP_RATES:                if (pFrame->pExtSuppRates == NULL)                                pFrame->pExtSuppRates = (PWLAN_IE_SUPP_RATES)pItem;                break;                                                    case WLAN_EID_COUNTRY:      //7                if (pFrame->pIE_Country == NULL)                    pFrame->pIE_Country = (PWLAN_IE_COUNTRY)pItem;                break;                            case WLAN_EID_PWR_CONSTRAINT:   //32                if (pFrame->pIE_PowerConstraint == NULL)                    pFrame->pIE_PowerConstraint = (PWLAN_IE_PW_CONST)pItem;                break;                            case WLAN_EID_CH_SWITCH:    //37                if (pFrame->pIE_CHSW == NULL)                    pFrame->pIE_CHSW = (PWLAN_IE_CH_SW)pItem;                break;                            case WLAN_EID_QUIET:        //40                 if (pFrame->pIE_Quiet == NULL)                    pFrame->pIE_Quiet = (PWLAN_IE_QUIET)pItem;                break;                                                   case WLAN_EID_IBSS_DFS:                if (pFrame->pIE_IBSSDFS == NULL)                    pFrame->pIE_IBSSDFS = (PWLAN_IE_IBSS_DFS)pItem;                break;                                                            default:                DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO "Bad EID=%dd in proberesp\n", pItem->byElementID);                break;        }        pItem = (PWLAN_IE)(((PBYTE)pItem) + 2 +  pItem->len);    }    return;}/*+ *  * Routine Description: *     Encode Authentication frame * * * Return Value: *    None. *-*/VOIDvMgrEncodeAuthen(    IN  PWLAN_FR_AUTHEN  pFrame     ){    pFrame->pHdr = (PUWLAN_80211HDR)pFrame->pBuf;    // Fixed Fields    pFrame->pwAuthAlgorithm = (PWORD)(WLAN_HDR_A3_DATA_PTR(&(pFrame->pHdr->sA3))                                      + WLAN_AUTHEN_OFF_AUTH_ALG);    pFrame->pwAuthSequence = (PWORD)(WLAN_HDR_A3_DATA_PTR(&(pFrame->pHdr->sA3))                                      + WLAN_AUTHEN_OFF_AUTH_SEQ);    pFrame->pwStatus = (PWORD)(WLAN_HDR_A3_DATA_PTR(&(pFrame->pHdr->sA3))                               + WLAN_AUTHEN_OFF_STATUS);    pFrame->len = WLAN_HDR_ADDR3_LEN + WLAN_AUTHEN_OFF_STATUS + sizeof(*(pFrame->pwStatus));    return;}/*+ *  * Routine Description: *   Decode Authentication * * * Return Value: *    None. *-*/VOIDvMgrDecodeAuthen(    IN  PWLAN_FR_AUTHEN  pFrame    ){    PWLAN_IE    pItem;     pFrame->pHdr = (PUWLAN_80211HDR)pFrame->pBuf;    // Fixed Fields    pFrame->pwAuthAlgorithm = (PWORD)(WLAN_HDR_A3_DATA_PTR(&(pFrame->pHdr->sA3))                                       + WLAN_AUTHEN_OFF_AUTH_ALG);    pFrame->pwAuthSequence = (PWORD)(WLAN_HDR_A3_DATA_PTR(&(pFrame->pHdr->sA3))                                     + WLAN_AUTHEN_OFF_AUTH_SEQ);    pFrame->pwStatus = (PWORD)(WLAN_HDR_A3_DATA_PTR(&(pFrame->pHdr->sA3))                               + WLAN_AUTHEN_OFF_STATUS);    // Information elements    pItem = (PWLAN_IE)(WLAN_HDR_A3_DATA_PTR(&(pFrame->pHdr->sA3))                       + WLAN_AUTHEN_OFF_CHALLENGE);                if ((((PBYTE)pItem) < (pFrame->pBuf + pFrame->len)) && (pItem->byElementID == WLAN_EID_CHALLENGE)) {        pFrame->pChallenge = (PWLAN_IE_CHALLENGE)pItem;    }        return;}/*+ *  * Routine Description: *   Encode Authentication * * * Return Value: *    None. *-*/VOIDvMgrEncodeDeauthen(    IN  PWLAN_FR_DEAUTHEN  pFrame    ){    pFrame->pHdr = (PUWLAN_80211HDR)pFrame->pBuf;    // Fixed Fields     pFrame->pwReason = (PWORD)(WLAN_HDR_A3_DATA_PTR(&(pFrame->pHdr->sA3))                               + WLAN_DEAUTHEN_OFF_REASON);    pFrame->len = WLAN_HDR_ADDR3_LEN + WLAN_DEAUTHEN_OFF_REASON + sizeof(*(pFrame->pwReason));    return;}/*+ *  * Routine Description: *   Decode Deauthentication * * * Return Value: *    None. *-*/VOIDvMgrDecodeDeauthen(    IN  PWLAN_FR_DEAUTHEN  pFrame    ){    pFrame->pHdr = (PUWLAN_80211HDR)pFrame->pBuf;    // Fixed Fields    pFrame->pwReason = (PWORD)(WLAN_HDR_A3_DATA_PTR(&(pFrame->pHdr->sA3))                               + WLAN_DEAUTHEN_OFF_REASON);    return;}/*+ *  * Routine Description: (AP) *   Encode Reassociation Response * * * Return Value: *    None. *-*/VOIDvMgrEncodeReassocResponse(    IN  PWLAN_FR_REASSOCRESP  pFrame     ){    pFrame->pHdr = (PUWLAN_80211HDR)pFrame->pBuf;    // Fixed Fields     pFrame->pwCapInfo = (PWORD)(WLAN_HDR_A3_DATA_PTR(&(pFrame->pHdr->sA3))                                + WLAN_REASSOCRESP_OFF_CAP_INFO);    pFrame->pwStatus = (PWORD)(WLAN_HDR_A3_DATA_PTR(&(pFrame->pHdr->sA3))                               + WLAN_REASSOCRESP_OFF_STATUS);    pFrame->pwAid = (PWORD)(WLAN_HDR_A3_DATA_PTR(&(pFrame->pHdr->sA3))                            + WLAN_REASSOCRESP_OFF_AID);                                pFrame->len = WLAN_HDR_ADDR3_LEN + WLAN_REASSOCRESP_OFF_AID + sizeof(*(pFrame->pwAid));    return;}/*+ *  * Routine Description: *   Decode Reassociation Response * * * Return Value: *    None. *-*/VOIDvMgrDecodeReassocResponse(    IN  PWLAN_FR_REASSOCRESP  pFrame     ){    PWLAN_IE   pItem;        pFrame->pHdr = (PUWLAN_80211HDR)pFrame->pBuf;    // Fixed Fields     pFrame->pwCapInfo = (PWORD)(WLAN_HDR_A3_DATA_PTR(&(pFrame->pHdr->sA3))                                + WLAN_REASSOCRESP_OFF_CAP_INFO);    pFrame->pwStatus = (PWORD)(WLAN_HDR_A3_DATA_PTR(&(pFrame->pHdr->sA3))                               + WLAN_REASSOCRESP_OFF_STATUS);    pFrame->pwAid = (PWORD)(WLAN_HDR_A3_DATA_PTR(&(pFrame->pHdr->sA3))                            + WLAN_REASSOCRESP_OFF_AID);    //Information elements    pFrame->pSuppRates = (PWLAN_IE_SUPP_RATES)(WLAN_HDR_A3_DATA_PTR(&(pFrame->pHdr->sA3))                                               + WLAN_REASSOCRESP_OFF_SUPP_RATES);                                                   pItem = (PWLAN_IE)(pFrame->pSuppRates);    pItem = (PWLAN_IE)(((PBYTE)pItem) + 2 + pItem->len);    if ((((PBYTE)pItem) < (pFrame->pBuf + pFrame->len)) && (pItem->byElementID == WLAN_EID_EXTSUPP_RATES)) {        pFrame->pExtSuppRates = (PWLAN_IE_SUPP_RATES)pItem;    }                                                                                         return;}

⌨️ 快捷键说明

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