add DXCIDR, fix version no tracking
[spider.git] / perl / cluster.pl
index 3c02e0386a0ab4a6f958dbe04b0f72bc0de127d2..143713babc1e0346bada54066d1bb5617dae601b 100755 (executable)
@@ -18,8 +18,6 @@ package main;
 use vars qw($data $system $cmd $localcmd $userfn $clusteraddr $clusterport $yes $no $user_interval $lang);
 
 $lang = 'en';                   # default language
-$clusteraddr = '127.0.0.1';     # cluster tcp host address - used for things like console.pl
-$clusterport = 27754;           # cluster tcp port
 $yes = 'Yes';                   # visual representation of yes
 $no = 'No';                     # ditto for no
 $user_interval = 11*60;         # the interval between unsolicited prompts if no traffic
@@ -123,6 +121,7 @@ use DXXml;
 use DXSql;
 use IsoTime;
 use BPQMsg;
+use DXCIDR;
 
 use Data::Dumper;
 use IO::File;
@@ -141,6 +140,9 @@ use vars qw(@inqueue $systime $starttime $lockfn @outstanding_connects
                        $can_encode $maxconnect_user $maxconnect_node
                   );
 
+
+$clusteraddr //= '127.0.0.1';     # cluster tcp host address - used for things like console.pl
+$clusterport //= 27754;           # cluster tcp port
 @inqueue = ();                                 # the main input queue, an array of hashes
 $systime = 0;                                  # the time now (in seconds)
 $starttime = 0;                 # the starting time of the cluster
@@ -319,7 +321,7 @@ sub cease
                $l->close_server;
        }
 
-       LogDbg('cluster', "DXSpider V$version, build $subversion.$build (git: $gitbranch/$gitversion) on $^O ended");
+       LogDbg('cluster', "DXSpider v$version build $build (git: $gitbranch/$gitversion) using perl $^V on $^O ended");
        dbgclose();
        Logclose();
 
@@ -367,6 +369,8 @@ sub AGWrestart
 #
 #############################################################
 
+chdir $root;
+
 $starttime = $systime = time;
 $systime_days = int ($systime / 86400);
 $systime_daystart = $systime_days * 86400;
@@ -405,18 +409,18 @@ if (DXSql::init($dsn)) {
 
        # determine the real Git build number and branch
        my $desc;
-       eval {$desc = `git describe --long`};
+       eval {$desc = `git --git-dir=$root/.git describe --long`};
        if (!$@ && $desc) {
-               my ($v, $s, $b, $g) = $desc =~ /^([\d.]+)(?:\.(\d+))?-(\d+)-g([0-9a-f]+)/;
+               my ($v, $s, $b, $g) = $desc =~ /^([\d\.]+)(?:\.(\d+))?-(\d+)-g([0-9a-f]+)/;
                $version = $v;
-               my $subversion = $s || 0;
+               $subversion = $s || 0;
                $build = $b || 0;
                $gitversion = "$g\[r]";
        }
     if (!$@) {
                my @branch;
                
-               eval {@branch = `git branch`};
+               eval {@branch = `git --git-dir=$root/.git branch`};
                unless ($@) {
                        for (@branch) {
                                my ($star, $b) = split /\s+/;
@@ -437,7 +441,7 @@ DXXml::init();
 # banner
 my ($year) = (gmtime)[5];
 $year += 1900;
-LogDbg('cluster', "DXSpider V$version, build $subversion.$build (git: $gitbranch/$gitversion) on $^O started");
+LogDbg('cluster', "DXSpider v$version build $build (git: $gitbranch/$gitversion) using perl $^V on $^O started");
 dbg("Copyright (c) 1998-$year Dirk Koopman G1TLH");
 
 # load Prefixes
@@ -474,6 +478,9 @@ DXUser->init($userfn, 1);
        }
 }
 
+# get any bad IPs 
+DXCIDR::init();
+
 # start listening for incoming messages/connects
 dbg("starting listeners ...");
 my $conn = IntMsg->new_server($clusteraddr, $clusterport, \&login);