In response to a gripe by Tom Lane.
--- /dev/null
+#!/usr/bin/perl
+
+use strict;
+use warnings;
+require PgCommitFest::Request;
+
+my $db = PgCommitFest::Request->db();
+$db->do(<<EOM);
+DELETE FROM session WHERE login_time < now() - '10 days'::interval;
+EOM
+$db->commit;
return $self->{'dbh'}->do($sql, {}, @bind);
}
+sub do {
+ my ($self, $sql, @bind) = @_;
+ warn $sql if $self->{'trace'};
+ $self->{'dirty'} = 1;
+ return $self->{'dbh'}->do($sql, {}, @bind);
+}
+
sub disconnect {
my ($self) = @_;
return $self->{'dbh'}->disconnect();
use strict;
use warnings;
use FCGI;
+use POSIX;
use Template;
our %ACTION = (
$r->db->insert('session', { 'id' => $session_cookie,
'userid' => $u->{'userid'} });
$r->db->commit;
- $r->header('Set-Cookie', "session=$session_cookie; path=/");
+ my $expires = strftime("%a, %d-%b-%Y %H:%M:%S GMT",
+ localtime(time + (86400 * 7)));
+ $r->header('Set-Cookie',
+ "session=$session_cookie; path=/; expires=$expires");
$r->redirect($value{'uri'} ne '' ? $value{'uri'} : '/');
}
else {
sub db {
my ($self) = @_;
- if (!defined $self->{'db'}) {
- $self->{'db'} =
- PgCommitFest::DB->connect($PG, $PGUSERNAME, $PGPASSWORD);
- }
- return $self->{'db'};
+ return $self->{'db'} if ref $self && defined $self->{'db'};
+ my $db = PgCommitFest::DB->connect($PG, $PGUSERNAME, $PGPASSWORD);
+ $self->{'db'} = $db if ref $self;
+ return $db;
}
sub db_is_connected {