Change ping averaging to be like TCP and become a smoothed RTT.
[spider.git] / perl / create_sysop.pl
index fbeca2727ef34bc923a34d549b790a2bf7857954..d600ec6ee623515082fc2f113062882d534d3e85 100755 (executable)
@@ -23,7 +23,7 @@ use DXUser;
 
 sub delete_it
 {
-       system("rm -f $userfn*");
+       DXUser->del_file($userfn);
 }
 
 sub create_it
@@ -37,7 +37,7 @@ sub create_it
        $self->{qth} = $myqth;
        $self->{qra} = $mylocator;
        $self->{lat} = $mylatitude;
-       $self->{long} = $mylongtitude;
+       $self->{long} = $mylongitude;
        $self->{email} = $myemail;
        $self->{bbsaddr} = $mybbsaddr;
        $self->{homenode} = $mycall;
@@ -59,7 +59,7 @@ sub create_it
        $self->{qth} = $myqth;
        $self->{qra} = $mylocator;
        $self->{lat} = $mylatitude;
-       $self->{long} = $mylongtitude;
+       $self->{long} = $mylongitude;
        $self->{email} = $myemail;
        $self->{bbsaddr} = $mybbsaddr;
        $self->{homenode} = $mycall;
@@ -75,20 +75,33 @@ sub create_it
 
 }
 
-DXUser->init($userfn);
+$lockfn = "$root/perl/cluster.lck";       # lock file name
+if (-e $lockfn) {
+       open(CLLOCK, "$lockfn") or die "Can't open Lockfile ($lockfn) $!";
+       my $pid = <CLLOCK>;
+       chomp $pid;
+       die "Sorry, Lockfile ($lockfn) and process $pid exist, a cluster is running\n" if kill 0, $pid;
+       close CLLOCK;
+}
+
 if (-e "$userfn") {
        print "Do you wish to destroy your user database (THINK!!!) [y/N]: ";
        $ans = <STDIN>;
        if ($ans =~ /^[Yy]/) {
                delete_it();
+               DXUser->init($userfn, 1);
                create_it();
        } else {
                print "Do you wish to reset your cluster and sysop information? [y/N]: ";
                $ans = <STDIN>;
-               create_it() if $ans =~ /^[Yy]/;
+               if ($ans =~ /^[Yy]/) {
+                       DXUser->init($userfn, 1);
+                       create_it();
+               }
        }
   
 } else {
+       DXUser->init($userfn, 1);
        create_it();
 }
 DXUser->finish();