/**
* Send the user to their OpenID provider to authenticate.
*
* @param Auth_OpenID_AuthRequest $auth_request OpenID authentication request object
* @param string $trust_root OpenID trust root
* @param string $return_to URL where the OpenID provider should return the user
*/
function openid_doRedirect($auth_request, $trust_root, $return_to)
{
if ($auth_request->shouldSendRedirect()) {
$trust_root = trailingslashit($trust_root);
$redirect_url = $auth_request->redirectURL($trust_root, $return_to);
if (Auth_OpenID::isFailure($redirect_url)) {
openid_error('Could not redirect to server: ' . $redirect_url->message);
} else {
wp_redirect($redirect_url);
}
} else {
// Generate form markup and render it
$request_message = $auth_request->getMessage($trust_root, $return_to, false);
if (Auth_OpenID::isFailure($request_message)) {
openid_error('Could not redirect to server: ' . $request_message->message);
} else {
openid_repost($auth_request->endpoint->server_url, $request_message->toPostArgs());
}
}
}