#!/usr/bin/perl -w

use strict;
use DBI;

my $DATABASE="greylist";
my $MDUSER="defang";

my $dbh = DBI->connect("DBI:mysql:database=$DATABASE;host=localhost","greylist","YOURPASSWORD",
        { RaiseError => 1, AutoCommit => 0 })
        or die $DBI::errstr;

my $db_version=0;

# Check db_version from db
my $sth = $dbh->prepare("SELECT db_version FROM greylist_db");

eval { $sth->execute() };

if (!$@) {
	my @row = $sth->fetchrow_array;
	$db_version = $row[0];
	$sth->finish;
}

if ($db_version < 1) {

	$dbh->do("CREATE TABLE greylist_db (
		db_version INTEGER NOT NULL)"
		);

	$dbh->do("CREATE TABLE greylist_data (
		id INTEGER AUTO_INCREMENT PRIMARY KEY,
		recipient VARCHAR(200) NOT NULL,
		sender VARCHAR(200) NOT NULL,
		ip VARCHAR(20) NOT NULL, 
		created INTEGER NOT NULL,
		modified INTEGER NOT NULL,
		reset INTEGER NOT NULL,
		accepted INTEGER NOT NULL,
		count INTEGER NOT NULL )"
		);		

        $dbh->do("INSERT INTO greylist_db (db_version) VALUES(1)");

	$dbh->do("CREATE UNIQUE INDEX recipient_sender_ip_idx 
		ON greylist_data (recipient, sender, ip)");
	
        $dbh->do("CREATE INDEX ip_idx 
		ON greylist_data (ip)");

        $dbh->commit();
}
$dbh->disconnect;
