diff options
author | Josh Bell <josh@lindenlab.com> | 2007-11-01 23:10:05 +0000 |
---|---|---|
committer | Josh Bell <josh@lindenlab.com> | 2007-11-01 23:10:05 +0000 |
commit | 0f00eef21798520bcfe27ae03b3f1b2ae938ff13 (patch) | |
tree | 81c5b33e296d316a10a76c5a9e4cd09790aaa029 /indra/newview/llsrv.cpp | |
parent | ef0eb8dbcf3980a057ad0864efa1c8e1575a8428 (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.cpp | 17 |
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; } |