X-Git-Url: http://the.earth.li/gitweb/?a=blobdiff_plain;f=onak-mail.pl;h=6799b3d86b4c897fd41aacc25bdf03f912f60b61;hb=cd4738e8f5ede42cba925b58a84c61e22bab8e8f;hp=1c3647c9720f6493393cda7f1f031abf40b8d181;hpb=f5f103192a4105438bee90bbf85e7407f73b49ca;p=onak.git diff --git a/onak-mail.pl b/onak-mail.pl index 1c3647c..6799b3d 100755 --- a/onak-mail.pl +++ b/onak-mail.pl @@ -6,10 +6,9 @@ # Copyright 2002 Project Purple # Released under the GPL. # -# $Id: onak-mail.pl,v 1.8 2003/10/11 22:17:17 noodles Exp $ -# use strict; +use Fcntl ':flock'; use IPC::Open3; my %config; @@ -38,6 +37,8 @@ sub readconfig { $config{'mta'} = $1; } elsif (/^pks_bin_dir (.*)/) { $config{'pks_bin_dir'} = $1; + } elsif (/^db_dir (.*)/) { + $config{'db_dir'} = $1; } elsif (/^syncsite (.*)/) { push @{$config{'syncsites'}}, $1; } @@ -59,6 +60,10 @@ sub submitupdate { my @data = @_; my (@errors, @mergedata); + open(LOCKFILE, '>'.$config{'db_dir'}.'/onak-mail.lck'); + flock(LOCKFILE, LOCK_EX); + print LOCKFILE "$$"; + open3(\*MERGEIN, \*MERGEOUT, \*MERGEERR, $config{'pks_bin_dir'}."/onak", "-u", "add"); @@ -69,6 +74,9 @@ sub submitupdate { @errors = ; close MERGEERR; + flock(LOCKFILE, LOCK_UN); + close(LOCKFILE); + return @mergedata; }