#!/usr/bin/env perl
#
# public domain
#
use common::sense;
use File::Temp qw/tempfile/;

my %state;
# this is the directory you want to keep the archive
my $dir = '/var/mail/archive';

$

print "register
print "register
print "register
print "register

while (my $line = <>) {
	next if ($line =~ m/^config/);

	chomp $line;

	my @atoms = split /\
	if ($atoms[4] eq q/link-connect/) {
		link_connect(@atoms[5..$#atoms]);
	} elsif ($atoms[4] eq q/link-disconnect/) {
		link_disconnect(@atoms[5..$#atoms]);
	} elsif ($atoms[4] eq q/data-line/) {
		data_line(@atoms[5..$#atoms]);
	} else {
		warn "unknown event: $atoms[4]\n";
	}
}

sub link_connect {
	my $sid = shift;

	my $date = time;

	my ($fh, $filename) = tempfile(q/XXXXXX/, 
		SUFFIX	=> ".$date",
		DIR	=> "$dir",
		UNLINK	=> 0,
	);
	$state{$sid} = { fh => $fh, fn => $filename };
}

sub link_disconnect {
	my $sid = shift;

	close $state{$sid}->{fh};

	delete $state{$sid};
}

sub data_line {
	my ($sid, $token, $data) = @_;

	unless (defined $data) { $data = ""; }
	
	my $fh = $state{$sid}->{fh};

	print $fh "$data\n";

	print "filter-dataline
}
	
1;
		
