summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--indra/newview/llstartup.cpp4
-rw-r--r--indra/newview/skins/default/xui/en/notifications.xml13
-rw-r--r--indra/viewer_components/login/lllogin.cpp10
3 files changed, 27 insertions, 0 deletions
diff --git a/indra/newview/llstartup.cpp b/indra/newview/llstartup.cpp
index e20d714a3b..42bb267b33 100644
--- a/indra/newview/llstartup.cpp
+++ b/indra/newview/llstartup.cpp
@@ -1188,6 +1188,10 @@ bool idle_startup()
}
}
+ else if (reason_response == "BadType")
+ {
+ LLNotificationsUtil::add("LoginFailedToParse", LLSD(), LLSD(), login_alert_done);
+ }
else if (!message.empty())
{
// This wasn't a certificate error, so throw up the normal
diff --git a/indra/newview/skins/default/xui/en/notifications.xml b/indra/newview/skins/default/xui/en/notifications.xml
index b769d20106..756bb52e3e 100644
--- a/indra/newview/skins/default/xui/en/notifications.xml
+++ b/indra/newview/skins/default/xui/en/notifications.xml
@@ -214,6 +214,19 @@ Make sure your Internet connection is working properly.
<notification
icon="alertmodal.tga"
+ name="LoginFailedToParse"
+ type="alertmodal">
+ <tag>fail</tag>
+Viewer received malformed response from server. Please, make sure your Internet connection is working properly and try again later.
+
+If you feel this is in error, please contact Support.
+ <usetemplate
+ name="okbutton"
+ yestext="OK"/>
+ </notification>
+
+ <notification
+ icon="alertmodal.tga"
name="MessageTemplateNotFound"
type="alertmodal">
Message Template [PATH] not found.
diff --git a/indra/viewer_components/login/lllogin.cpp b/indra/viewer_components/login/lllogin.cpp
index c2a0c46c83..168880dc12 100644
--- a/indra/viewer_components/login/lllogin.cpp
+++ b/indra/viewer_components/login/lllogin.cpp
@@ -284,6 +284,7 @@ void LLLogin::Impl::loginCoro(std::string uri, LLSD login_params)
// If we don't recognize status at all, trouble
if (! (status == "CURLError"
+ || status == "BadType"
|| status == "XMLRPCError"
|| status == "OtherError"))
{
@@ -293,6 +294,15 @@ void LLLogin::Impl::loginCoro(std::string uri, LLSD login_params)
return;
}
+ if (status == "BadType")
+ {
+ // Invalid xmlrpc type
+ // Dump this response into logs
+ LL_WARNS("LLLogin") << "Failed to parse response"
+ << " from " << xmlrpcPump.getName()
+ << " pump: " << mAuthResponse << LL_ENDL;
+ }
+
// Here status IS one of the errors tested above.
// Tell caller this didn't work out so well.