Ejemplo n.º 1
0
AIM_RESULT	OnRspGetDegree(AMVoid *pvArg, AIM_RSP_GET_DEGREE *pRspGetDegree)
{
    IAIM *pIM = (IAIM*)(((AMPVoid*)pvArg)[1]);
    IAIMessage	*pMsg = AMNULL;
    AMChar		*pBuf = AMNULL;
    AMInt32		iLen = 0;

    AMAssert(AMNULL != pIM && AMNULL != pRspGetDegree);

    DPRINT("IASessionModel_OnGetDegree.........................Entering!\n");

    pMsg = IAIMessage_Create();
    if(pRspGetDegree->szContactId)
        IAIMessage_SetCntID(pMsg, pRspGetDegree->szContactId, AMStrlen(pRspGetDegree->szContactId));

    if(0 == pRspGetDegree->iRetCode)//成功
    {
        pMsg->eType = (AIM_MSG_TYPE)GET_DEGREE_OK;
        pBuf = (AMChar *)AMMalloc(MAX_INT_NUMBER_LEN*3);
        if(AMNULL == pBuf)
        {
            IAIMessage_Destroy(pMsg);
            return eAIM_RESULT_MALLOC_ERROR;
        }
        AMMemset(pBuf, 0, MAX_INT_NUMBER_LEN*3);
        iLen += _AIMItoa(pRspGetDegree->iUserLevel, pBuf);
        pBuf[iLen++] = ',';
        iLen += _AIMItoa(pRspGetDegree->iTotalDegree, pBuf+iLen);
        pBuf[iLen++] = ',';
        iLen += _AIMItoa(pRspGetDegree->iNeedDegree, pBuf+iLen);
        pMsg->szContent	= pBuf;
    }
    else//失败
    {
        DPRINT("IASessionModel_OnGetDegree.......................Fail!\n");
        pMsg->eType = (AIM_MSG_TYPE)GET_DEGREE_FAIL;
    }

    DPRINT("IASessionModel_OnGetDegree.......................%s\n", pMsg->szContent);

    Adapter_OnIncomingSysMsg(pIM->pSesModel, pMsg, pvArg);

    IAIMessage_Destroy(pMsg);

    DPRINT("IASessionModel_OnGetDegree.........................OK!\n");

    return eAIM_RESULT_OK;
}
Ejemplo n.º 2
0
static AMChar	*_genSession()
{
	AMInt32	iGMTime = AMGetUpTime(AMNULL);
	AMChar *szSession = AMNULL;
	AMInt32 iUsed = 0, i = 0;

	szSession = (AMChar *)AMMalloc(LEN_SESSION + 1);
	if(!szSession)
		return AMNULL;
	AMMemset(szSession, 0, LEN_SESSION + 1);
	AMStrcpy(szSession, SESSION_PREFIX_AIM);
	iUsed = sizeof(SESSION_PREFIX_AIM) + _AIMItoa(iGMTime, szSession + sizeof(SESSION_PREFIX_AIM) - 1) -1;

	for(i=iUsed; i<LEN_SESSION; i++)
		szSession[i] = '0';

	return szSession;
}
Ejemplo n.º 3
0
AIM_RESULT	OnRspGetVerify(AMVoid *pvArg, AIM_RSP_GET_VERIFY *pRspGetVerify)
{
    IAIM *pIM = (IAIM*)(((AMPVoid*)pvArg)[1]);
    IAIMessage	*pMsg = 0;
    AMChar		szBuf[20] = {0};

    AMAssert(NULL != pIM && NULL != pIM->pAcnt);

    pMsg = IAIMessage_Create();
    pMsg->bUnread = AMTRUE;
    pMsg->eType = (AIM_MSG_TYPE)GET_PEER_ADD_VERIFY;
    IAIMessage_SetCntID(pMsg, pRspGetVerify->szContactId, AMStrlen(pRspGetVerify->szContactId));

    _AIMItoa(pRspGetVerify->iRetCode, szBuf);
    IAIMessage_SetContent(pMsg, szBuf, AMStrlen(szBuf));
    DPRINT("IASessionModel_OnPeerVerifyConfig..............%s\n", pMsg->szContent);

    Adapter_OnIncomingSysMsg(pIM->pSesModel, pMsg, pvArg);

    IAIMessage_Destroy(pMsg);

    return eAIM_RESULT_OK;
}