From 7f1c2d9ec737a90d4d216f59ccb8b93f9054c472 Mon Sep 17 00:00:00 2001
From: Jonathan McDowell <noodles@earth.li>
Date: Mon, 31 May 2004 23:48:11 +0000
Subject: [PATCH] cscvs to tla changeset 116 Author: noodles Date: 2004/01/04
 18:48:37 Add a lock around the call to onak so that we've only got one copy
 of onak-mail running it at once.

---
 onak-mail.pl | 12 +++++++++++-
 1 file changed, 11 insertions(+), 1 deletion(-)

diff --git a/onak-mail.pl b/onak-mail.pl
index 1c3647c..e5c0d04 100755
--- a/onak-mail.pl
+++ b/onak-mail.pl
@@ -6,10 +6,11 @@
 # Copyright 2002 Project Purple
 # Released under the GPL.
 #
-# $Id: onak-mail.pl,v 1.8 2003/10/11 22:17:17 noodles Exp $
+# $Id: onak-mail.pl,v 1.9 2004/01/04 18:48:37 noodles Exp $
 #
 
 use strict;
+use Fcntl ':flock';
 use IPC::Open3;
 
 my %config;
@@ -38,6 +39,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 +62,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 +76,9 @@ sub submitupdate {
 	@errors = <MERGEERR>;
 	close MERGEERR;
 
+	flock(LOCKFILE, LOCK_UN);
+	close(LOCKFILE);
+
 	return @mergedata;
 }
 
-- 
2.39.5