diff --git a/indra/llcommon/llformat.cpp b/indra/llcommon/llformat.cpp index 01b02191f..7030b5f0f 100644 --- a/indra/llcommon/llformat.cpp +++ b/indra/llcommon/llformat.cpp @@ -55,7 +55,7 @@ static void va_format(std::string& out, const char *fmt, va_list& va) const auto size = vsnprintf(va); if (size < 0) { - LL_ERRS() << "Encoding failed, code " << size << ". String hint:" << out << '/' << fmt << LL_ENDL; + LL_ERRS() << "Encoding failed, code " << size << ". String hint: " << out << '/' << fmt << LL_ENDL; } else if (static_cast(size) >= smallsize) // Resize if we need more space { diff --git a/indra/newview/lleventpoll.cpp b/indra/newview/lleventpoll.cpp index 22b715590..30146adcb 100644 --- a/indra/newview/lleventpoll.cpp +++ b/indra/newview/lleventpoll.cpp @@ -190,6 +190,20 @@ namespace mErrorCount = 0; makeRequest(); } + else if (mStatus == HTTP_NOT_FOUND) + { // Event polling for this server has been canceled. In + // some cases the server gets ahead of the viewer and will + // return a 404 error (Not Found) before the cancel event + // comes back in the queue + LL_WARNS("LLEventPollImpl") << "Canceling coroutine" << LL_ENDL; + stop(); + } + else if (mCode != CURLE_OK) + { + /// Some LLCore or LIBCurl error was returned. This is unlikely to be recoverable + LL_WARNS("LLEventPollImpl") << "Critical error from poll request returned from libraries. Canceling coroutine." << LL_ENDL; + stop(); + } else if (mErrorCount < MAX_EVENT_POLL_HTTP_ERRORS) { ++mErrorCount;