if ($status === "unknown") { header("X-XRDS-Location: {$serverUri}?xrds=general"); $status = "default"; } } // Now perform the action and catch errors. $msg->runWithErrors("performActions"); // Set some global values for the pages. switch ($status) { case "loginForm": $loginNonce = $session->generateNonce($nonceBytes); break; case "loggedIn": $loggedInUser = $session->getUser(); /* If we have a pending request, redirect to trust page. */ $openidReq = $session->getRequestInfo(); if ($openidReq) { $status = "confirmTrust"; $trustRoot = $openidReq->trust_root; } break; default: // Nothing to be done any more. break; } // Clean up. msg and html have to be kept for later. $req->close(); $nc->close(); $openid->close(); $session->close(); // Finish off if this request was only for an XRDS file.