chiark / gitweb /
wip login/logout handling
[nj-awaymsg.git] / AwayMsg.pm
index e20d6b6acc39f5b825a8fce78657bc45c79c4494..72c594695e69c9bd1ad84bc2f4e2c4d13d6de7ae 100644 (file)
@@ -5,29 +5,34 @@ use strict;
 use warnings;
 
 use DBI;
+use Data::Dumper;
 
 BEGIN {
     use Exporter ();
     our ($VERSION, @ISA, @EXPORT, @EXPORT_OK, %EXPORT_TAGS);
     $VERSION     = 1.00;
     @ISA         = qw(Exporter);
-    @EXPORT      = qw(&db_connect &db_commit $dbh);
+    @EXPORT      = qw(db_connect db_commit www_begin hquote
+                      $dbh);
     %EXPORT_TAGS = ( );
     @EXPORT_OK   = qw();
 }
 
 our ($dbh);
 
+sub www_begin ($$) {
+    my ($r,$m) = @_;
+    $r->header_out("Cache-Control: no-cache");
+}
+
+sub hquote ($) {
+    my ($raw) = @_;
+    return pack "H*", $raw;
+}
+
 sub db_connect () {
-    my $dbf;
-    foreach my $d (@INC) {
-       $dbf = "$d/away.db";
-       if (stat $dbf) {
-           chdir($d) or die $!;
-           last;
-       }
-    }
-    $dbh = DBI->connect("dbi:SQLite:away.db",
+    my $dbf = "$ENV{'NJAWAYMSG'}/data/away.db";
+    $dbh = DBI->connect("dbi:SQLite:$dbf",'','',
                         { AutoCommit=>0,
                           RaiseError=>1, ShowErrorStatement=>1
                         })
@@ -45,10 +50,11 @@ sub nooutput ($) {
     }
 }
 
-
 sub db_commit () {
-    nooutput("SELECT * FROM addresses LEFT JOIN config USING (emailaddr)");
-    nooutput("SELECT * FROM addresses LEFT JOIN texts USING (textid)");
+    nooutput("SELECT * FROM addresses LEFT JOIN config".
+            " USING (emailaddr) WHERE forwardfile IS NULL");
+    nooutput("SELECT * FROM addresses LEFT JOIN texts".
+            " USING (textid) WHERE desc IS NULL");
     $dbh->do("COMMIT");
 }