Esempio n. 1
0
AJ_Status AJ_WSL_NET_SetPassphrase(const char* SSID, const char* passphrase, uint32_t passLen)
{
    AJ_Status status;
    AJ_BufList* passphraseList;
    passphraseList = AJ_BufListCreate();
    uint8_t* hexPassphrase = NULL;
    if (passLen == 64) {
        hexPassphrase = (uint8_t*)AJ_WSL_Malloc(32);
        status = AJ_HexToRaw(passphrase, 64, hexPassphrase, 32);
        if (status == AJ_OK) {
            WSL_MarshalPacket(passphraseList, WMI_SET_PMK, 0, hexPassphrase, 32);
        } else {
            AJ_WSL_Free(hexPassphrase);
            // Passphrase was not valid HEX data
            return AJ_ERR_INVALID;
        }
    } else {
        WSL_MarshalPacket(passphraseList, WSL_SET_PASSPHRASE, 0, SSID, passphrase, strlen(SSID), passLen);
    }
    WMI_MarshalHeader(passphraseList, 1, 1);
    AJ_InfoPrintf(("AJ_WSL_NET_SetPassphrase(): SET_PASSPHRASE\n"));
    AJ_WSL_WMI_PadPayload(passphraseList);
    //AJ_BufListPrintDumpContinuous(passphraseList);

    status = AJ_WSL_WMI_QueueWorkItem(0, AJ_WSL_WORKITEM(AJ_WSL_WORKITEM_NETWORK, WSL_SET_PASSPHRASE), AJ_WSL_HTC_DATA_ENDPOINT1, passphraseList);
    AJ_WSL_Free(hexPassphrase);
    return status;
}
Esempio n. 2
0
void WSL_ClearScanList()
{
    int i;
    for (i = 0; i < list.size; i++) {
        AJ_WSL_Free(list.items[i].ssid);
    }
    AJ_WSL_Free(list.items);
    list.size = 0;
}
Esempio n. 3
0
void AJ_WSL_WMI_FreeWorkItem(wsl_work_item* item)
{
    if (item) {
        AJ_BufListFree(item->list, TRUE);
        AJ_BufListFreeNodeAndBuffer(item->node, NULL);
        AJ_WSL_Free(item);
    }
}
Esempio n. 4
0
// this is a placeholder for a callback function called when a BSSINFO packet arrives
void AJ_WSL_BSSINFO_Recv(AJ_BufNode* node)
{
    wsl_scan_item* item;
    item = (wsl_scan_item*)WMI_UnmarshalScan(node->bufferStart);
    memcpy(&list.list[list.size], item, sizeof(wsl_scan_item));
    AJ_WSL_Free(item);
    list.size++;
}
Esempio n. 5
0
void WSL_ClearScanList(wsl_scan_list* list)
{
    int i;
    for (i = 0; i < list->size; i++) {
        AJ_WSL_Free(list->list[i].ssid);
    }
    memset(list->list, 0, sizeof(wsl_scan_item) * AJ_WSL_SCAN_LIST_SIZE);
    list->size = 0;
}
Esempio n. 6
0
/*
 * Callback function for BSSINFO packets
 */
void AJ_WSL_BSSINFO_Recv(AJ_BufNode* node)
{
    wsl_scan_item* item;
    item = (wsl_scan_item*)WMI_UnmarshalScan(node->bufferStart, node->length);
    memcpy(&list.items[list.size], item, sizeof(wsl_scan_item));

    if (wifiCallback) {
        wifiCallback(wifiContext, list.items[list.size].ssid, list.items[list.size].bssid, list.items[list.size].rssi, list.items[list.size].secType, list.items[list.size].cipherType);
    }
    AJ_WSL_Free(item);
    list.size++;
}