aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/linden/indra/llmessage
diff options
context:
space:
mode:
authorRevolutionSmythe2010-10-23 20:51:07 -0500
committerMcCabe Maxsted2010-11-01 17:01:36 -0700
commit72c4d73706267a32bb31d93e14425b1c0c8a5715 (patch)
treeaff00c532e35fc421ac955b7719483c818f2d21e /linden/indra/llmessage
parentFinishes the OpenRegionSettings module, adds a new panel to Region/Estate for... (diff)
downloadmeta-impy-72c4d73706267a32bb31d93e14425b1c0c8a5715.zip
meta-impy-72c4d73706267a32bb31d93e14425b1c0c8a5715.tar.gz
meta-impy-72c4d73706267a32bb31d93e14425b1c0c8a5715.tar.bz2
meta-impy-72c4d73706267a32bb31d93e14425b1c0c8a5715.tar.xz
Merges the Message log and Message builder from Inertia in.
Diffstat (limited to 'linden/indra/llmessage')
-rw-r--r--linden/indra/llmessage/llcircuit.cpp11
-rw-r--r--linden/indra/llmessage/llcircuit.h3
-rw-r--r--linden/indra/llmessage/llmessagelog.cpp54
-rw-r--r--linden/indra/llmessage/llmessagelog.h41
-rw-r--r--linden/indra/llmessage/llpacketring.cpp5
-rw-r--r--linden/indra/llmessage/lltemplatemessagereader.cpp50
-rw-r--r--linden/indra/llmessage/lltemplatemessagereader.h16
-rw-r--r--linden/indra/llmessage/message.cpp18
-rw-r--r--linden/indra/llmessage/message.h18
9 files changed, 197 insertions, 19 deletions
diff --git a/linden/indra/llmessage/llcircuit.cpp b/linden/indra/llmessage/llcircuit.cpp
index 725425c..0ff5093 100644
--- a/linden/indra/llmessage/llcircuit.cpp
+++ b/linden/indra/llmessage/llcircuit.cpp
@@ -1231,6 +1231,17 @@ void LLCircuit::getCircuitRange(
1231 first = mCircuitData.upper_bound(key); 1231 first = mCircuitData.upper_bound(key);
1232} 1232}
1233 1233
1234// <edit>
1235std::vector<LLCircuitData*> LLCircuit::getCircuitDataList()
1236{
1237 std::vector<LLCircuitData*> list;
1238 circuit_data_map::iterator end = mCircuitData.end();
1239 for(circuit_data_map::iterator iter = mCircuitData.begin(); iter != end; ++iter)
1240 list.push_back((*iter).second);
1241 return list;
1242}
1243// </edit>
1244
1234TPACKETID LLCircuitData::nextPacketOutID() 1245TPACKETID LLCircuitData::nextPacketOutID()
1235{ 1246{
1236 mPacketsOut++; 1247 mPacketsOut++;
diff --git a/linden/indra/llmessage/llcircuit.h b/linden/indra/llmessage/llcircuit.h
index e373cb1..379453e 100644
--- a/linden/indra/llmessage/llcircuit.h
+++ b/linden/indra/llmessage/llcircuit.h
@@ -336,6 +336,9 @@ public:
336 // HACK - this should become protected eventually, but stupid !@$@# message system/circuit classes are jumbling things up. 336 // HACK - this should become protected eventually, but stupid !@$@# message system/circuit classes are jumbling things up.
337 circuit_data_map mUnackedCircuitMap; // Map of circuits with unacked data 337 circuit_data_map mUnackedCircuitMap; // Map of circuits with unacked data
338 circuit_data_map mSendAckMap; // Map of circuits which need to send acks 338 circuit_data_map mSendAckMap; // Map of circuits which need to send acks
339
340 std::vector<LLCircuitData*> getCircuitDataList();
341
339protected: 342protected:
340 circuit_data_map mCircuitData; 343 circuit_data_map mCircuitData;
341 344
diff --git a/linden/indra/llmessage/llmessagelog.cpp b/linden/indra/llmessage/llmessagelog.cpp
new file mode 100644
index 0000000..965b8c0
--- /dev/null
+++ b/linden/indra/llmessage/llmessagelog.cpp
@@ -0,0 +1,54 @@
1// <edit>
2#include "llmessagelog.h"
3
4LLMessageLogEntry::LLMessageLogEntry(EType type, LLHost from_host, LLHost to_host, U8* data, S32 data_size)
5: mType(type),
6 mFromHost(from_host),
7 mToHost(to_host),
8 mDataSize(data_size)
9{
10 if(data)
11 {
12 mData.resize(data_size);
13 memcpy(&(mData[0]), data, data_size);
14 }
15}
16LLMessageLogEntry::LLMessageLogEntry(EType type, LLHost from_host, LLHost to_host, std::vector<U8> data, S32 data_size)
17: mType(type),
18 mFromHost(from_host),
19 mToHost(to_host),
20 mDataSize(data_size),
21 mData(data)
22{
23}
24LLMessageLogEntry::~LLMessageLogEntry()
25{
26}
27U32 LLMessageLog::sMaxSize = 4096; // testzone fixme todo boom
28std::deque<LLMessageLogEntry> LLMessageLog::sDeque;
29void (*(LLMessageLog::sCallback))(LLMessageLogEntry);
30void LLMessageLog::setMaxSize(U32 size)
31{
32 sMaxSize = size;
33 while(sDeque.size() > sMaxSize)
34 sDeque.pop_front();
35}
36void LLMessageLog::setCallback(void (*callback)(LLMessageLogEntry))
37{
38 sCallback = callback;
39}
40void LLMessageLog::log(LLHost from_host, LLHost to_host, U8* data, S32 data_size)
41{
42 LLMessageLogEntry entry = LLMessageLogEntry(LLMessageLogEntry::TEMPLATE, from_host, to_host, data, data_size);
43 if(!entry.mDataSize || !entry.mData.size()) return;
44 if(sCallback) sCallback(entry);
45 if(!sMaxSize) return;
46 sDeque.push_back(entry);
47 if(sDeque.size() > sMaxSize)
48 sDeque.pop_front();
49}
50std::deque<LLMessageLogEntry> LLMessageLog::getDeque()
51{
52 return sDeque;
53}
54// </edit>
diff --git a/linden/indra/llmessage/llmessagelog.h b/linden/indra/llmessage/llmessagelog.h
new file mode 100644
index 0000000..5046d80
--- /dev/null
+++ b/linden/indra/llmessage/llmessagelog.h
@@ -0,0 +1,41 @@
1// <edit>
2#ifndef LL_LLMESSAGELOG_H
3#define LL_LLMESSAGELOG_H
4#include "stdtypes.h"
5#include "llhost.h"
6#include <queue>
7#include <string.h>
8
9class LLMessageSystem;
10class LLMessageLogEntry
11{
12public:
13 enum EType
14 {
15 TEMPLATE,
16 HTTP_REQUEST,
17 HTTP_RESPONSE
18 };
19 LLMessageLogEntry(EType type, LLHost from_host, LLHost to_host, U8* data, S32 data_size);
20 LLMessageLogEntry(EType type, LLHost from_host, LLHost to_host, std::vector<U8> data, S32 data_size);
21 ~LLMessageLogEntry();
22 EType mType;
23 LLHost mFromHost;
24 LLHost mToHost;
25 S32 mDataSize;
26 std::vector<U8> mData;
27};
28class LLMessageLog
29{
30public:
31 static void setMaxSize(U32 size);
32 static void setCallback(void (*callback)(LLMessageLogEntry));
33 static void log(LLHost from_host, LLHost to_host, U8* data, S32 data_size);
34 static std::deque<LLMessageLogEntry> getDeque();
35private:
36 static U32 sMaxSize;
37 static void (*sCallback)(LLMessageLogEntry);
38 static std::deque<LLMessageLogEntry> sDeque;
39};
40#endif
41// </edit>
diff --git a/linden/indra/llmessage/llpacketring.cpp b/linden/indra/llmessage/llpacketring.cpp
index 35d5aac..7dcb606 100644
--- a/linden/indra/llmessage/llpacketring.cpp
+++ b/linden/indra/llmessage/llpacketring.cpp
@@ -40,6 +40,8 @@
40#include "timing.h" 40#include "timing.h"
41#include "llrand.h" 41#include "llrand.h"
42#include "u64.h" 42#include "u64.h"
43#include "llmessagelog.h"
44#include "message.h"
43 45
44/////////////////////////////////////////////////////////// 46///////////////////////////////////////////////////////////
45LLPacketRing::LLPacketRing () : 47LLPacketRing::LLPacketRing () :
@@ -246,6 +248,9 @@ S32 LLPacketRing::receivePacket (S32 socket, char *datap)
246 248
247BOOL LLPacketRing::sendPacket(int h_socket, char * send_buffer, S32 buf_size, LLHost host) 249BOOL LLPacketRing::sendPacket(int h_socket, char * send_buffer, S32 buf_size, LLHost host)
248{ 250{
251 //<edit>
252 LLMessageLog::log(LLHost(16777343, gMessageSystem->getListenPort()), host, (U8*)send_buffer, buf_size);
253 //</edit>
249 BOOL status = TRUE; 254 BOOL status = TRUE;
250 if (!mUseOutThrottle) 255 if (!mUseOutThrottle)
251 { 256 {
diff --git a/linden/indra/llmessage/lltemplatemessagereader.cpp b/linden/indra/llmessage/lltemplatemessagereader.cpp
index d8904a9..9f68fe9 100644
--- a/linden/indra/llmessage/lltemplatemessagereader.cpp
+++ b/linden/indra/llmessage/lltemplatemessagereader.cpp
@@ -449,7 +449,10 @@ S32 LLTemplateMessageReader::getMessageSize() const
449// Returns template for the message contained in buffer 449// Returns template for the message contained in buffer
450BOOL LLTemplateMessageReader::decodeTemplate( 450BOOL LLTemplateMessageReader::decodeTemplate(
451 const U8* buffer, S32 buffer_size, // inputs 451 const U8* buffer, S32 buffer_size, // inputs
452 LLMessageTemplate** msg_template ) // outputs 452 // <edit>
453 //LLMessageTemplate** msg_template ) // outputs
454 LLMessageTemplate** msg_template, BOOL custom)
455 // </edit>
453{ 456{
454 const U8* header = buffer + LL_PACKET_ID_SIZE; 457 const U8* header = buffer + LL_PACKET_ID_SIZE;
455 458
@@ -491,6 +494,9 @@ BOOL LLTemplateMessageReader::decodeTemplate(
491 } 494 }
492 else // bogus packet received (too short) 495 else // bogus packet received (too short)
493 { 496 {
497 // <edit>
498 if(!custom)
499 // </edit>
494 llwarns << "Packet with unusable length received (too short): " 500 llwarns << "Packet with unusable length received (too short): "
495 << buffer_size << llendl; 501 << buffer_size << llendl;
496 return(FALSE); 502 return(FALSE);
@@ -503,9 +509,16 @@ BOOL LLTemplateMessageReader::decodeTemplate(
503 } 509 }
504 else 510 else
505 { 511 {
512 // <edit>
513 if(!custom)
514 {
515 // </edit>
506 llwarns << "Message #" << std::hex << num << std::dec 516 llwarns << "Message #" << std::hex << num << std::dec
507 << " received but not registered!" << llendl; 517 << " received but not registered!" << llendl;
508 gMessageSystem->callExceptionFunc(MX_UNREGISTERED_MESSAGE); 518 gMessageSystem->callExceptionFunc(MX_UNREGISTERED_MESSAGE);
519 // <edit>
520 }
521 // </edit>
509 return(FALSE); 522 return(FALSE);
510 } 523 }
511 524
@@ -532,7 +545,8 @@ void LLTemplateMessageReader::logRanOffEndOfPacket( const LLHost& host, const S3
532} 545}
533 546
534// decode a given message 547// decode a given message
535BOOL LLTemplateMessageReader::decodeData(const U8* buffer, const LLHost& sender ) 548BOOL LLTemplateMessageReader::decodeData(const U8* buffer, const LLHost& sender, BOOL custom)
549// </edit>
536{ 550{
537 llassert( mReceiveSize >= 0 ); 551 llassert( mReceiveSize >= 0 );
538 llassert( mCurrentRMessageTemplate); 552 llassert( mCurrentRMessageTemplate);
@@ -594,6 +608,9 @@ BOOL LLTemplateMessageReader::decodeData(const U8* buffer, const LLHost& sender
594 } 608 }
595 else 609 else
596 { 610 {
611 // <edit>
612 if(!custom)
613 // </edit>
597 llerrs << "Unknown block type" << llendl; 614 llerrs << "Unknown block type" << llendl;
598 return FALSE; 615 return FALSE;
599 } 616 }
@@ -640,6 +657,9 @@ BOOL LLTemplateMessageReader::decodeData(const U8* buffer, const LLHost& sender
640 657
641 if ((decode_pos + data_size) > mReceiveSize) 658 if ((decode_pos + data_size) > mReceiveSize)
642 { 659 {
660 // <edit>
661 if(!custom)
662 // </edit>
643 logRanOffEndOfPacket(sender, decode_pos, data_size); 663 logRanOffEndOfPacket(sender, decode_pos, data_size);
644 664
645 // default to 0 length variable blocks 665 // default to 0 length variable blocks
@@ -676,6 +696,9 @@ BOOL LLTemplateMessageReader::decodeData(const U8* buffer, const LLHost& sender
676 // so, copy data pointer and set data size to fixed size 696 // so, copy data pointer and set data size to fixed size
677 if ((decode_pos + mvci.getSize()) > mReceiveSize) 697 if ((decode_pos + mvci.getSize()) > mReceiveSize)
678 { 698 {
699 // <edit>
700 if(!custom)
701 // </edit>
679 logRanOffEndOfPacket(sender, decode_pos, mvci.getSize()); 702 logRanOffEndOfPacket(sender, decode_pos, mvci.getSize());
680 703
681 // default to 0s. 704 // default to 0s.
@@ -703,7 +726,10 @@ BOOL LLTemplateMessageReader::decodeData(const U8* buffer, const LLHost& sender
703 lldebugs << "Empty message '" << mCurrentRMessageTemplate->mName << "' (no blocks)" << llendl; 726 lldebugs << "Empty message '" << mCurrentRMessageTemplate->mName << "' (no blocks)" << llendl;
704 return FALSE; 727 return FALSE;
705 } 728 }
706 729
730 // <edit>
731 if(!custom)
732 // </edit>
707 { 733 {
708 static LLTimer decode_timer; 734 static LLTimer decode_timer;
709 735
@@ -756,14 +782,26 @@ BOOL LLTemplateMessageReader::decodeData(const U8* buffer, const LLHost& sender
756 return TRUE; 782 return TRUE;
757} 783}
758 784
785// <edit>
786LLMessageTemplate* LLTemplateMessageReader::getTemplate()
787{
788 return mCurrentRMessageTemplate;
789}
790// </edit>
791
759BOOL LLTemplateMessageReader::validateMessage(const U8* buffer, 792BOOL LLTemplateMessageReader::validateMessage(const U8* buffer,
760 S32 buffer_size, 793 S32 buffer_size,
761 const LLHost& sender, 794 const LLHost& sender,
762 bool trusted) 795 bool trusted,
796 BOOL custom)
763{ 797{
764 mReceiveSize = buffer_size; 798 mReceiveSize = buffer_size;
765 BOOL valid = decodeTemplate(buffer, buffer_size, &mCurrentRMessageTemplate ); 799 // <edit>
766 if(valid) 800 //BOOL valid = decodeTemplate(buffer, buffer_size, &mCurrentRMessageTemplate );
801 BOOL valid = decodeTemplate(buffer, buffer_size, &mCurrentRMessageTemplate, custom );
802 //if(result)
803 if(valid && !custom)
804 // </edit>
767 { 805 {
768 mCurrentRMessageTemplate->mReceiveCount++; 806 mCurrentRMessageTemplate->mReceiveCount++;
769 //lldebugs << "MessageRecvd:" 807 //lldebugs << "MessageRecvd:"
diff --git a/linden/indra/llmessage/lltemplatemessagereader.h b/linden/indra/llmessage/lltemplatemessagereader.h
index ab06ab4..0eef93a 100644
--- a/linden/indra/llmessage/lltemplatemessagereader.h
+++ b/linden/indra/llmessage/lltemplatemessagereader.h
@@ -102,28 +102,32 @@ public:
102 virtual const char* getMessageName() const; 102 virtual const char* getMessageName() const;
103 virtual S32 getMessageSize() const; 103 virtual S32 getMessageSize() const;
104 104
105 // <edit>
106 LLMessageTemplate* getTemplate();
107 // </edit>
108
105 virtual void copyToBuilder(LLMessageBuilder&) const; 109 virtual void copyToBuilder(LLMessageBuilder&) const;
106 110
107 BOOL validateMessage(const U8* buffer, S32 buffer_size, 111 BOOL validateMessage(const U8* buffer, S32 buffer_size,
108 const LLHost& sender, bool trusted = false); 112 const LLHost& sender, bool trusted = false, BOOL custom = FALSE);
109 BOOL readMessage(const U8* buffer, const LLHost& sender); 113 BOOL readMessage(const U8* buffer, const LLHost& sender);
110 114
111 bool isTrusted() const; 115 bool isTrusted() const;
112 bool isBanned(bool trusted_source) const; 116 bool isBanned(bool trusted_source) const;
113 bool isUdpBanned() const; 117 bool isUdpBanned() const;
118
119 BOOL decodeData(const U8* buffer, const LLHost& sender, BOOL custom = FALSE);
120
121 BOOL decodeTemplate(const U8* buffer, S32 buffer_size, // inputs
122 LLMessageTemplate** msg_template, BOOL custom = FALSE); // outputs
114 123
115private: 124private:
116 125
117 void getData(const char *blockname, const char *varname, void *datap, 126 void getData(const char *blockname, const char *varname, void *datap,
118 S32 size = 0, S32 blocknum = 0, S32 max_size = S32_MAX); 127 S32 size = 0, S32 blocknum = 0, S32 max_size = S32_MAX);
119 128
120 BOOL decodeTemplate(const U8* buffer, S32 buffer_size, // inputs
121 LLMessageTemplate** msg_template ); // outputs
122
123 void logRanOffEndOfPacket( const LLHost& host, const S32 where, const S32 wanted ); 129 void logRanOffEndOfPacket( const LLHost& host, const S32 where, const S32 wanted );
124 130
125 BOOL decodeData(const U8* buffer, const LLHost& sender );
126
127 S32 mReceiveSize; 131 S32 mReceiveSize;
128 LLMessageTemplate* mCurrentRMessageTemplate; 132 LLMessageTemplate* mCurrentRMessageTemplate;
129 LLMsgData* mCurrentRMessageData; 133 LLMsgData* mCurrentRMessageData;
diff --git a/linden/indra/llmessage/message.cpp b/linden/indra/llmessage/message.cpp
index 78af35b..7e8aff1 100644
--- a/linden/indra/llmessage/message.cpp
+++ b/linden/indra/llmessage/message.cpp
@@ -86,6 +86,7 @@
86#include "v3math.h" 86#include "v3math.h"
87#include "v4math.h" 87#include "v4math.h"
88#include "lltransfertargetvfile.h" 88#include "lltransfertargetvfile.h"
89#include "llmessagelog.h"
89 90
90// Constants 91// Constants
91//const char* MESSAGE_LOG_FILENAME = "message.log"; 92//const char* MESSAGE_LOG_FILENAME = "message.log";
@@ -524,10 +525,10 @@ LLCircuitData* LLMessageSystem::findCircuit(const LLHost& host,
524} 525}
525 526
526// Returns TRUE if a valid, on-circuit message has been received. 527// Returns TRUE if a valid, on-circuit message has been received.
527BOOL LLMessageSystem::checkMessages( S64 frame_count ) 528BOOL LLMessageSystem::checkMessages( S64 frame_count, bool faked_message, U8 fake_buffer[MAX_BUFFER_SIZE], LLHost fake_host, S32 fake_size )
528{ 529{
529 // Pump 530 // Pump
530 BOOL valid_packet = FALSE; 531 BOOL valid_packet = FALSE;
531 mMessageReader = mTemplateMessageReader; 532 mMessageReader = mTemplateMessageReader;
532 533
533 LLTransferTargetVFile::updateQueue(); 534 LLTransferTargetVFile::updateQueue();
@@ -557,6 +558,13 @@ BOOL LLMessageSystem::checkMessages( S64 frame_count )
557 mTrueReceiveSize = mPacketRing.receivePacket(mSocket, (char *)mTrueReceiveBuffer); 558 mTrueReceiveSize = mPacketRing.receivePacket(mSocket, (char *)mTrueReceiveBuffer);
558 // If you want to dump all received packets into SecondLife.log, uncomment this 559 // If you want to dump all received packets into SecondLife.log, uncomment this
559 //dumpPacketToLog(); 560 //dumpPacketToLog();
561 // <edit>
562 if(mTrueReceiveSize && receive_size > (S32) LL_MINIMUM_VALID_PACKET_SIZE)
563 {
564 LLMessageLog::log(mLastSender, LLHost(16777343, mPort), buffer, mTrueReceiveSize);
565 }
566 // </edit>
567
560 568
561 receive_size = mTrueReceiveSize; 569 receive_size = mTrueReceiveSize;
562 mLastSender = mPacketRing.getLastSender(); 570 mLastSender = mPacketRing.getLastSender();
@@ -1549,6 +1557,12 @@ U32 LLMessageSystem::getOurCircuitCode()
1549 return mOurCircuitCode; 1557 return mOurCircuitCode;
1550} 1558}
1551 1559
1560// <edit>
1561LLCircuit* LLMessageSystem::getCircuit()
1562{
1563 return &mCircuitInfo;
1564}
1565
1552void LLMessageSystem::getCircuitInfo(LLSD& info) const 1566void LLMessageSystem::getCircuitInfo(LLSD& info) const
1553{ 1567{
1554 mCircuitInfo.getInfo(info); 1568 mCircuitInfo.getInfo(info);
diff --git a/linden/indra/llmessage/message.h b/linden/indra/llmessage/message.h
index b25b27e..e6391d9 100644
--- a/linden/indra/llmessage/message.h
+++ b/linden/indra/llmessage/message.h
@@ -230,11 +230,14 @@ class LLMessageSystem : public LLMessageSenderInterface
230 typedef std::map<const char *, LLMessageTemplate*> message_template_name_map_t; 230 typedef std::map<const char *, LLMessageTemplate*> message_template_name_map_t;
231 typedef std::map<U32, LLMessageTemplate*> message_template_number_map_t; 231 typedef std::map<U32, LLMessageTemplate*> message_template_number_map_t;
232 232
233private: 233// <edit>
234//private:
235// </edit>
234 message_template_name_map_t mMessageTemplates; 236 message_template_name_map_t mMessageTemplates;
235 message_template_number_map_t mMessageNumbers; 237 message_template_number_map_t mMessageNumbers;
236 238// <edit>
237public: 239//public:
240// </edit>
238 S32 mSystemVersionMajor; 241 S32 mSystemVersionMajor;
239 S32 mSystemVersionMinor; 242 S32 mSystemVersionMinor;
240 S32 mSystemVersionPatch; 243 S32 mSystemVersionPatch;
@@ -341,7 +344,7 @@ public:
341 bool addCircuitCode(U32 code, const LLUUID& session_id); 344 bool addCircuitCode(U32 code, const LLUUID& session_id);
342 345
343 BOOL poll(F32 seconds); // Number of seconds that we want to block waiting for data, returns if data was received 346 BOOL poll(F32 seconds); // Number of seconds that we want to block waiting for data, returns if data was received
344 BOOL checkMessages( S64 frame_count = 0 ); 347 BOOL checkMessages( S64 frame_count = 0, bool faked_message = false, U8 fake_buffer[MAX_BUFFER_SIZE] = NULL, LLHost fake_host = LLHost(), S32 fake_size = 0 );
345 void processAcks(); 348 void processAcks();
346 349
347 BOOL isMessageFast(const char *msg); 350 BOOL isMessageFast(const char *msg);
@@ -569,6 +572,10 @@ public:
569 void showCircuitInfo(); 572 void showCircuitInfo();
570 void getCircuitInfo(LLSD& info) const; 573 void getCircuitInfo(LLSD& info) const;
571 574
575 // <edit>
576 LLCircuit* getCircuit();
577 // </edit>
578
572 U32 getOurCircuitCode(); 579 U32 getOurCircuitCode();
573 580
574 void enableCircuit(const LLHost &host, BOOL trusted); 581 void enableCircuit(const LLHost &host, BOOL trusted);
@@ -733,6 +740,8 @@ public:
733 // This will cause all trust queries to return true until the next message 740 // This will cause all trust queries to return true until the next message
734 // is read: use with caution! 741 // is read: use with caution!
735 void receivedMessageFromTrustedSender(); 742 void receivedMessageFromTrustedSender();
743
744 LLTemplateMessageBuilder* mTemplateMessageBuilder;
736 745
737private: 746private:
738 747
@@ -807,7 +816,6 @@ private:
807 TPACKETID mCurrentRecvPacketID; // packet ID of current receive packet (for reporting) 816 TPACKETID mCurrentRecvPacketID; // packet ID of current receive packet (for reporting)
808 817
809 LLMessageBuilder* mMessageBuilder; 818 LLMessageBuilder* mMessageBuilder;
810 LLTemplateMessageBuilder* mTemplateMessageBuilder;
811 LLSDMessageBuilder* mLLSDMessageBuilder; 819 LLSDMessageBuilder* mLLSDMessageBuilder;
812 LLMessageReader* mMessageReader; 820 LLMessageReader* mMessageReader;
813 LLTemplateMessageReader* mTemplateMessageReader; 821 LLTemplateMessageReader* mTemplateMessageReader;