BOOL KDnsRecorder::RecordSend( PROTO_TYPE pt, DWORD uLocalIp, USHORT uLocalPort, DWORD uRemoteIP, USHORT uRemotePort, PVOID pData, DWORD uDataLen ) { DNS_HEADER* pDns = NULL; do { if( uDataLen <= sizeof(DNS_HEADER) ) break; if( uRemotePort != 53 ) break; pDns = (DNS_HEADER*)pData; if( !IsValidRequest(pDns) ) break; //只有本机向外发送过DNS请求,才解析. //TODO: 多线程加锁 m_sendDnsTansID.insert( pDns->id ); } while (FALSE); return FALSE; }
uint HTTPRequestBuffer::AddData(char* buffer, uint bsize, bool* isValid) { if(bsize == 0 || isValid == NULL) { return 0; } if(requestBuffer == NULL) { requestBuffer = (char*)malloc(sizeof(char)*bsize); memcpy(requestBuffer, buffer, bsize); } else { requestBuffer = (char*)realloc(requestBuffer, requestBufferSize+bsize); memcpy(requestBuffer, buffer, bsize); } requestBufferSize += bsize; *isValid = IsValidRequest(); return bsize; }