diff options
Diffstat (limited to 'indra/newview/lleventpoll.cpp')
| -rw-r--r-- | indra/newview/lleventpoll.cpp | 15 | 
1 files changed, 12 insertions, 3 deletions
| diff --git a/indra/newview/lleventpoll.cpp b/indra/newview/lleventpoll.cpp index 5e0f3ab7f9..4b5fd8a758 100644 --- a/indra/newview/lleventpoll.cpp +++ b/indra/newview/lleventpoll.cpp @@ -106,6 +106,7 @@ namespace Details          LLSD message;          message["sender"] = mSenderIp;          message["body"] = content["body"]; +          LLMessageSystem::dispatch(msg_name, message);      } @@ -165,6 +166,14 @@ namespace Details  //          LL_DEBUGS("LLEventPollImpl::eventPollCoro") << "<" << counter << "> result = "  //              << LLSDXMLStreamer(result) << LL_ENDL; +            if (gDisconnected) +            { +                // Lost connection or disconnected during quit, don't process sim/region update +                // messages, they might populate some cleaned up classes (LLWorld, region and object list) +                LL_INFOS("LLEventPollImpl") << "Dropping event messages" << LL_ENDL; +                break; +            } +              LLSD httpResults = result["http_result"];              LLCore::HttpStatus status = LLCoreHttpUtil::HttpCoroutineAdapter::getStatusFromLLSD(httpResults); @@ -209,7 +218,7 @@ namespace Details                      llcoro::suspendUntilTimeout(waitToRetry); -                    if (mDone) +                    if (mDone || gDisconnected)                          break;                      LL_INFOS("LLEventPollImpl") << "<" << counter << "> About to retry request." << LL_ENDL;                      continue; @@ -241,7 +250,7 @@ namespace Details                  !result.get("events") ||                  !result.get("id"))              { -                LL_WARNS("LLEventPollImpl") << " <" << counter << "> received event poll with no events or id key: " << LLSDXMLStreamer(result) << LL_ENDL; +                LL_WARNS("LLEventPollImpl") << " <" << counter << "> received event poll with no events or id key: " << result << LL_ENDL;                  continue;              } @@ -254,7 +263,7 @@ namespace Details              }              // was LL_INFOS() but now that CoarseRegionUpdate is TCP @ 1/second, it'd be too verbose for viewer logs. -MG -            LL_DEBUGS("LLEventPollImpl") << " <" << counter << "> " << events.size() << "events (id " << LLSDXMLStreamer(acknowledge) << ")" << LL_ENDL; +            LL_DEBUGS("LLEventPollImpl") << " <" << counter << "> " << events.size() << "events (id " << acknowledge << ")" << LL_ENDL;              LLSD::array_const_iterator i = events.beginArray();              LLSD::array_const_iterator end = events.endArray(); | 
