summaryrefslogtreecommitdiff
path: root/indra/newview/llsrv.cpp
diff options
context:
space:
mode:
authorJosh Bell <josh@lindenlab.com>2007-11-01 23:10:05 +0000
committerJosh Bell <josh@lindenlab.com>2007-11-01 23:10:05 +0000
commit0f00eef21798520bcfe27ae03b3f1b2ae938ff13 (patch)
tree81c5b33e296d316a10a76c5a9e4cd09790aaa029 /indra/newview/llsrv.cpp
parentef0eb8dbcf3980a057ad0864efa1c8e1575a8428 (diff)
svn merge -r 71509:72877 svn+ssh://svn.lindenlab.com/svn/linden/branches/Branch_1-18-4-Viewer --> release
Backport patches and translations from RC branch
Diffstat (limited to 'indra/newview/llsrv.cpp')
-rw-r--r--indra/newview/llsrv.cpp17
1 files changed, 15 insertions, 2 deletions
diff --git a/indra/newview/llsrv.cpp b/indra/newview/llsrv.cpp
index 150fcb1583..7271513852 100644
--- a/indra/newview/llsrv.cpp
+++ b/indra/newview/llsrv.cpp
@@ -51,6 +51,19 @@ std::vector<std::string> LLSRV::rewriteURI(const std::string& uri)
LLPointer<Responder> resp = new Responder;
gAres->rewriteURI(uri, resp);
- gAres->processAll();
- return resp->mUris;
+ gAres->processAll();
+
+ // It's been observed in deployment that c-ares can return control
+ // to us without firing all of our callbacks, in which case the
+ // returned vector will be empty, instead of a singleton as we
+ // might wish.
+
+ if (!resp->mUris.empty())
+ {
+ return resp->mUris;
+ }
+
+ std::vector<std::string> uris;
+ uris.push_back(uri);
+ return uris;
}