X-Git-Url: http://gb7djk.dxcluster.net/gitweb/gitweb.cgi?a=blobdiff_plain;f=perl%2FDXProt.pm;h=310a3e87b94b61ecc17c43cb32d13123ca570b6a;hb=2b58ccdf81685a1167a43c38705a0d84b9d8d661;hp=ed8d2e5bf67c10c5d87914e50c4ff62916f335a5;hpb=ece0b001419b8e755540eaff4ce3a558fd7d939f;p=spider.git diff --git a/perl/DXProt.pm b/perl/DXProt.pm index ed8d2e5b..310a3e87 100644 --- a/perl/DXProt.pm +++ b/perl/DXProt.pm @@ -34,6 +34,13 @@ use Route; use Route::Node; use strict; + +use vars qw($VERSION $BRANCH); +$VERSION = sprintf( "%d.%03d", q$Revision$ =~ /(\d+)\.(\d+)/ ); +$BRANCH = sprintf( "%d.%03d", q$Revision$ =~ /\d+\.\d+\.(\d+)\.(\d+)/ ) || 0; +$main::build += $VERSION; +$main::branch += $BRANCH; + use vars qw($me $pc11_max_age $pc23_max_age $last_hour $last10 %eph %pings %rcmds %nodehops $baddx $badspotter $badnode $censorpc @@ -213,7 +220,9 @@ sub start # remember type of connection $self->{consort} = $line; $self->{outbound} = $sort eq 'O'; - $self->{priv} = $user->priv || 1; # other clusters can always be 'normal' users + my $priv = $user->priv; + $priv = $user->priv(1) unless $priv; + $self->{priv} = $priv; # other clusters can always be 'normal' users $self->{lang} = $user->lang || 'en'; $self->{isolate} = $user->{isolate}; $self->{consort} = $line; # save the connection type @@ -422,7 +431,7 @@ sub normal my $node; my $to = $user->homenode; my $last = $user->lastoper || 0; - if ($to ne $main::mycall && $send_opernam && $main::systime > $last + $DXUser::lastoperinterval && $to && ($node = Route::Node::get($to)) ) { + if ($send_opernam && $to && $to ne $main::mycall && $main::systime > $last + $DXUser::lastoperinterval && ($node = Route::Node::get($to)) ) { my $cmd = "forward/opernam $spot[4]"; # send the rcmd but we aren't interested in the replies... my $dxchan = $node->dxchan; @@ -716,7 +725,7 @@ sub normal $user = DXUser->new($call); $user->sort('A'); $user->priv(1); # I have relented and defaulted nodes - $self->{priv} = 1; # to user RCMDs allowed + $user->lockout(1); $user->homenode($call); $user->node($call); } @@ -856,7 +865,7 @@ sub normal return; } - Log('DXProt', "Merge request for $field[3] spots and $field[4] WWV from $field[1]"); + Log('DXProt', "Merge request for $field[3] spots and $field[4] WWV from $field[2]"); # spots if ($field[3] > 0) { @@ -920,6 +929,11 @@ sub normal # my $ref = Route::get($call) || Route->new($call); # return unless $self->in_filter_route($ref); + if ($field[3] eq $field[2]) { + dbg('PCPROT: invalid value') if isdbg('chanerr'); + return; + } + # add this station to the user database, if required my $user = DXUser->get_current($call); $user = DXUser->new($call) if !$user; @@ -1713,7 +1727,7 @@ sub disconnect my $node = Route::Node::get($call); my @rout; if ($node) { - @rout = $node->del_nodes; # at the next level +# @rout = $node->del_nodes; # at the next level @rout = $node->del($main::routeroot); }