--- /usr/home/staff/wright/postgre/rserv-0.3/bin/Replicate	Wed Oct 29 12:06:26 2003
+++ Replicate	Fri Mar 12 18:34:51 2004
@@ -21,7 +21,7 @@
 
 my ($debug,$verbose) = (0,0);
 my ($help,$masterhost,$masterport,$masteruser,$masterpassword,
-	$slavehost,$slaveport,$slaveuser,$slavepassword);
+	$slavehost,$slaveport,$slaveuser,$slavepassword,$loop);
 my $snapshot = ".__Snapshot";
 
 my $result = GetOptions(
@@ -30,7 +30,7 @@
 	"masteruser=s" => \$masteruser, "masterpassword=s" => \$masterpassword,
 	"slavehost=s" => \$slavehost, "slaveport=i" => \$slaveport,
 	"slaveuser=s" => \$slaveuser, "slavepassword=s" => \$slavepassword,
-	"snapshot=s" => \$snapshot,
+	"snapshot=s" => \$snapshot, "loop|l=i" => \$loop,
 	);
 
 if (defined($help) || (scalar(@ARGV) < 2)) {
@@ -92,6 +92,8 @@
 	exit 1;
 }
 
+$SIG{HUP} = sub { $loop = 0 };
+
 
 my $minfo = "dbname=$master";
 $minfo = "$minfo host=$masterhost" if (defined($masterhost));
@@ -130,6 +132,22 @@
     unlink $fname;
     die "\n>>>>>>>>>>>>> ERROR\n";
 }
+
+if ( ! $loop ) {
+    &doReplication;
+} else {
+    while ( $loop ) {
+        &doReplication;
+        sleep( $loop );
+    }
+}
+
+
+exit(0);
+
+###########################################################################
+
+sub doReplication {
 SyncSync($mconn, $sconn);
 
 my $outf = new IO::File;
@@ -146,7 +164,7 @@
     print "\n>>>>>>>>>>>>> DBases are sync-ed\n" if ($verbose);
     unlink $snapshot unless ($debug);
     unlink $fname;
-    exit(0);
+        return(0);
 }
 
 my $inpf = new IO::File;
@@ -167,9 +185,7 @@
 }
 
 unlink $fname;
-exit(0);
-
-###########################################################################
+}
 
 sub SyncSync
 {
@@ -183,7 +199,7 @@
 	print "Last SyncID applied: $syncid\n" if ($verbose);
 	print "Sync SyncID\n" if ($verbose);
 
-	$res = SyncSyncID($mconn, $slaveId, $syncid);
+        my $res = SyncSyncID($mconn, $slaveId, $syncid);
 
 	print "Succeeded\n" if (($res > 0) && ($verbose));
     }