use IO::File;
use Fcntl ':flock';
use POSIX ":sys_wait_h";
-use Version;
use Web;
+use vars qw($version $build $gitversion $gitbranch);
+
use Local;
}
# is he locked out ?
+ $user = DXUser::get_current($call);
my $basecall = $call;
$basecall =~ s/-\d+$//; # remember this for later multiple user processing
- my $baseuser = DXUser::get_current($basecall);
- my $lock = $user->lockout if $user;
- if ($baseuser && $baseuser->lockout || $lock) {
- if (!$user || !defined $lock || $lock) {
- my $host = $conn->peerhost;
- LogDbg('DXCommand', "$call on $host is locked out, disconnected");
- $conn->disconnect;
- return;
- }
+ my $lock;
+ if ($user) {
+ # we are a real user
+ $lock = $user->lockout;
+ } elsif ($allowmultiple) {
+ # could we be a potential "pseudo" connection
+ $user = DXUser::get_current($basecall);
+ $lock = $user->lockout if $user;
+ }
+ if ($lock) {
+ my $host = $conn->peerhost;
+ LogDbg('DXCommand', "$call on $host is locked out, disconnected");
+ $conn->disconnect;
+ return;
}
# set up the basic channel info for "Normal" Users
# is there one already connected to me - locally?
- $user = DXUser::get_current($call);
$dxchan = DXChannel::get($call);
my $newcall = $call;
if ($dxchan) {
if ($bumpexisting) {
my $ip = $dxchan->hostname;
$dxchan->send_now('D', DXM::msg($lang, 'conbump', $call, $ip));
- LogDbg('DXCommand', "$call bumped off by $ip, disconnected");
+ Log('', "$call bumped off by $ip, disconnected");
$dxchan->disconnect;
} else {
already_conn($conn, $call, DXM::msg($lang, 'conother', $call, $main::mycall));
$SIG{'INT'} = 'IGNORE';
}
- DXUser::sync;
if (defined &Local::finish) {
eval {
$l->close_server;
}
- LogDbg('cluster', "DXSpider V$version, build $build (git: $gitversion) ended");
+ LogDbg('cluster', "DXSpider V$version, build $build (git: $gitbranch/$gitversion) ended");
dbg("bye bye everyone - bye bye");
dbgclose();
Logclose();
import Encode;
$can_encode = 1;
}
+ $gitbranch = 'none';
+ $gitversion = 'none';
eval { require Git; };
unless ($@) {
import Git;
$build = $b || 0;
$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;
# banner
my ($year) = (gmtime)[5];
$year += 1900;
- LogDbg('cluster', "DXSpider V$version, build $build (git: $gitversion) started");
+ LogDbg('cluster', "DXSpider V$version, build $build (git: $gitbranch/$gitversion) started");
dbg("Copyright (c) 1998-$year Dirk Koopman G1TLH");
# load Prefixes
# initialise User file system
dbg("loading user file system ...");
- DXUser::init(1);
+ DXUser::init(4); # version 4 == json format
# look for the sysop and the alias user and complain if they aren't there
{