void ITransferObj::OnTransferRequest(ERequestSource eReqFrom, SapConnection_ptr ptrConn, const void *pBuffer, int nLen,const void*pExhead, int nExlen) { SSapMsgHeader *pHead=(SSapMsgHeader *)pBuffer; unsigned int dwOldSeq=pHead->dwSequence; unsigned int dwNewSeq=m_seq++; pHead->dwSequence=dwNewSeq; SPeerSeqPtr & s=m_SocSeqPtr[dwNewSeq]; s.dwSeq=dwOldSeq; s.ptrConn=ptrConn; s.dwServiceId = ntohl(pHead->dwServiceId); s.dwMsgId = ntohl(pHead->dwMsgId); s.eReqSource = eReqFrom; //s.pCSObj = NULL; s.sInfo = GetRequestInfo(pBuffer,nLen); s.strAddr = GetIpAddr(pBuffer,nLen,pExhead,nExlen); m_pManager->GetLogTrigger()->BeginTrigger(pBuffer,nLen,s.sLog); m_pManager->gettimeofday(&(s.tmReceived), false); s.ullTimeout = s.tmReceived.tv_sec * 1000LL + s.tmReceived.tv_usec / 1000; s.ullTimeout += ASC_TIMEOUT_INTERVAL * 1000; m_TimeList.insert(make_pair(s.ullTimeout, dwNewSeq)); SS_XLOG(XLOG_DEBUG,"ITransferObj::%s, seq[%u],buffer[%x],nlen[%d], rquest from[%d], old seq[%d]\n", __FUNCTION__,dwNewSeq,pBuffer,nLen, eReqFrom, dwOldSeq); WriteData(pBuffer,nLen, pExhead, nExlen); }
int ITransferObj::OnTransferAVSRequest(SapConnection_ptr ptrConn, const void *pBuffer, int nLen) { SSapMsgHeader *pHead=(SSapMsgHeader *)pBuffer; unsigned int dwOldSeq=pHead->dwSequence; unsigned int dwNewSeq=m_seq++; pHead->dwSequence=dwNewSeq; int nRet = WriteAvs(pBuffer,nLen); if (nRet == 0) { SPeerSeqPtr & s=m_SocSeqPtr[dwNewSeq]; s.dwSeq=dwOldSeq; s.dwServiceId = ntohl(pHead->dwServiceId); s.dwMsgId = ntohl(pHead->dwMsgId); s.eReqSource = SAP_Request_Remote; s.ptrConn = ptrConn; s.sInfo = GetRequestInfo(pBuffer,nLen); s.strAddr = GetIpAddr(pBuffer,nLen,NULL,0); m_pManager->gettimeofday(&(s.tmReceived), false); s.ullTimeout = s.tmReceived.tv_sec * 1000LL + s.tmReceived.tv_usec / 1000; s.ullTimeout += ASC_TIMEOUT_INTERVAL * 1000; m_TimeList.insert(make_pair(s.ullTimeout, dwNewSeq)); m_pManager->GetLogTrigger()->BeginTrigger(pBuffer,nLen,s.sLog); SS_XLOG(XLOG_DEBUG,"%s::%s, seq[%u], old seq[%d]\n", m_strModule.c_str(),__FUNCTION__,dwNewSeq, dwOldSeq); } return nRet; }
void ITransferObj::OnTransferMapQRequest(void *pExBuffer, int nExLen) { SForwardMsg *pForwardMsg = (SForwardMsg*)pExBuffer; int nLen = nExLen - sizeof(SForwardMsg); SSapMsgHeader *pHead = (SSapMsgHeader *)(pForwardMsg->pBuffer); unsigned int dwOldSeq = pHead->dwSequence; unsigned int dwNewSeq = m_seq++; pHead->dwSequence=dwNewSeq; SPeerSeqPtr & s=m_SocSeqPtr[dwNewSeq]; s.dwSeq=dwOldSeq; s.dwServiceId = ntohl(pHead->dwServiceId); s.dwMsgId = ntohl(pHead->dwMsgId); s.eReqSource = SAP_Request_MapQ; //s.pCSObj = NULL; s.sAckInfo.bAckMsg = true; s.sAckInfo.pExBuffer = pExBuffer; s.sAckInfo.nExLen = nExLen; s.strAddr = GetIpAddr(pForwardMsg->pBuffer,nLen,NULL,0); s.sCompose.dwServiceId = pForwardMsg->dwComposeSrvId; s.sCompose.dwMsgId = pForwardMsg->dwComposeMsgId; //s.dwOriginalSeq = pForwardMsg->dwOriginalSeq; s.sInfo = GetRequestInfo(pForwardMsg->pBuffer,nLen); m_pManager->gettimeofday(&(s.tmReceived), false); s.ullTimeout = s.tmReceived.tv_sec * 1000LL + s.tmReceived.tv_usec / 1000; s.ullTimeout += ASC_TIMEOUT_INTERVAL * 1000; m_TimeList.insert(make_pair(s.ullTimeout, dwNewSeq)); SS_XLOG(XLOG_DEBUG,"%s::%s, seq[%u],buffer[%x],nlen[%d], rquest from[%d], old seq[%d]\n", m_strModule.c_str(),__FUNCTION__,dwNewSeq,pExBuffer,nExLen, SAP_Request_MapQ, dwOldSeq); //((CSessionManager *)m_pManager)->m_oReportData.dwRequest++; WriteData(pForwardMsg->pBuffer,nLen); }
int ProcFileRequest() { int SocketFD; int len; unsigned char *Data = NULL; FILE *fp; char FileName[SMALL_BUFF]; char TimeStamp[TIMESTAMP_SIZE]; REQ_HEADER_T InputHeader; RES_HEADER_T OutputHeader; REQ_AGPSFILE_T Query; memset(&InputHeader, 0, sizeof(REQ_HEADER_T)); memset(&OutputHeader, 0, sizeof(RES_HEADER_T)); memset(&Query, 0, sizeof(REQ_AGPSFILE_T)); memset(&TimeStamp, 0, TIMESTAMP_SIZE); InputHeader.Version = VERSION_01; InputHeader.ServiceID = MSG_AGPSFILE_REQ; GetRequestInfo(&Query); if((SocketFD = connect_to_server(SERVER_IP, SERVER_PORT)) < 0) { printf("Socket Connection Error.....\n"); exit(-1); } InputHeader.Version = htonl(InputHeader.Version); InputHeader.ServiceID = htonl(InputHeader.ServiceID); if((len = writen(SocketFD, &InputHeader, sizeof(REQ_HEADER_T))) != sizeof(REQ_HEADER_T)) { printf("Write Error...\n"); exit(-1); } Query.CompanyID = htonl(Query.CompanyID); Query.FileType = htonl(Query.FileType); writen(SocketFD, &Query, sizeof(REQ_AGPSFILE_T)); Query.CompanyID = ntohl(Query.CompanyID); Query.FileType = ntohl(Query.FileType); readn(SocketFD, &OutputHeader, sizeof(RES_HEADER_T)); OutputHeader.Version = ntohl(OutputHeader.Version); OutputHeader.ServiceID = ntohl(OutputHeader.ServiceID); OutputHeader.ErrorCode = ntohl(OutputHeader.ErrorCode); OutputHeader.Count = ntohl(OutputHeader.Count); printf("---------------------------------------------------------------\n"); printf("Version(%d)ServiceID(%d)ErrorCode(%d)Count(%d)\n", OutputHeader.Version, OutputHeader.ServiceID, OutputHeader.ErrorCode, OutputHeader.Count); if(OutputHeader.Count > 0) { if((Data = (unsigned char *) malloc(OutputHeader.Count+1+TIMESTAMP_SIZE)) == NULL) { printf("Memory Allocation Error...(%d)\n", (OutputHeader.Count+TIMESTAMP_SIZE)); exit(-1); } memset(Data, 0, (OutputHeader.Count+1+TIMESTAMP_SIZE)); if((len = readn(SocketFD, Data, OutputHeader.Count+TIMESTAMP_SIZE)) != (OutputHeader.Count+TIMESTAMP_SIZE)) { printf("Read Error...(%d/%d)\n", len, (OutputHeader.Count+TIMESTAMP_SIZE)); exit(-1); } memcpy(TimeStamp, Data, TIMESTAMP_SIZE); printf("TimeStamp(%s)\n", TimeStamp); sprintf(FileName, "./RESULT_%02d_%02d.DAT", Query.CompanyID, Query.FileType); if((fp = fopen(FileName, "wb")) == NULL) { printf("File(%s) open Error..\n", FileName); exit(-1); } fwrite(Data+TIMESTAMP_SIZE, 1, OutputHeader.Count, fp); fclose(fp); free(Data); } close(SocketFD); return 1; }