From c88b470a8a2cdae8e69e5570b46d4b21c43368bc Mon Sep 17 00:00:00 2001 From: Robert Knop Date: Wed, 25 Feb 2009 21:02:17 +0000 Subject: svn merge -r108815:112761 svn+ssh://svn.lindenlab.com/svn/linden/branches/server/server-1.26 The biggest things in this are Scalable Space Servers and Maint-Server-6 QAR-1209 : SSS QAR-1295 : maint-server-6 Conflicts resolved by prospero: C scripts/farm_distribute C scripts/automated_build_scripts/build-linux.sh : resolved by prospero, mostly kept the merge-right version in the conflict, but there was one block of repeated code from earlier that I removed. C scripts/automated_build_scripts/build-mac.sh : kept merge-right C indra/llcommon/llversionserver.h : svn revert C indra/newsim/llsimparcel.h : kept *both*... working had "setArea", merge-right had exportStream and importStream C indra/newsim/llsimparcel.cpp : see llsimparcel.h C indra/newsim/lltask.h : working had LLTask derived also from LLScriptResourceConsumer, merge-right had LLTask dervied also from LLAgentPosition. To resolve conflict, derive from both. C indra/newsim/lllslmanager.h : kept merge-right (had an added comment) C indra/llmessage/llhttpnode.h : kept working (added the definition of method LLHTTPNode::extendedResult) C indra/lscript/lscript_execute_mono/llscriptexecutemono.cpp C indra/lscript/lscript_execute_mono/llscriptexecutemono.h : These two were resolved by si, in consultation with daveh I also had to add the following stubs to indra/newsim/tests/llgodkickutils_test.cpp in order to get it to compile: // LLScriptResourceConsumer interface methods in LLTask LLScriptResource::LLScriptResource() { } LLScriptResourcePool::LLScriptResourcePool() { } LLScriptResourcePool LLScriptResourcePool::null; LLScriptResourceConsumer::LLScriptResourceConsumer() { } LLScriptResourcePool& LLScriptResourceConsumer::getScriptResourcePool() { return LLScriptResourcePool::null; } const LLScriptResourcePool& LLScriptResourceConsumer::getScriptResourcePool() const { return LLScriptResourcePool::null; } bool LLScriptResourceConsumer::switchScriptResourcePools(LLScriptResourcePool& new_pool) { return false; } bool LLScriptResourceConsumer::canUseScriptResourcePool(const LLScriptResourcePool& resource_pool) { return false; } bool LLScriptResourceConsumer::isInPool(const LLScriptResourcePool& resource_pool) { return false; } void LLScriptResourceConsumer::setScriptResourcePool(LLScriptResourcePool& pool) { } S32 LLTask::getUsedPublicURLs() const { return 0; } void LLTask::setScriptResourcePool(LLScriptResourcePool& pool) { } --- indra/llmessage/lldispatcher.cpp | 32 +++----------------------------- 1 file changed, 3 insertions(+), 29 deletions(-) (limited to 'indra/llmessage/lldispatcher.cpp') diff --git a/indra/llmessage/lldispatcher.cpp b/indra/llmessage/lldispatcher.cpp index bb7c833b49..7ce3d11be4 100644 --- a/indra/llmessage/lldispatcher.cpp +++ b/indra/llmessage/lldispatcher.cpp @@ -111,40 +111,14 @@ bool LLDispatcher::unpackMessage( LLUUID& invoice, LLDispatcher::sparam_t& parameters) { - char buf[MAX_STRING]; /*Flawfinder: ignore*/ msg->getStringFast(_PREHASH_MethodData, _PREHASH_Method, method); msg->getUUIDFast(_PREHASH_MethodData, _PREHASH_Invoice, invoice); - S32 size; S32 count = msg->getNumberOfBlocksFast(_PREHASH_ParamList); for (S32 i = 0; i < count; ++i) { - // we treat the SParam as binary data (since it might be an - // LLUUID in compressed form which may have embedded \0's,) - size = msg->getSizeFast(_PREHASH_ParamList, i, _PREHASH_Parameter); - msg->getBinaryDataFast( - _PREHASH_ParamList, _PREHASH_Parameter, - buf, size, i, MAX_STRING-1); - - // If the last byte of the data is 0x0, this is either a normally - // packed string, or a binary packed UUID (which for these messages - // are packed with a 17th byte 0x0). Unpack into a std::string - // without the trailing \0, so "abc\0" becomes std::string("abc", 3) - // which matches const char* "abc". - if (size > 0 - && buf[size-1] == 0x0) - { - // special char*/size constructor because UUIDs may have embedded - // 0x0 bytes. - std::string binary_data(buf, size-1); - parameters.push_back(binary_data); - } - else - { - // This is either a NULL string, or a string that was packed - // incorrectly as binary data, without the usual trailing '\0'. - std::string string_data(buf, size); - parameters.push_back(string_data); - } + std::string parameter; + msg->getStringFast(_PREHASH_ParamList,_PREHASH_Parameter, parameter, i); + parameters.push_back(parameter); } return true; } -- cgit v1.2.3