diff options
author | RevolutionSmythe | 2010-10-23 20:51:07 -0500 |
---|---|---|
committer | McCabe Maxsted | 2010-11-01 17:01:36 -0700 |
commit | 72c4d73706267a32bb31d93e14425b1c0c8a5715 (patch) | |
tree | aff00c532e35fc421ac955b7719483c818f2d21e /linden/indra/llmessage | |
parent | Finishes the OpenRegionSettings module, adds a new panel to Region/Estate for... (diff) | |
download | meta-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.cpp | 11 | ||||
-rw-r--r-- | linden/indra/llmessage/llcircuit.h | 3 | ||||
-rw-r--r-- | linden/indra/llmessage/llmessagelog.cpp | 54 | ||||
-rw-r--r-- | linden/indra/llmessage/llmessagelog.h | 41 | ||||
-rw-r--r-- | linden/indra/llmessage/llpacketring.cpp | 5 | ||||
-rw-r--r-- | linden/indra/llmessage/lltemplatemessagereader.cpp | 50 | ||||
-rw-r--r-- | linden/indra/llmessage/lltemplatemessagereader.h | 16 | ||||
-rw-r--r-- | linden/indra/llmessage/message.cpp | 18 | ||||
-rw-r--r-- | linden/indra/llmessage/message.h | 18 |
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> | ||
1235 | std::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 | |||
1234 | TPACKETID LLCircuitData::nextPacketOutID() | 1245 | TPACKETID 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 | |||
339 | protected: | 342 | protected: |
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 | |||
4 | LLMessageLogEntry::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 | } | ||
16 | LLMessageLogEntry::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 | } | ||
24 | LLMessageLogEntry::~LLMessageLogEntry() | ||
25 | { | ||
26 | } | ||
27 | U32 LLMessageLog::sMaxSize = 4096; // testzone fixme todo boom | ||
28 | std::deque<LLMessageLogEntry> LLMessageLog::sDeque; | ||
29 | void (*(LLMessageLog::sCallback))(LLMessageLogEntry); | ||
30 | void LLMessageLog::setMaxSize(U32 size) | ||
31 | { | ||
32 | sMaxSize = size; | ||
33 | while(sDeque.size() > sMaxSize) | ||
34 | sDeque.pop_front(); | ||
35 | } | ||
36 | void LLMessageLog::setCallback(void (*callback)(LLMessageLogEntry)) | ||
37 | { | ||
38 | sCallback = callback; | ||
39 | } | ||
40 | void 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 | } | ||
50 | std::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 | |||
9 | class LLMessageSystem; | ||
10 | class LLMessageLogEntry | ||
11 | { | ||
12 | public: | ||
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 | }; | ||
28 | class LLMessageLog | ||
29 | { | ||
30 | public: | ||
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(); | ||
35 | private: | ||
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 | /////////////////////////////////////////////////////////// |
45 | LLPacketRing::LLPacketRing () : | 47 | LLPacketRing::LLPacketRing () : |
@@ -246,6 +248,9 @@ S32 LLPacketRing::receivePacket (S32 socket, char *datap) | |||
246 | 248 | ||
247 | BOOL LLPacketRing::sendPacket(int h_socket, char * send_buffer, S32 buf_size, LLHost host) | 249 | BOOL 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 |
450 | BOOL LLTemplateMessageReader::decodeTemplate( | 450 | BOOL 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 |
535 | BOOL LLTemplateMessageReader::decodeData(const U8* buffer, const LLHost& sender ) | 548 | BOOL 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> | ||
786 | LLMessageTemplate* LLTemplateMessageReader::getTemplate() | ||
787 | { | ||
788 | return mCurrentRMessageTemplate; | ||
789 | } | ||
790 | // </edit> | ||
791 | |||
759 | BOOL LLTemplateMessageReader::validateMessage(const U8* buffer, | 792 | BOOL 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 | ||
115 | private: | 124 | private: |
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. |
527 | BOOL LLMessageSystem::checkMessages( S64 frame_count ) | 528 | BOOL 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> | ||
1561 | LLCircuit* LLMessageSystem::getCircuit() | ||
1562 | { | ||
1563 | return &mCircuitInfo; | ||
1564 | } | ||
1565 | |||
1552 | void LLMessageSystem::getCircuitInfo(LLSD& info) const | 1566 | void 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 | ||
233 | private: | 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> | |
237 | public: | 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 | ||
737 | private: | 746 | private: |
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; |