chiark / gitweb /
wip fixes, debugging
authorIan Jackson <ijackson@chiark.greenend.org.uk>
Tue, 8 Jan 2013 23:12:36 +0000 (23:12 +0000)
committerIan Jackson <ijackson@chiark.greenend.org.uk>
Tue, 8 Jan 2013 23:12:36 +0000 (23:12 +0000)
cgi-auth-hybrid.pm

index 4f74cded4fe0e89a99f258640757b1cc4f03e000..d945faefa5cc44c388a430a76732dd9317c688c0 100644 (file)
@@ -37,9 +37,10 @@ BEGIN {
 our @EXPORT_OK;
 
 use DBI;
-use CGI;
+use CGI qw/escapeHTML/;
 use Locale::gettext;
 use URI;
+use Data::Dumper;
 
 #---------- public utilities ----------
 
@@ -238,26 +239,26 @@ sub _db_transaction ($$) {
     my $retries = 10;
     my $rv;
     my $dbh = $v->{Dbh};
-#print STDERR "DT entry\n";
+print STDERR "DT entry\n";
     for (;;) {
-#print STDERR "DT loop\n";
+print STDERR "DT loop\n";
        if (!eval {
            $rv = $fn->();
-#print STDERR "DT fn ok\n";
+print STDERR "DT fn ok\n";
            1;
        }) {
-#print STDERR "DT fn error\n";
+print STDERR "DT fn error\n";
            { local ($@); $dbh->rollback(); }
-#print STDERR "DT fn throwing\n";
+print STDERR "DT fn throwing\n";
            die $@;
        }
-#print STDERR "DT fn eval ok\n";
+print STDERR "DT fn eval ok\n";
        if (eval {
            $dbh->commit();
 print STDERR "DT commit ok\n";
            1;
        }) {
-print STDERR "DT commit eval ok\n";
+print STDERR "DT commit eval ok $rv\n";
            return $rv;
        }
 print STDERR "DT commit throw?\n";
@@ -287,6 +288,7 @@ sub new_request {
 sub _ch ($$@) { # calls an application hook
     my ($r,$methname, @args) = @_;
     my $methfunc = $r->{S}{$methname};
+    die "$methname ?" unless $methfunc;
     return $methfunc->($r->{Cgi}, $r, @args);
 }
 
@@ -519,6 +521,7 @@ sub _check_divert_core ($) {
     die unless $cookv eq $parmv;
     $r->{Assoc} = $cookv;
     $r->{UserOK} = $cooku;
+    print STDERR "C-D-C OK\n";
     return undef;
 }
 
@@ -587,14 +590,14 @@ sub _db_record_login_ok ($$$) {
 
 sub check_divert ($) {
     my ($r) = @_;
-    my $divert;
     if (exists $r->{Divert}) {
         return $r->{Divert};
     }
     my $dbh = $r->{Dbh};
     $r->{Divert} = $r->_db_transaction(sub { $r->_check_divert_core(); });
     $dbh->commit();
-    return $divert;
+    print STDERR Dumper($r->{Divert});
+    return $r->{Divert};
 }
 
 sub get_divert ($) {
@@ -660,9 +663,9 @@ sub check_ok ($) {
        die $kind;
     }
 
-    $r->_print($r->_ch('start_html',$title),
+    $r->_print($r->_ch('gen_start_html',$title),
               @body,
-              $r->_ch('end_html'));
+              $r->_ch('gen_end_html'));
     return 0;
 }
 
@@ -716,9 +719,9 @@ sub secret_hidden_html ($) {
 
 sub secret_cookie ($) {
     my ($r) = @_;
-print STDERR "SC\n";
+#print STDERR "SC\n";
     my $cookv = $r->construct_cookie($r->secret_val()); 
-print STDERR "SC=$cookv\n";
+#print STDERR "SC=$cookv\n";
     return $cookv;
 }