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; }
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; }
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; }