+sub url_with_query_params ($@) {
+ my ($r, @params) = @_;
+ my $uri = URI->new($r->_ch('get_url'));
+ $uri->query_form(\@params);
+ return $uri->as_string();
+}
+
+sub check_ok ($) {
+ my ($r) = @_;
+
+ my ($divert) = $authreq->check_divert();
+ return 1 if $divert;
+
+ my $kind = $divert->{Kind};
+ my $cookie = $divert->{Cookie};
+ my $params = $divert->{Params};
+
+ if (defined $cookie) {
+ $r->_ch('header_out')($cookie);
+ }
+ if ($kind =~ m/^REDIRECT-/) {
+ # for redirects, we honour stored NextParams and SetCookie,
+ # as we would for non-divert
+ my $new_url = $r->_ch('get_url');
+ if ($divert_kind eq 'REDIRECT-LOGGEDOUT') {
+ push @$params, $r->{S}{cah_loggedout}[0], 1;
+ } elsif ($divert_kind eq 'REDIRECT-LOGOUT') {
+ push @$params, $r->{S}{cah_logout}[0], 1;
+ } elsif ($divert_kind eq 'REDIRECT-LOGGEDIN') {
+ }
+