summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorArmin Weatherwax <armin.weatherwax@googlemail.com>2011-08-18 14:33:24 +0200
committerArmin Weatherwax <armin.weatherwax@googlemail.com>2011-08-18 14:33:24 +0200
commit677135f3c7e0a375bfc3ea1a08ce653c1daa91ee (patch)
tree7f0dd41449fb1fb86ed4178f18f8386d5c7254c6
parentb2ef0f99882db73680cc5dfb9570255414f7ba6d (diff)
STORM-1532: Don't re-request ParcelVoiceInfoRequest capability if the region definitely doesn't have it.
-rw-r--r--doc/contributions.txt2
-rw-r--r--indra/newview/llvoicevivox.cpp31
2 files changed, 18 insertions, 15 deletions
diff --git a/doc/contributions.txt b/doc/contributions.txt
index 0cdf37d72f..b22ef13870 100644
--- a/doc/contributions.txt
+++ b/doc/contributions.txt
@@ -176,6 +176,8 @@ Ardy Lay
VWR-24917
Argent Stonecutter
VWR-68
+ArminWeatherHax
+ STORM-1532
Armin Weatherwax
VWR-8436
ArminasX Saiman
diff --git a/indra/newview/llvoicevivox.cpp b/indra/newview/llvoicevivox.cpp
index 0db0010688..56d71e96b3 100644
--- a/indra/newview/llvoicevivox.cpp
+++ b/indra/newview/llvoicevivox.cpp
@@ -4498,17 +4498,25 @@ bool LLVivoxVoiceClient::parcelVoiceInfoReceived(state requesting_state)
bool LLVivoxVoiceClient::requestParcelVoiceInfo()
{
- LL_DEBUGS("Voice") << "sending ParcelVoiceInfoRequest (" << mCurrentRegionName << ", " << mCurrentParcelLocalID << ")" << LL_ENDL;
-
- // grab the cap for parcel voice info from the region.
LLViewerRegion * region = gAgent.getRegion();
- if (region == NULL)
+ if (region == NULL || !region->capabilitiesReceived())
{
+ // we don't have the cap yet, so return false so the caller can try again later.
+
+ LL_DEBUGS("Voice") << "ParcelVoiceInfoRequest capability not yet available, deferring" << LL_ENDL;
return false;
}
+
// grab the cap.
std::string url = gAgent.getRegion()->getCapability("ParcelVoiceInfoRequest");
- if (!url.empty())
+ if (url.empty())
+ {
+ // Region dosn't have the cap. Stop probing.
+ LL_DEBUGS("Voice") << "ParcelVoiceInfoRequest capability not available in this region" << LL_ENDL;
+ setState(stateDisableCleanup);
+ return false;
+ }
+ else
{
// if we've already retrieved the cap from the region, go ahead and make the request,
// and return true so we can go into the state that waits for the response.
@@ -4517,18 +4525,11 @@ bool LLVivoxVoiceClient::requestParcelVoiceInfo()
LL_DEBUGS("Voice") << "sending ParcelVoiceInfoRequest (" << mCurrentRegionName << ", " << mCurrentParcelLocalID << ")" << LL_ENDL;
LLHTTPClient::post(
- url,
- data,
- new LLVivoxVoiceClientCapResponder(getState()));
+ url,
+ data,
+ new LLVivoxVoiceClientCapResponder(getState()));
return true;
}
- else
- {
-
- // we don't have the cap yet, so return false so the caller can try again later.
- LL_DEBUGS("Voice") << "ParcelVoiceInfoRequest cap not yet available, deferring" << LL_ENDL;
- return false;
- }
}
void LLVivoxVoiceClient::switchChannel(