chiark / gitweb /
Testing: Provide test-wrap script
[cgi-auth-flexible.git] / cgi-auth-flexible.pm
index d3d9517afee6469e1c85a3584099db5cb6023c22..a661618067278c8b3099bc846603e34a617f0b19 100644 (file)
@@ -1036,16 +1036,17 @@ sub check_divert ($) {
     $r->{Divert} = $r->_db_transaction(sub { $r->_check_divert_core(); });
     $dbh->commit();
 
-    my $cookraw = $r->{_CookieRaw};
-    $r->{CookieSecret} = $r->_blind($cookraw);
+    my $divert = $r->{Divert};
+    my $cookraw = $divert->{_CookieRaw};
+    $divert->{CookieSecret} = $r->_blind($cookraw);
     if ($cookraw) {
-       $r->{Params}{$r->{S}{assoc_param_name}} = [
+       $divert->{Params}{$r->{S}{assoc_param_name}} = [
            $r->_blind($r->hash($cookraw))
            ];
     }
 
-    $r->_debug(Data::Dumper->Dump([$r->{Divert}],[qw(divert)]));
-    return $r->{Divert};
+    $r->_debug(Data::Dumper->Dump([$divert],[qw(divert)]));
+    return $divert;
 }
 
 sub get_divert ($) {
@@ -1184,13 +1185,13 @@ sub _blind ($$) {
     my $mask = $r->_random(($l+1)>>1);
     $mask = substr $mask, 0, $l;
     my $blound = $r->_blind_combine($in, $mask);
-    return "$blound/$mask";
+    return "$blound.$mask";
 }
 
 sub _unblind ($$) {
     my ($r, $in) = @_;
     return $in unless $in;
-    my ($blound,$mask) = ($in =~ m#^(.*)/([0-9a-f]+)$#) or die "$in ?";
+    my ($blound,$mask) = ($in =~ m#^(.*)\.([0-9a-f]+)$#) or die "$in ?";
     my $l = $r->_blind_len($blound);
     $l == length($mask) or die "$in ?";
     return $r->_blind_combine($blound, $mask);