https://issues.shibboleth.net/jira/browse/SSPCPP-236
[shibboleth/cpp-sp.git] / shibsp / handler / impl / LocalLogoutInitiator.cpp
index 5768ac4..47345c7 100644 (file)
@@ -103,16 +103,15 @@ pair<bool,long> LocalLogoutInitiator::run(SPRequest& request, bool isHandler) co
     if (!session_id.empty()) {
         // Do back channel notification.
         vector<string> sessions(1, session_id);
-        if (!notifyBackChannel(app, request.getRequestURL(), sessions, true)) {
-            app.getServiceProvider().getSessionCache()->remove(app, request, &request);
-            return sendLogoutPage(app, request, request, true, "Partial logout failure.");
-        }
-        request.getServiceProvider().getSessionCache()->remove(app, request, &request);
+        bool result = notifyBackChannel(app, request.getRequestURL(), sessions, true);
+        app.getServiceProvider().getSessionCache()->remove(app, request, &request);
+        if (!result)
+            return sendLogoutPage(app, request, request, "partial");
     }
 
     // Route back to return location specified, or use the local template.
     const char* dest = request.getParameter("return");
     if (dest)
         return make_pair(true, request.sendRedirect(dest));
-    return sendLogoutPage(app, request, request, true, "Logout was successful.");
+    return sendLogoutPage(app, request, request, "local");
 }