예제 #1
0
파일: ZGAdhocMgrII.c 프로젝트: bend/PIC
enum tFSMValidStates
adHocDomNextState( tZGVoidInput  )
{
    enum tFSMValidStates nextState = kSTIdle;

    if ( APPCXT.FSM.stateStatus != kFAILURE )
    {

        switch ( ZG_GET_ENC_TYPE() )
        {

        case kKeyTypeWep:
            nextState = kSTInstallWEPKey;
            break;

        case kKeyTypeCalcPsk:
        case kKeyTypePsk:
            nextState = kSTIdle;
            ZG_SETNEXT_MODE( kZGLMNetworkModeIdle );
#if defined ( ZG_CONFIG_CONSOLE )
            ZG_PUTRSUART("PSK/WPA not supported in AdHoc mode.\n\r");
#endif
            break;

        case kKeyTypeNone:
            nextState = kSTScan;
            break;

        default:
            ZGSYS_MODULE_ASSERT(1, (ROM FAR char*) "Unknown security encryption type");
            break;
        }

    }

    return nextState;

}
예제 #2
0
파일: ZGAdhocMgrII.c 프로젝트: bend/PIC
tZGU8
adHocStartRequest( void * const ptrRequest, tZGVoidInput *appOpaquePtr)
{
    tZGAdhocStartReqPtr ptrStart = (tZGAdhocStartReqPtr)ptrRequest;

    /* choose the first channel in ordered list for network start */
    if ( ZG_GET_ACTIVE_CHANNELS() == 0u )
    {
        ZGSYS_MODULE_ASSERT(1, (ROM FAR char *)"Adhoc StartReq: empty channel list\n\r");
    }
    else
        ptrStart->channel = ZG_CHANNEL(0);

    ptrStart->beaconPrd = HSTOZGS( (tZGU16) 100);
    ptrStart->capInfo[0] = kZGAdhocMgrCapBitIbss; /* was | kZGAdhocMgrCapBitShortPreamble;  0x22 */

    /* If in WEP mode, set the corresponding bit. */
    if ( ZG_GET_ENC_TYPE() == (tZGU8)kKeyTypeWep )
    {
        ptrStart->capInfo[0] = ptrStart->capInfo[0] | kZGAdhocMgrCapBitPrivacy;
    }

    ptrStart->capInfo[1] = 0;
    ptrStart->ssidLen = ZG_SSID_LEN();
    memcpy( (void *) ptrStart->ssid, (const void*) ZG_GET_SSID(), ptrStart->ssidLen);

    /* These values are part of the adhoc network beacon */
    /* and are part of the "basic rate" set, not to be */
    /* confused with supported rate set */
    ptrStart->dataRateLen = 2;
    ptrStart->dataRates[0] = 0x82; /* 1Mbps */
    ptrStart->dataRates[1] = 0x84; /* 2Mbps */

    ZG_PUTRSUART("Start ...\n\r");

    return ( sizeof(tZGAdhocStartReq) );
}
/*****************************************************************************
* FUNCTION: IwconfigDisplayStatus
*
* RETURNS: None
*
* PARAMS:    None
*
* NOTES:   Responds to the user invoking ifconfig with no parameters
*****************************************************************************/
static tZGVoidReturn IwprivDisplayStatus(tZGVoidInput)
{

    tZGU8 i, j;
    tZGU8Ptr ptrTemp;

    sprintf( (char *) g_ConsoleContext.txBuf,

#if defined( __18CXX)
        "\nEncryption: %HS\n\r",
#else
        "\nEncryption: %s\n\r",
#endif
        (ROM FAR char*) ZG_GET_CUR_ENC_STR() );

    ZG_PUTSUART( (char *) g_ConsoleContext.txBuf );

    switch ( ZG_GET_ENC_TYPE() )
    {

    case kKeyTypeWep:

        sprintf( (char *) g_ConsoleContext.txBuf,
#if defined( __18CXX)
            "  Auth: %HS\n\r",
#else
            "  Auth: %s\n\r",
#endif
            (ROM FAR char*) ZG_GET_CUR_AUTH_STR());
        ZG_PUTSUART( (char *) g_ConsoleContext.txBuf );

        for( j=0; j < (tZGU8)kZGNumDefWepKeys; j++)
        {

            if ( j == ZG_GET_WEP_ACTIVE_INDEX() )
                ZG_PUTRSUART("* ");
            else
                ZG_PUTRSUART("  ");

            sprintf( (char *) g_ConsoleContext.txBuf,
                "Wep key[%d]:  0x",j+1);
            ZG_PUTSUART( (char *) g_ConsoleContext.txBuf );

            ptrTemp = ZG_GET_WEPKEY(j);

            for ( i=0; i < ZG_GET_WEP_KEY_LEN(); i++ )
            {
                sprintf( (char *) g_ConsoleContext.txBuf,
                    "%.2x", ptrTemp[i]);
                ZG_PUTSUART( (char *) g_ConsoleContext.txBuf );
            }

            ZG_PUTRSUART("\n\r");

        }

        break;

    case kKeyTypePsk:

        ZG_PUTRSUART("  PSK:  0x");

        ptrTemp = ZG_GET_WPAPSK();

        for ( i=0; i <  (tZGU8)kZGMaxPmkLen; i++ )
        {
            sprintf( (char *) g_ConsoleContext.txBuf,
                "%.2x", ptrTemp[i]);
            ZG_PUTSUART( (char *) g_ConsoleContext.txBuf );

        }

        ZG_PUTRSUART("\n\r");
        break;

    case kKeyTypeCalcPsk:

        /* if no pass phrase show a user friendly string */
        if ( ZG_GET_PASSPHRASE_LEN() == 0u )
        {
            sprintf( (char *) g_ConsoleContext.txBuf,
#if defined( __18CXX)
                "  Phrase:  \"%HS\"\n\r",
#else
                "  Phrase:  \"%s\"\n\r",
#endif
                (ROM FAR char*)  kZGNone);
        }
        else
        {
            sprintf( (char *) g_ConsoleContext.txBuf,
                "  Phrase:  \"%s\"\n\r",
                ZG_GET_WPA_PASSPHRASE() );
        }
        ZG_PUTSUART( (char *) g_ConsoleContext.txBuf );


        sprintf( (char *) g_ConsoleContext.txBuf,
            "  SSID:    %s\n\r", ZG_GET_SSID());
        ZG_PUTSUART( (char *) g_ConsoleContext.txBuf );

        break;

    }


}