diff options
author | Graham Madarasz <graham@lindenlab.com> | 2013-05-30 09:46:12 -0700 |
---|---|---|
committer | Graham Madarasz <graham@lindenlab.com> | 2013-05-30 09:46:12 -0700 |
commit | 6b2266e9fb470438ab8f4162176309dfaa5eb181 (patch) | |
tree | 6250cc1f3da118cd646a726c8f25001c36b0886a /indra/llmessage | |
parent | 4a1b6bdeef3753a65cb11ccbad151560da508e15 (diff) |
BUG-2707 first learn fly, then learn kick; moved setup of listener to after Area init is complete and made the coro that rewrites URIs do less work on the stack
Diffstat (limited to 'indra/llmessage')
-rwxr-xr-x | indra/llmessage/llares.cpp | 29 |
1 files changed, 22 insertions, 7 deletions
diff --git a/indra/llmessage/llares.cpp b/indra/llmessage/llares.cpp index 5a67035ed1..7f74247a13 100755 --- a/indra/llmessage/llares.cpp +++ b/indra/llmessage/llares.cpp @@ -99,8 +99,7 @@ void LLAres::QueryResponder::queryError(int code) LLAres::LLAres() : chan_(NULL), - mInitSuccess(false), - mListener(new LLAresListener(this)) + mInitSuccess(false) { if (ares_library_init( ARES_LIB_INIT_ALL ) != ARES_SUCCESS || ares_init(&chan_) != ARES_SUCCESS) @@ -109,6 +108,8 @@ LLAres::LLAres() : return; } + mListener = boost::shared_ptr< LLAresListener >(new LLAresListener(this)); + mInitSuccess = true; } @@ -161,12 +162,26 @@ void LLAres::getSrvRecords(const std::string &name, SrvResponder *resp) } void LLAres::rewriteURI(const std::string &uri, UriRewriteResponder *resp) -{ - llinfos << "Rewriting " << uri << llendl; +{ + if (resp && uri.size()) + { + LLURI* pURI = new LLURI(uri); + + resp->mUri = *pURI; + + delete pURI; + + if (!resp->mUri.scheme().size() || !resp->mUri.hostName().size()) + { + return; + } + + //llinfos << "LLAres::rewriteURI (" << uri << ") search: '" << "_" + resp->mUri.scheme() + "._tcp." + resp->mUri.hostName() << "'" << llendl; - resp->mUri = LLURI(uri); - search("_" + resp->mUri.scheme() + "._tcp." + resp->mUri.hostName(), - RES_SRV, resp); + search("_" + resp->mUri.scheme() + "._tcp." + resp->mUri.hostName(), RES_SRV, resp); + + + } } LLQueryResponder::LLQueryResponder() |