summaryrefslogtreecommitdiff
path: root/indra/llmessage/message.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'indra/llmessage/message.cpp')
-rw-r--r--indra/llmessage/message.cpp118
1 files changed, 34 insertions, 84 deletions
diff --git a/indra/llmessage/message.cpp b/indra/llmessage/message.cpp
index 099b6a0a5b..6fb319326b 100644
--- a/indra/llmessage/message.cpp
+++ b/indra/llmessage/message.cpp
@@ -33,6 +33,7 @@
// linden library headers
#include "indra_constants.h"
+#include "lldarray.h"
#include "lldir.h"
#include "llerror.h"
#include "llfasttimer.h"
@@ -447,7 +448,6 @@ private:
};
-
// static
BOOL LLMessageSystem::mTimeDecodes = FALSE;
@@ -827,6 +827,9 @@ void LLMessageSystem::init()
mMessageFileChecksum = 0;
mMessageFileVersionNumber = 0.f;
+
+ mTimingCallback = NULL;
+ mTimingCallbackData = NULL;
}
LLMessageSystem::LLMessageSystem()
@@ -3480,7 +3483,7 @@ BOOL LLMessageSystem::decodeData(const U8* buffer, const LLHost& sender )
{
static LLTimer decode_timer;
- if( mTimeDecodes )
+ if( mTimeDecodes || mTimingCallback )
{
decode_timer.reset();
}
@@ -3503,25 +3506,36 @@ BOOL LLMessageSystem::decodeData(const U8* buffer, const LLHost& sender )
// VTPause(); // VTune
// }
- if( mTimeDecodes )
+ if( mTimeDecodes || mTimingCallback )
{
F32 decode_time = decode_timer.getElapsedTimeF32();
- mCurrentRMessageTemplate->mDecodeTimeThisFrame += decode_time;
-
- mCurrentRMessageTemplate->mTotalDecoded++;
- mCurrentRMessageTemplate->mTotalDecodeTime += decode_time;
- if( mCurrentRMessageTemplate->mMaxDecodeTimePerMsg < decode_time )
+ if (mTimingCallback)
{
- mCurrentRMessageTemplate->mMaxDecodeTimePerMsg = decode_time;
+ mTimingCallback(mCurrentRMessageTemplate->mName,
+ decode_time,
+ mTimingCallbackData);
}
-
- if( decode_time > mTimeDecodesSpamThreshold )
+ if (mTimeDecodes)
{
- lldebugs << "--------- Message " << mCurrentRMessageTemplate->mName << " decode took " << decode_time << " seconds. (" <<
- mCurrentRMessageTemplate->mMaxDecodeTimePerMsg << " max, " <<
- (mCurrentRMessageTemplate->mTotalDecodeTime / mCurrentRMessageTemplate->mTotalDecoded) << " avg)" << llendl;
+ mCurrentRMessageTemplate->mDecodeTimeThisFrame += decode_time;
+
+ mCurrentRMessageTemplate->mTotalDecoded++;
+ mCurrentRMessageTemplate->mTotalDecodeTime += decode_time;
+
+ if( mCurrentRMessageTemplate->mMaxDecodeTimePerMsg < decode_time )
+ {
+ mCurrentRMessageTemplate->mMaxDecodeTimePerMsg = decode_time;
+ }
+
+
+ if( decode_time > mTimeDecodesSpamThreshold )
+ {
+ lldebugs << "--------- Message " << mCurrentRMessageTemplate->mName << " decode took " << decode_time << " seconds. (" <<
+ mCurrentRMessageTemplate->mMaxDecodeTimePerMsg << " max, " <<
+ (mCurrentRMessageTemplate->mTotalDecodeTime / mCurrentRMessageTemplate->mTotalDecoded) << " avg)" << llendl;
+ }
}
}
}
@@ -4516,76 +4530,6 @@ void process_deny_trusted_circuit(LLMessageSystem *msg, void **)
msg->sendCreateTrustedCircuit(msg->getSender(), local_id, remote_id);
}
-#define LL_ENCRYPT_BUF_LENGTH 16384
-
-void encrypt_template(const char *src_name, const char *dest_name)
-{
- // encrypt and decrypt are symmetric
- decrypt_template(src_name, dest_name);
-}
-
-BOOL decrypt_template(const char *src_name, const char *dest_name)
-{
- S32 buf_length = LL_ENCRYPT_BUF_LENGTH;
- char buf[LL_ENCRYPT_BUF_LENGTH]; /* Flawfinder: ignore */
-
- FILE* infp = NULL;
- FILE* outfp = NULL;
- BOOL success = FALSE;
- char* bufp = NULL;
- U32 key = 0;
- S32 more_data = 0;
-
- if(src_name==NULL)
- {
- llwarns << "Input src_name is NULL!!" << llendl;
- goto exit;
- }
-
- infp = LLFile::fopen(src_name,"rb"); /* Flawfinder: ignore */
- if (!infp)
- {
- llwarns << "could not open " << src_name << " for reading" << llendl;
- goto exit;
- }
-
- if(dest_name==NULL)
- {
- llwarns << "Output dest_name is NULL!!" << llendl;
- goto exit;
- }
-
- outfp = LLFile::fopen(dest_name,"w+b"); /* Flawfinder: ignore */
- if (!outfp)
- {
- llwarns << "could not open " << src_name << " for writing" << llendl;
- goto exit;
- }
-
- while ((buf_length = (S32)fread(buf,1,LL_ENCRYPT_BUF_LENGTH,infp)))
- {
- // unscrozzle bits here
- bufp = buf;
- more_data = buf_length;
- while (more_data--)
- {
- *bufp = *bufp ^ ((key * 43) % 256);
- key++;
- bufp++;
- }
-
- if(buf_length != (S32)fwrite(buf,1,buf_length,outfp))
- {
- goto exit;
- }
- }
- success = TRUE;
-
- exit:
- if(infp) fclose(infp);
- if(outfp) fclose(outfp);
- return success;
-}
void dump_prehash_files()
{
@@ -5278,6 +5222,12 @@ BOOL LLMessageSystem::callExceptionFunc(EMessageException exception)
return FALSE;
}
+void LLMessageSystem::setTimingFunc(msg_timing_callback func, void* data)
+{
+ mTimingCallback = func;
+ mTimingCallbackData = data;
+}
+
BOOL LLMessageSystem::isCircuitCodeKnown(U32 code) const
{
if(mCircuitCodes.find(code) == mCircuitCodes.end())