X-Git-Url: http://gb7djk.dxcluster.net/gitweb/gitweb.cgi?a=blobdiff_plain;f=perl%2Fcluster.pl;h=9c47042b396ac0e13d12a6f3d02b82a7e093bd18;hb=74db48555c9a548e2ef49815234af3fc2b8ecd81;hp=3336d077482f0114d2558b8cc696dbbede4f612f;hpb=9b65e70322b24190bb5f677ccedcc000ab4625d2;p=spider.git diff --git a/perl/cluster.pl b/perl/cluster.pl index 3336d077..9c47042b 100755 --- a/perl/cluster.pl +++ b/perl/cluster.pl @@ -12,6 +12,19 @@ require 5.004; +package main; + +# set default paths, these should be overwritten by DXVars.pm +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 + + # make sure that modules are searched in the order local then perl BEGIN { umask 002; @@ -30,6 +43,11 @@ BEGIN { mkdir "$root/local_cmd", 0777 unless -d "$root/local_cmd"; + $data = "$root/data"; + $system = "$root/sys"; + $cmd = "$root/cmd"; + $localcmd = "$root/local_cmd"; + $userfn = "$data/users"; # try to create and lock a lockfile (this isn't atomic but # should do for now @@ -110,7 +128,6 @@ use Data::Dumper; use IO::File; use Fcntl ':flock'; use POSIX ":sys_wait_h"; -use Version; use Local; @@ -118,8 +135,8 @@ package main; use strict; use vars qw(@inqueue $systime $starttime $lockfn @outstanding_connects - $zombies $root @listeners $lang $myalias @debug $userfn $clusteraddr - $clusterport $mycall $decease $is_win $routeroot $me $reqreg $bumpexisting + $zombies $root @listeners $lang $myalias @debug $userfn + $mycall $decease $is_win $routeroot $me $reqreg $bumpexisting $allowdxby $dbh $dsn $dbuser $dbpass $do_xml $systime_days $systime_daystart $can_encode $maxconnect_user $maxconnect_node ); @@ -137,6 +154,8 @@ $maxconnect_node = 0; # Ditto but for nodes. In either case if a new incoming # takes the no of references in the routing table above these numbers # then the connection is refused. This only affects INCOMING connections. +use vars qw($version $subversion $build $gitversion $gitbranch); + # send a message to call on conn and disconnect sub already_conn { @@ -300,7 +319,7 @@ sub cease $l->close_server; } - LogDbg('cluster', "DXSpider V$version, build $subversion.$build (git: $gitversion) ended"); + LogDbg('cluster', "DXSpider V$version, build $subversion.$build (git: $gitbranch/$gitversion) ended"); dbgclose(); Logclose(); @@ -385,6 +404,8 @@ if (DXSql::init($dsn)) { import Git; # determine the real version number + $gitbranch = 'none'; + $gitversion = 'none'; my $repo = Git->repository(Directory => "$root/.git"); if ($repo) { my $desc = $repo->command_oneline(['describe'], STDERR => 0); @@ -396,6 +417,15 @@ if (DXSql::init($dsn)) { $gitversion = "$g\[r]"; } } + my @branch = $repo->command([qw{branch}], STDERR=>0); + for (@branch) { + my ($star, $b) = split /\s+/; + if ($star eq '*') { + $gitbranch = $b; + last; + } + } + } $SIG{__DIE__} = $w; } @@ -406,7 +436,7 @@ DXXml::init(); # banner my ($year) = (gmtime)[5]; $year += 1900; -LogDbg('cluster', "DXSpider V$version, build $subversion.$build (git: $gitversion) started"); +LogDbg('cluster', "DXSpider V$version, build $subversion.$build (git: $gitbranch/$gitversion) started"); dbg("Copyright (c) 1998-$year Dirk Koopman G1TLH"); # load Prefixes