diff options
| author | Richard Linden <none@none> | 2013-06-20 16:46:23 -0700 | 
|---|---|---|
| committer | Richard Linden <none@none> | 2013-06-20 16:46:23 -0700 | 
| commit | a2a6bf20d71f923e9a5e43f71213fffbfea5a2a6 (patch) | |
| tree | 7e2711d256f98872db24e1f9de4449d47e75ed88 /indra/llmessage | |
| parent | 2655c7a17ae38a073dcf8f05b0127b68edc34c95 (diff) | |
| parent | e2e6963677657e4f5c417edc8d60e8b2a37ad204 (diff) | |
merge with release
Diffstat (limited to 'indra/llmessage')
| -rwxr-xr-x | indra/llmessage/llassetstorage.cpp | 27 | ||||
| -rwxr-xr-x | indra/llmessage/llbuffer.cpp | 1 | ||||
| -rwxr-xr-x | indra/llmessage/lldatapacker.h | 1 | ||||
| -rwxr-xr-x | indra/llmessage/lldispatcher.cpp | 1 | ||||
| -rwxr-xr-x | indra/llmessage/llfiltersd2xmlrpc.cpp | 1 | ||||
| -rwxr-xr-x | indra/llmessage/lliohttpserver.cpp | 1 | ||||
| -rwxr-xr-x | indra/llmessage/lliopipe.h | 1 | ||||
| -rwxr-xr-x | indra/llmessage/lliosocket.cpp | 1 | ||||
| -rwxr-xr-x | indra/llmessage/lliosocket.h | 1 | ||||
| -rwxr-xr-x | indra/llmessage/llioutil.cpp | 1 | ||||
| -rwxr-xr-x | indra/llmessage/llmail.cpp | 7 | ||||
| -rwxr-xr-x | indra/llmessage/llproxy.cpp | 10 | ||||
| -rwxr-xr-x | indra/llmessage/llpumpio.cpp | 1 | ||||
| -rwxr-xr-x | indra/llmessage/llsdrpcclient.cpp | 1 | ||||
| -rwxr-xr-x | indra/llmessage/llsdrpcserver.cpp | 1 | ||||
| -rwxr-xr-x | indra/llmessage/llurlrequest.cpp | 15 | ||||
| -rwxr-xr-x | indra/llmessage/message.h | 35 | ||||
| -rwxr-xr-x | indra/llmessage/net.cpp | 6 | 
18 files changed, 73 insertions, 39 deletions
| diff --git a/indra/llmessage/llassetstorage.cpp b/indra/llmessage/llassetstorage.cpp index 9b86daebe5..430c9503ac 100755 --- a/indra/llmessage/llassetstorage.cpp +++ b/indra/llmessage/llassetstorage.cpp @@ -50,10 +50,14 @@  #include "lltransfertargetvfile.h" // For debugging  #include "llmetrics.h" +#include "lltrace.h"  LLAssetStorage *gAssetStorage = NULL;  LLMetrics *LLAssetStorage::metric_recipient = NULL; +static LLTrace::CountStatHandle<> sFailedDownloadCount("faileddownloads", "Number of times LLAssetStorage::getAssetData() has failed"); + +  const LLUUID CATEGORIZE_LOST_AND_FOUND_ID(std::string("00000000-0000-0000-0000-000000000010"));  const U64 TOXIC_ASSET_LIFETIME = (120 * 1000000);		// microseconds @@ -450,6 +454,7 @@ void LLAssetStorage::getAssetData(const LLUUID uuid, LLAssetType::EType type, LL  		if (callback)  		{ +			add(sFailedDownloadCount, 1);  			callback(mVFS, uuid, type, user_data, LL_ERR_ASSET_REQUEST_FAILED, LL_EXSTAT_NONE);  		}  		return; @@ -460,6 +465,7 @@ void LLAssetStorage::getAssetData(const LLUUID uuid, LLAssetType::EType type, LL  		// Special case early out for NULL uuid and for shutting down  		if (callback)  		{ +			add(sFailedDownloadCount, 1);  			callback(mVFS, uuid, type, user_data, LL_ERR_ASSET_REQUEST_NOT_IN_DATABASE, LL_EXSTAT_NULL_UUID);  		}  		return; @@ -572,6 +578,7 @@ void LLAssetStorage::_queueDataRequest(const LLUUID& uuid, LLAssetType::EType at  		llwarns << "Attempt to move asset data request upstream w/o valid upstream provider" << llendl;  		if (callback)  		{ +			add(sFailedDownloadCount, 1);  			callback(mVFS, uuid, atype, user_data, LL_ERR_CIRCUIT_GONE, LL_EXSTAT_NO_UPSTREAM);  		}  	} @@ -649,6 +656,10 @@ void LLAssetStorage::downloadCompleteCallback(  		LLAssetRequest* tmp = *curiter;  		if (tmp->mDownCallback)  		{ +			if (result != LL_ERR_NOERR) +			{ +				add(sFailedDownloadCount, 1); +			}  			tmp->mDownCallback(gAssetStorage->mVFS, req->getUUID(), req->getType(), tmp->mUserData, result, ext_status);  		}  		delete tmp; @@ -669,6 +680,7 @@ void LLAssetStorage::getEstateAsset(const LLHost &object_sim, const LLUUID &agen  		// Special case early out for NULL uuid  		if (callback)  		{ +			add(sFailedDownloadCount, 1);  			callback(mVFS, asset_id, atype, user_data, LL_ERR_ASSET_REQUEST_NOT_IN_DATABASE, LL_EXSTAT_NULL_UUID);  		}  		return; @@ -741,6 +753,7 @@ void LLAssetStorage::getEstateAsset(const LLHost &object_sim, const LLUUID &agen  			llwarns << "Attempt to move asset data request upstream w/o valid upstream provider" << llendl;  			if (callback)  			{ +				add(sFailedDownloadCount, 1);  				callback(mVFS, asset_id, atype, user_data, LL_ERR_CIRCUIT_GONE, LL_EXSTAT_NO_UPSTREAM);  			}  		} @@ -783,6 +796,10 @@ void LLAssetStorage::downloadEstateAssetCompleteCallback(  		}  	} +	if (result != LL_ERR_NOERR) +	{ +		add(sFailedDownloadCount, 1); +	}  	req->mDownCallback(gAssetStorage->mVFS, req->getUUID(), req->getAType(), req->mUserData, result, ext_status);  } @@ -883,6 +900,7 @@ void LLAssetStorage::getInvItemAsset(const LLHost &object_sim, const LLUUID &age  			llwarns << "Attempt to move asset data request upstream w/o valid upstream provider" << llendl;  			if (callback)  			{ +				add(sFailedDownloadCount, 1);  				callback(mVFS, asset_id, atype, user_data, LL_ERR_CIRCUIT_GONE, LL_EXSTAT_NO_UPSTREAM);  			}  		} @@ -925,6 +943,10 @@ void LLAssetStorage::downloadInvItemCompleteCallback(  		}  	} +	if (result != LL_ERR_NOERR) +	{ +		add(sFailedDownloadCount, 1); +	}  	req->mDownCallback(gAssetStorage->mVFS, req->getUUID(), req->getType(), req->mUserData, result, ext_status);  } @@ -1237,6 +1259,7 @@ bool LLAssetStorage::deletePendingRequestImpl(LLAssetStorage::request_list_t* re  		}  		if (req->mDownCallback)  		{ +			add(sFailedDownloadCount, 1);  			req->mDownCallback(mVFS, req->getUUID(), req->getType(), req->mUserData, error, LL_EXSTAT_REQUEST_DROPPED);  		}  		if (req->mInfoCallback) @@ -1363,6 +1386,10 @@ void LLAssetStorage::legacyGetDataCallback(LLVFS *vfs, const LLUUID &uuid, LLAss  		}  	} +	if (status != LL_ERR_NOERR) +	{ +		add(sFailedDownloadCount, 1); +	}  	legacy->mDownCallback(filename.c_str(), uuid, legacy->mUserData, status, ext_status);  	delete legacy;  } diff --git a/indra/llmessage/llbuffer.cpp b/indra/llmessage/llbuffer.cpp index 01da20f060..1722b48f44 100755 --- a/indra/llmessage/llbuffer.cpp +++ b/indra/llmessage/llbuffer.cpp @@ -32,6 +32,7 @@  #include "llmath.h"  #include "llstl.h"  #include "llthread.h" +#include <iterator>  #define ASSERT_LLBUFFERARRAY_MUTEX_LOCKED llassert(!mMutexp || mMutexp->isSelfLocked()); diff --git a/indra/llmessage/lldatapacker.h b/indra/llmessage/lldatapacker.h index b0a638c16e..226752d52e 100755 --- a/indra/llmessage/lldatapacker.h +++ b/indra/llmessage/lldatapacker.h @@ -170,6 +170,7 @@ public:  				S32			getBufferSize() const	{ return mBufferSize; }  				const U8*   getBuffer() const   { return mBufferp; }      				void		reset()				{ mCurBufferp = mBufferp; mWriteEnabled = (mCurBufferp != NULL); } +				void        shift(S32 offset)   { reset(); mCurBufferp += offset;}  				void		freeBuffer()		{ delete [] mBufferp; mBufferp = mCurBufferp = NULL; mBufferSize = 0; mWriteEnabled = FALSE; }  				void		assignBuffer(U8 *bufferp, S32 size)  				{ diff --git a/indra/llmessage/lldispatcher.cpp b/indra/llmessage/lldispatcher.cpp index b2dc414a68..7ac3651a76 100755 --- a/indra/llmessage/lldispatcher.cpp +++ b/indra/llmessage/lldispatcher.cpp @@ -29,6 +29,7 @@  #include "lldispatcher.h"  #include <algorithm> +#include <iterator>  #include "llstl.h"  #include "message.h" diff --git a/indra/llmessage/llfiltersd2xmlrpc.cpp b/indra/llmessage/llfiltersd2xmlrpc.cpp index e0ca056a5f..dbb8c4e28d 100755 --- a/indra/llmessage/llfiltersd2xmlrpc.cpp +++ b/indra/llmessage/llfiltersd2xmlrpc.cpp @@ -80,6 +80,7 @@  #include "llbuffer.h"  #include "llbufferstream.h" +#include "llfasttimer.h"  #include "llmemorystream.h"  #include "llsd.h"  #include "llsdserialize.h" diff --git a/indra/llmessage/lliohttpserver.cpp b/indra/llmessage/lliohttpserver.cpp index 1236fc8b71..f9d37b2e39 100755 --- a/indra/llmessage/lliohttpserver.cpp +++ b/indra/llmessage/lliohttpserver.cpp @@ -33,6 +33,7 @@  #include "llapr.h"  #include "llbuffer.h"  #include "llbufferstream.h" +#include "llfasttimer.h"  #include "llhttpnode.h"  #include "lliopipe.h"  #include "lliosocket.h" diff --git a/indra/llmessage/lliopipe.h b/indra/llmessage/lliopipe.h index cbd17b5a3d..9a0a427efd 100755 --- a/indra/llmessage/lliopipe.h +++ b/indra/llmessage/lliopipe.h @@ -31,6 +31,7 @@  #include <boost/intrusive_ptr.hpp>  #include <boost/shared_ptr.hpp> +#include "llwin32headerslean.h"  #include "apr_poll.h"  #include "llsd.h" diff --git a/indra/llmessage/lliosocket.cpp b/indra/llmessage/lliosocket.cpp index 2043bae5e7..27e3cc7898 100755 --- a/indra/llmessage/lliosocket.cpp +++ b/indra/llmessage/lliosocket.cpp @@ -32,6 +32,7 @@  #include "llapr.h"  #include "llbuffer.h" +#include "llfasttimer.h"  #include "llhost.h"  #include "llpumpio.h" diff --git a/indra/llmessage/lliosocket.h b/indra/llmessage/lliosocket.h index be0f7dfcc6..ec998552d0 100755 --- a/indra/llmessage/lliosocket.h +++ b/indra/llmessage/lliosocket.h @@ -38,6 +38,7 @@   */  #include "lliopipe.h" +#include "llwin32headerslean.h"  #include "apr_pools.h"  #include "apr_network_io.h"  #include "llchainio.h" diff --git a/indra/llmessage/llioutil.cpp b/indra/llmessage/llioutil.cpp index 8c50fd5069..9fd49d23d4 100755 --- a/indra/llmessage/llioutil.cpp +++ b/indra/llmessage/llioutil.cpp @@ -28,6 +28,7 @@  #include "linden_common.h"  #include "llioutil.h" +#include "llfasttimer.h"  /**   * LLIOFlush diff --git a/indra/llmessage/llmail.cpp b/indra/llmessage/llmail.cpp index 08b31e9c7a..dc27f2ca4a 100755 --- a/indra/llmessage/llmail.cpp +++ b/indra/llmessage/llmail.cpp @@ -29,12 +29,7 @@  #include "llmail.h"  // APR on Windows needs full windows headers -#ifdef LL_WINDOWS -#	undef WIN32_LEAN_AND_MEAN -#	include <winsock2.h> -#	include <windows.h> -#endif - +#include "llwin32headers.h"  #include <string>  #include <sstream> diff --git a/indra/llmessage/llproxy.cpp b/indra/llmessage/llproxy.cpp index 9988fcd9c0..9b8d19cc3e 100755 --- a/indra/llmessage/llproxy.cpp +++ b/indra/llmessage/llproxy.cpp @@ -57,13 +57,15 @@ LLProxy::LLProxy():  		mAuthMethodSelected(METHOD_NOAUTH),  		mSocksUsername(),  		mSocksPassword() -{ -} +{}  LLProxy::~LLProxy()  { -	stopSOCKSProxy(); -	disableHTTPProxy(); +	if (ll_apr_is_initialized()) +	{ +		stopSOCKSProxy(); +		disableHTTPProxy(); +	}  }  /** diff --git a/indra/llmessage/llpumpio.cpp b/indra/llmessage/llpumpio.cpp index 0623e99f0a..e3f09f34ee 100755 --- a/indra/llmessage/llpumpio.cpp +++ b/indra/llmessage/llpumpio.cpp @@ -34,6 +34,7 @@  #include "apr_poll.h"  #include "llapr.h" +#include "llfasttimer.h"  #include "llstl.h"  // These should not be enabled in production, but they can be diff --git a/indra/llmessage/llsdrpcclient.cpp b/indra/llmessage/llsdrpcclient.cpp index fcda0e81a3..05b27f582c 100755 --- a/indra/llmessage/llsdrpcclient.cpp +++ b/indra/llmessage/llsdrpcclient.cpp @@ -30,6 +30,7 @@  #include "llsdrpcclient.h"  #include "llbufferstream.h" +#include "llfasttimer.h"  #include "llfiltersd2xmlrpc.h"  #include "llpumpio.h"  #include "llsd.h" diff --git a/indra/llmessage/llsdrpcserver.cpp b/indra/llmessage/llsdrpcserver.cpp index f26ee52f71..2c233c1c0d 100755 --- a/indra/llmessage/llsdrpcserver.cpp +++ b/indra/llmessage/llsdrpcserver.cpp @@ -31,6 +31,7 @@  #include "llbuffer.h"  #include "llbufferstream.h" +#include "llfasttimer.h"  #include "llpumpio.h"  #include "llsdserialize.h"  #include "llstl.h" diff --git a/indra/llmessage/llurlrequest.cpp b/indra/llmessage/llurlrequest.cpp index de9e2fe294..7281ac35af 100755 --- a/indra/llmessage/llurlrequest.cpp +++ b/indra/llmessage/llurlrequest.cpp @@ -33,6 +33,7 @@  #include <openssl/x509_vfy.h>  #include <openssl/ssl.h>  #include "llcurl.h" +#include "llfasttimer.h"  #include "llioutil.h"  #include "llproxy.h"  #include "llpumpio.h" @@ -284,6 +285,8 @@ LLIOPipe::EStatus LLURLRequest::handleError(  static LLFastTimer::DeclareTimer FTM_PROCESS_URL_REQUEST("URL Request");  static LLFastTimer::DeclareTimer FTM_PROCESS_URL_REQUEST_GET_RESULT("Get Result");  static LLFastTimer::DeclareTimer FTM_URL_PERFORM("Perform"); +static LLFastTimer::DeclareTimer FTM_PROCESS_URL_PUMP_RESPOND("Pump Respond"); +static LLFastTimer::DeclareTimer FTM_URL_ADJUST_TIMEOUT("Adjust Timeout");  // virtual  LLIOPipe::EStatus LLURLRequest::process_impl( @@ -303,7 +306,6 @@ LLIOPipe::EStatus LLURLRequest::process_impl(  	const S32 MIN_ACCUMULATION = 100000;  	if(pump && (mDetail->mByteAccumulator > MIN_ACCUMULATION))  	{ -		static LLFastTimer::DeclareTimer FTM_URL_ADJUST_TIMEOUT("Adjust Timeout");  		LLFastTimer t(FTM_URL_ADJUST_TIMEOUT);  		 // This is a pretty sloppy calculation, but this  		 // tries to make the gross assumption that if data @@ -314,11 +316,11 @@ LLIOPipe::EStatus LLURLRequest::process_impl(  		 const F32 TIMEOUT_ADJUSTMENT = 2.0f;  		 mDetail->mByteAccumulator = 0;  		 pump->adjustTimeoutSeconds(TIMEOUT_ADJUSTMENT); -		lldebugs << "LLURLRequest adjustTimeoutSeconds for request: " << mDetail->mURL << llendl; -		if (mState == STATE_INITIALIZED) -		{ -			llinfos << "LLURLRequest adjustTimeoutSeconds called during upload" << llendl; -		} +		 lldebugs << "LLURLRequest adjustTimeoutSeconds for request: " << mDetail->mURL << llendl; +		 if (mState == STATE_INITIALIZED) +		 { +			  llinfos << "LLURLRequest adjustTimeoutSeconds called during upload" << llendl; +		 }  	}  	switch(mState) @@ -402,7 +404,6 @@ LLIOPipe::EStatus LLURLRequest::process_impl(  						link.mChannels = LLBufferArray::makeChannelConsumer(  							channels);  						chain.push_back(link); -						static LLFastTimer::DeclareTimer FTM_PROCESS_URL_PUMP_RESPOND("Pump Respond");  						{  							LLFastTimer t(FTM_PROCESS_URL_PUMP_RESPOND);  							pump->respond(chain, buffer, context); diff --git a/indra/llmessage/message.h b/indra/llmessage/message.h index 1589ea29c1..e94e2282a0 100755 --- a/indra/llmessage/message.h +++ b/indra/llmessage/message.h @@ -50,9 +50,9 @@  #include "lltimer.h"  #include "llpacketring.h"  #include "llhost.h" -#include "llhttpclient.h" +#include "llcurl.h"  #include "llhttpnode.h" -#include "llpacketack.h" +//#include "llpacketack.h"  #include "llsingleton.h"  #include "message_prehash.h"  #include "llstl.h" @@ -158,7 +158,6 @@ const F32 LL_MAX_LOST_TIMEOUT				= 5.f;				// Maximum amount of time before cons  const S32 MAX_MESSAGE_COUNT_NUM = 1024;  // Forward declarations -class LLCircuit;  class LLVector3;  class LLVector4;  class LLVector3d; @@ -214,19 +213,19 @@ class LLMessageSystem : public LLMessageSenderInterface   public:  	LLPacketRing				mPacketRing; -	LLReliablePacketParams			mReliablePacketParams; +	LLReliablePacketParams		mReliablePacketParams;  	// Set this flag to TRUE when you want *very* verbose logs. -	BOOL mVerboseLog; +	BOOL						mVerboseLog; -	F32                                     mMessageFileVersionNumber; +	F32                         mMessageFileVersionNumber;  	typedef std::map<const char *, LLMessageTemplate*> message_template_name_map_t;  	typedef std::map<U32, LLMessageTemplate*> message_template_number_map_t;  private:  	message_template_name_map_t		mMessageTemplates; -	message_template_number_map_t		mMessageNumbers; +	message_template_number_map_t	mMessageNumbers;  public:  	S32					mSystemVersionMajor; @@ -235,7 +234,7 @@ public:  	S32					mSystemVersionServer;  	U32					mVersionFlags; -	BOOL					mbProtected; +	BOOL				mbProtected;  	U32					mNumberHighFreqMessages;  	U32					mNumberMediumFreqMessages; @@ -255,11 +254,11 @@ public:  	U32					mReliablePacketsIn;	    // total reliable packets in  	U32					mReliablePacketsOut;	    // total reliable packets out -	U32                                     mDroppedPackets;            // total dropped packets in -	U32                                     mResentPackets;             // total resent packets out -	U32                                     mFailedResendPackets;       // total resend failure packets out -	U32                                     mOffCircuitPackets;         // total # of off-circuit packets rejected -	U32                                     mInvalidOnCircuitPackets;   // total # of on-circuit but invalid packets rejected +	U32                 mDroppedPackets;            // total dropped packets in +	U32                 mResentPackets;             // total resent packets out +	U32                 mFailedResendPackets;       // total resend failure packets out +	U32                 mOffCircuitPackets;         // total # of off-circuit packets rejected +	U32                 mInvalidOnCircuitPackets;   // total # of on-circuit but invalid packets rejected  	S64					mUncompressedBytesIn;	    // total uncompressed size of compressed packets in  	S64					mUncompressedBytesOut;	    // total uncompressed size of compressed packets out @@ -268,14 +267,14 @@ public:  	S64					mTotalBytesIn;		    // total size of all uncompressed packets in  	S64					mTotalBytesOut;		    // total size of all uncompressed packets out -	BOOL                                    mSendReliable;              // does the outgoing message require a pos ack? +	BOOL                mSendReliable;              // does the outgoing message require a pos ack? -	LLCircuit 	 			mCircuitInfo; +	LLCircuit 	 		mCircuitInfo;  	F64					mCircuitPrintTime;	    // used to print circuit debug info every couple minutes  	F32					mCircuitPrintFreq;	    // seconds -	std::map<U64, U32>			mIPPortToCircuitCode; -	std::map<U32, U64>			mCircuitCodeToIPPort; +	std::map<U64, U32>	mIPPortToCircuitCode; +	std::map<U32, U64>	mCircuitCodeToIPPort;  	U32					mOurCircuitCode;  	S32					mSendPacketFailureCount;  	S32					mUnackedListDepth; @@ -494,7 +493,7 @@ public:  		void (*callback)(void **,S32),   		void ** callback_data); -	LLHTTPClient::ResponderPtr createResponder(const std::string& name); +	LLCurl::ResponderPtr createResponder(const std::string& name);  	S32		sendMessage(const LLHost &host);  	S32		sendMessage(const U32 circuit);  private: diff --git a/indra/llmessage/net.cpp b/indra/llmessage/net.cpp index 85aef5da00..1c9508214c 100755 --- a/indra/llmessage/net.cpp +++ b/indra/llmessage/net.cpp @@ -26,15 +26,13 @@  #include "linden_common.h" -#include "net.h" +//#include "net.h"  // system library includes  #include <stdexcept>  #if LL_WINDOWS -	#define WIN32_LEAN_AND_MEAN -	#include <winsock2.h> -	#include <windows.h> +#include "llwin32headerslean.h"  #else  	#include <sys/types.h>  	#include <sys/socket.h> | 
