I think i finnally fixed message loggine....

This commit is contained in:
phr0z3nt04st
2010-06-08 20:09:40 -05:00
parent 3203c126d8
commit 9acbbfdd44
4 changed files with 12 additions and 26 deletions

View File

@@ -9,20 +9,8 @@ LLMessageLogEntry::LLMessageLogEntry(EType type, LLHost from_host, LLHost to_hos
{ {
if(data) if(data)
{ {
mData.resize(data_size); mData = new U8[data_size];
mData.assign(data,data + data_size); memcpy(mData, data, data_size);
}
}
LLMessageLogEntry::LLMessageLogEntry(EType type, LLHost from_host, LLHost to_host, std::vector<U8> data, S32 data_size)
: mType(type),
mFromHost(from_host),
mToHost(to_host),
mDataSize(data_size)
{
if(data.size())
{
mData.resize(data.size());
std::copy(data.begin(),data.end(),mData.begin());
} }
} }
LLMessageLogEntry::~LLMessageLogEntry() LLMessageLogEntry::~LLMessageLogEntry()
@@ -44,6 +32,7 @@ void LLMessageLog::setCallback(void (*callback)(LLMessageLogEntry))
void LLMessageLog::log(LLHost from_host, LLHost to_host, U8* data, S32 data_size) void LLMessageLog::log(LLHost from_host, LLHost to_host, U8* data, S32 data_size)
{ {
LLMessageLogEntry entry = LLMessageLogEntry(LLMessageLogEntry::TEMPLATE, from_host, to_host, data, data_size); LLMessageLogEntry entry = LLMessageLogEntry(LLMessageLogEntry::TEMPLATE, from_host, to_host, data, data_size);
if(!entry.mDataSize || !entry.mData) return;
if(sCallback) sCallback(entry); if(sCallback) sCallback(entry);
if(!sMaxSize) return; if(!sMaxSize) return;
sDeque.push_back(entry); sDeque.push_back(entry);

View File

@@ -17,13 +17,12 @@ public:
HTTP_RESPONSE HTTP_RESPONSE
}; };
LLMessageLogEntry(EType type, LLHost from_host, LLHost to_host, U8* data, S32 data_size); LLMessageLogEntry(EType type, LLHost from_host, LLHost to_host, U8* data, S32 data_size);
LLMessageLogEntry(EType type, LLHost from_host, LLHost to_host, std::vector<U8> data, S32 data_size);
~LLMessageLogEntry(); ~LLMessageLogEntry();
EType mType; EType mType;
LLHost mFromHost; LLHost mFromHost;
LLHost mToHost; LLHost mToHost;
S32 mDataSize; S32 mDataSize;
std::vector<U8> mData; U8* mData;
}; };
class LLMessageLog class LLMessageLog
{ {

View File

@@ -568,7 +568,7 @@ BOOL LLMessageSystem::checkMessages( S64 frame_count )
//dumpPacketToLog(); //dumpPacketToLog();
// <edit> // <edit>
if(mTrueReceiveSize) if(mTrueReceiveSize && receive_size > (S32) LL_MINIMUM_VALID_PACKET_SIZE)
{ {
LLMessageLog::log(mLastSender, LLHost(16777343, mPort), buffer, mTrueReceiveSize); LLMessageLog::log(mLastSender, LLHost(16777343, mPort), buffer, mTrueReceiveSize);
} }

View File

@@ -41,10 +41,10 @@ LLFloaterMessageLogItem::LLFloaterMessageLogItem(LLMessageLogEntry entry)
{ {
BOOL decode_invalid = FALSE; BOOL decode_invalid = FALSE;
S32 decode_len = mDataSize; S32 decode_len = mDataSize;
std::vector<U8> DecodeBuffer(MAX_PACKET_LEN,0); U8 DecodeBuffer[MAX_PACKET_LEN];
DecodeBuffer.assign(mData.begin(),mData.end()); memcpy(&(DecodeBuffer[0]),mData,decode_len);
mFlags = DecodeBuffer[0];
U8* decodep = &(DecodeBuffer[0]); U8* decodep = &(DecodeBuffer[0]);
mFlags = DecodeBuffer[0];
gMessageSystem->zeroCodeExpand(&decodep, &decode_len); gMessageSystem->zeroCodeExpand(&decodep, &decode_len);
if(decode_len < 7) if(decode_len < 7)
decode_invalid = TRUE; decode_invalid = TRUE;
@@ -142,8 +142,8 @@ std::string LLFloaterMessageLogItem::getFull(BOOL show_header)
{ {
BOOL decode_invalid = FALSE; BOOL decode_invalid = FALSE;
S32 decode_len = mDataSize; S32 decode_len = mDataSize;
std::vector<U8> DecodeBuffer(MAX_PACKET_LEN,0); U8 DecodeBuffer[MAX_PACKET_LEN];
DecodeBuffer.assign(mData.begin(),mData.end()); memcpy(&(DecodeBuffer[0]),mData,decode_len);
U8* decodep = &(DecodeBuffer[0]); U8* decodep = &(DecodeBuffer[0]);
gMessageSystem->zeroCodeExpand(&decodep, &decode_len); gMessageSystem->zeroCodeExpand(&decodep, &decode_len);
if(decode_len < 7) if(decode_len < 7)
@@ -447,10 +447,8 @@ BOOL LLMessageLogFilterApply::tick()
} }
return TRUE; return TRUE;
} }
if((*mIter).mData.size())
{ LLFloaterMessageLog::sInstance->conditionalLog(LLFloaterMessageLogItem((*mIter)));
LLFloaterMessageLog::sInstance->conditionalLog(LLFloaterMessageLogItem((*mIter)));
}
mIter++; mIter++;
mProgress++; mProgress++;