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

📄 capiclnt.c

📁 是一个手机功能的模拟程序
💻 C
📖 第 1 页 / 共 4 页
字号:
        break;
    case configCACHE_MODE:
        db_setInt(globalRef, (BYTE*) CACHE_MODE, value);
        break;
    case configDISPLAY_IMAGES:
        if ((ref = getObjectRef(objectId)) == DB_null)
            ref = addObject(objectId);
        db_setInt(ref, (BYTE*) DISPLAY_IMAGES, value);
        break;
    case configUPDATE_IMAGES:
        if ((ref = getObjectRef(objectId)) == DB_null)
            ref = addObject(objectId);
        db_setInt(ref, (BYTE*) UPDATE_IMAGES, value);
        break;
    case configPUSH_SECURITY_LEVEL:
        db_setInt(globalRef, (BYTE*) PUSH_SECURITY_LEVEL, value);
        break;
    case configDEFAULT_CHANNEL:
        setDefaultDataChannel(objectId, (UINT8) value);
        break;
    case configCOOKIES_ENABLED:
        db_setInt(globalRef, (BYTE*) COOKIES_ENABLED, value);
        break;
    case configBA_PERSISTENT_ENABLED:
        if( value == 0 )
        	setPersistentAuthStatus( TRUE, 0 );
        else
        	setPersistentAuthStatus( TRUE, 2 );
        break;
    }
}



EXPORT_C VOID  CLNTc_setStrConfig (UINT8 objectId, ConfigStr kind, const CHAR *value, UINT16 length)
{
    BYTE* temp;
    BOOL  error;

#ifdef LOG_EXTERNAL
    char        szFormat[512];
    size_t      strlength, end = 0;
    const char  *csz;

    strlength = strlen(csz = "CLNTc_setStrConfig: \t");
    strncpy(&szFormat[end], csz, strlength);
    end += strlength;

    switch (kind) {
    case configWSP_Language:
        csz = "configWSP_Language";
        break;
    case configPROFILE:
        csz = "configPROFILE";
        break;
    case configPROFILE_DIFF:
        csz = "configPROFILE_DIFF";
        break;
    case configUSERAGENT:
        csz = "configUSERAGENT";
        break;
    default:
        csz = "INVALID ConfigStr";
        break;
    }

    strlength = strlen(csz);
    strncpy(&szFormat[end], csz, strlength);
    end += strlength;
    
    strlength = strlen(csz = "\nconst CHAR * \tvalue \t");
    strncpy(&szFormat[end], csz, strlength);
    end += strlength;
    
    memcpy(&szFormat[end], value, length);
    for (strlength = end; strlength < end+length; strlength++)
        if (!wae_isascii (szFormat[strlength]) ||
            wae_isctrl (szFormat[strlength]))
          szFormat[strlength] = '?';
    end += length;
    
    strlength = strlen(csz = "\nUINT8 \t\tlength \t%u\n\n");
    strncpy(&szFormat[end], csz, strlength);
    end += strlength;

    szFormat[end] = '\0';
    CLNTa_log(objectId, 0, szFormat, length);
#endif

	objectId = objectId;

    error = FALSE;
    switch (kind) {
    case configWSP_Language:
        error = db_setMem(globalRef, (BYTE*) WSP_LANGUAGE, temp = db_createMem(value, length));
        break;
    case configPROFILE:
        error = db_setStr(globalRef, (BYTE*) PROFILE,      temp = db_createStr(value, length));
        break;
    case configPROFILE_DIFF:
        error = db_setMem(globalRef, (BYTE*) PROFILE_DIFF, temp = db_createMem(value, length));
        break;
    case configUSERAGENT:
        error = db_setStr(globalRef, (BYTE*) USER_AGENT,   temp = db_createStr(value, length));
        break;
    }
    if (error)
        OSConnectorFree(temp);
}



EXPORT_C VOID  CLNTc_setDCHIntConfig (UINT8 objectId, UINT8 channelId, ConfigInt kind, UINT32 value)
{
    DB_ref ref;

#ifdef LOG_EXTERNAL
    char        szFormat[256];
    size_t      strlength, end = 0;
    const char  *csz;
    const char  *cszParam  = NULL;

    strlength = strlen(csz = "CLNTc_setDCHIntConfig: \t");
    strncpy(&szFormat[end], csz, strlength);
    end += strlength;

    switch (kind) {
    case configACCESS_TYPE:
        /* Currently supported bearers are:
         * ANY_UDP = 0, GSM_USSD = 2, GSM_SMS = 3, GSM_CSD = 10, GSM_GPRS = 11,
         * and Bluetooth = 150.
         */
        csz = "configACCESS_TYPE";
        switch (value) {
        case BEARER_ANY_UDP:    /* Unknown UDP bearer */
            cszParam = " \t (Any UDP)";
            break;
        case BEARER_GSM_USSD:   /* GSM USSD */
            cszParam = " \t (GSM USSD)";
            break;
        case BEARER_GSM_SMS:    /* GSM SMS  */
            cszParam = " \t (GSM SMS)";
            break;
        case BEARER_GSM_CSD:    /* GSM CSD  */
            cszParam = " \t (GSM CSD)";
            break;
        case BEARER_GSM_GPRS:   /* GSM GPRS  */
            cszParam = " \t (GSM GPRS)";
            break;
        case BEARER_BT:         /* Bluetooth  */
            cszParam = " \t (Bluetooth)";
            break;
        case BEARER_ANY:        /* Unknown bearer  */
            cszParam = " \t (Unknown bearer)";
            break;
        default:
            cszParam = " \t (Currently not a supported bearer.)";
            break;
        }
        break;
    case configONLINE:
        csz = "configONLINE";
        break;
    case configCLIENT_LOCAL_PORT:
        csz = "config";
        break;
    case configUSSD_GW_TYPE:
        csz = "configUSSD_GW_TYPE";
        /*  Currently supported service code types are: none= 0, msisdn= 1 and ip= 2.   */
        switch (value) {
        case 0:     /* none     */
            cszParam = " \t (none)";
            break;
        case 1:     /* msisdn   */
            cszParam = " \t (msisdn)";
            break;
        case 2:     /* ip       */
            cszParam = " \t (ip)";
            break;
        default:
            cszParam = " \t (Currently not a supported service code.)";
            break;
        }
        break;
    case configTIMEOUT:    /*  The time in seconds the client can wait, when downloading has stalled, before the transaction is cancelled. */
        csz = "configTIMEOUT";
        break;
    case configSTACKMODE:
        csz = "configSTACKMODE";
        switch (value) {
        case MODE_CL_WSP:
            cszParam = " \t (MODE_CL_WSP)";
            break;
        case MODE_CL_WTLS:
            cszParam = " \t (MODE_CL_WTLS)";
            break;
        case MODE_CL_WTLS_WTA:
            cszParam = " \t (MODE_CL_WTLS_WTA)";
            break;
        case MODE_CO_WSP:
            cszParam = " \t (MODE_CO_WSP)";
            break;
        case MODE_CO_WTLS:
            cszParam = " \t (MODE_CO_WTLS)";
            break;
        case MODE_CO_WTLS_WTA:
            cszParam = " \t (MODE_CO_WTLS_WTA)";
            break;
        default:
            cszParam = " \t (Currently not a supported stack mode.)";
            break;
        }
        break;
    case configEXPIRES:
        csz = "configEXPIRES";
        break;
    case configMASTER_GW:
        csz = "configMASTER_GW";
        break;
    case configALLOW_WTLS_CLASS_1:
        csz = "configALLOW_WTLS_CLASS_1";
        break;
    default:
        csz = "INVALID ConfigDCHInt";
        break;
    }

    strlength = strlen(csz);
    strncpy(&szFormat[end], csz, strlength);
    end += strlength;

    strlength = strlen(csz = "\nUINT32 \t\tvalue \t%u");
    strncpy(&szFormat[end], csz, strlength);
    end += strlength;

    if (cszParam != NULL) {
        strlength = strlen(cszParam);
        strncpy(&szFormat[end], cszParam, strlength);
        end += strlength;
    }

    szFormat[end++] = '\n';
    szFormat[end++] = '\n';
    szFormat[end] = '\0';
    
    CLNTa_log(objectId, 0, szFormat, (int)value);
#endif

    if ((ref = getChannelRef(objectId, channelId)) == DB_null)
        ref = addDataChannel(objectId, channelId);
    switch (kind) {
    case configACCESS_TYPE:
        db_setInt(ref, (BYTE*) ACCESS_TYPE,       value);
        break;
    case configONLINE:
        db_setInt(ref, (BYTE*) ONLINE,            value);
        break;
    case configCLIENT_LOCAL_PORT:
        db_setInt(ref, (BYTE*) CLIENT_LOCAL_PORT, value);
        break;
    case configUSSD_GW_TYPE:
        db_setInt(ref, (BYTE*) USSD_GW_TYPE,      value);
        break;
    case configTIMEOUT:
        db_setInt(ref, (BYTE*) TIMEOUT,           value);
        break;
    case configSTACKMODE:
        db_setInt(ref, (BYTE*) STACKMODE,         value);
        break;
    case configEXPIRES:
        db_setInt(ref, (BYTE*) CHANNEL_EXPIRES,   value);
        break;
    case configMASTER_GW:
        db_setInt(ref, (BYTE*) MASTER_GW,         value);
        break;
    case configALLOW_WTLS_CLASS_1:
        db_setInt(ref, (BYTE*) ALLOW_WTLS_CLASS_1,value);
        break;
    }
}



EXPORT_C VOID  CLNTc_setDCHStrConfig (UINT8 objectId, UINT8 channelId, ConfigStr kind, const CHAR *value, UINT8 length)
{
    DB_ref ref;
    BYTE*  temp;
    BYTE*  source;
    BYTE*  s;
    UINT16 totLen; 
    UINT8  error;

#ifdef LOG_EXTERNAL
    const unsigned char cNmbrOfFldsIPAdr = 4;
    char          szFormat[512];
    size_t        strlength, end = 0;
    char          *sz;
    const char    *csz;
    BOOL          bFree = FALSE;

    strlength = strlen(csz = "CLNTc_setDCHStrConfig: \t");
    strncpy(&szFormat[end], csz, strlength);
    end += strlength;

    switch (kind) {
    case configUDP_IP_SRC:       /*  ip address  a.b.c.d -> abcd, i.e., the bytes from left to right.    */
        csz = "configUDP_IP_SRC";
        sz = OctetString2HexString(value, cNmbrOfFldsIPAdr);
        if (!sz)
            return;
        bFree = TRUE;
        break;
    case configUDP_IP_GW:        /*  ip address  a.b.c.d -> abcd, i.e., the bytes from left to right.    */
        csz = "configUDP_IP_GW";
        sz = OctetString2HexString(value, cNmbrOfFldsIPAdr);
        if (!sz)
            return;
        bFree = TRUE;
        break;
    case configSMS_C:           /*  msisdn number for SMS center    e.g. "+460703123456"    */
        csz = "configSMS_C";
        break;
    case configSMS_GW:          /*  msisdn number for WAP server    e.g. "+460703123456"    */
        csz = "configSMS_GW";
        break;
    case configUSSD_C:          /*  msisdn number for USSD center   e.g. "+460703123456"    */
        csz = "configUSSD_C";
        break;
    case configUSSD_GW:         /*  Three types of service codes, depending on the value of the configUSSD_SC_TYPE variable. Examples:  no SC. ""  msisdn: "+460703123456"  ip: "abcd" */
        csz = "configUSSD_GW";
        break;
    case configAUTH_PASS_GW:    /*  The password for the WAP proxy server   */
        csz = "configAUTH_PASS_GW";
        break;
    case configAUTH_ID_GW:      /*  The user id for the WAP proxy server    */
        csz = "configAUTH_ID_GW";
        break;
    case configSTARTPAGE:
        csz = "configSTARTPAGE";
        break;
    case configPROXY_PROVIDER_ID:
        csz = "configPROXY_PROVIDER_ID";
        break;
    case configADD_HOST:
        csz = "configADD_HOST";
        break;
    case configDELETE_HOST:
        csz = "configDELETE_HOST";
        break;
    default:
        csz = "INVALID configDCHStr";
        break;
    }
    strlength = strlen(csz);
    strncpy(&szFormat[end], csz, strlength);
    end += strlength;

    strlength = strlen(csz = "\nconst CHAR * \tvalue \t");
    strncpy(&szFormat[end], csz, strlength);
    end += strlength;

    memcpy(&szFormat[end], value, length);
    for (strlength = end; strlength < end+length; strlength++)
        if (!wae_isascii (szFormat[strlength]) ||
            wae_isctrl (szFormat[strlength]))
          szFormat[strlength] = '?';
    end += length;

    strlength = strlen(csz = "\nUINT8 \t\tlength \t%u\n\n");
    strncpy(&szFormat[end], csz, strlength);
    end += strlength;

    szFormat[end] = '\0';
    CLNTa_log(objectId, 0, szFormat, length);
    if (bFree)
        OSConnectorFree(sz);
#endif

    error = FALSE;
    if ((ref = getChannelRef(objectId, channelId)) == DB_null)
        ref = addDataChannel(objectId, channelId);
    switch (kind) {
    case configUDP_IP_SRC:
        error = db_setMem(ref, (BYTE*) UDP_IP_SRC, temp = db_createMem(value,(UINT16) length));
        break;
    case configUDP_IP_GW:
        error = db_setMem(ref, (BYTE*) UDP_IP_GW,  temp = db_createMem(value,(UINT16) length));
        break;
    case configSMS_C:
        error = db_setMem(ref, (BYTE*) SMS_C,      temp = db_createMem(value,(UINT16) length));
        break;
    case configSMS_GW:
        error = db_setMem(ref, (BYTE*) SMS_GW,     temp = db_createMem(value,(UINT16) length));
        break;
    case configUSSD_C:
        error = db_setMem(ref, (BYTE*) USSD_C,     temp = db_createMem(value,(UINT16) length));
        break;
    case configUSSD_GW:
        error = db_setMem(ref, (BYTE*) USSD_GW,    temp = db_createMem(value,(UINT16) length));
        break;
    case configAUTH_PASS_GW:

⌨️ 快捷键说明

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