X-Git-Url: http://www.dxcluster.org/gitweb/gitweb.cgi?a=blobdiff_plain;f=perl%2FDXProt.pm;h=5694ba05b217ba2f3b9a9adcda4ec1b712235217;hb=c1540ccd7990ec4bd151604dd63583d19fe4d0f6;hp=eafb591dac4d64a5d3da6db501a150b116130794;hpb=e72ce56ce6973656acb064366459d54cda85f8cc;p=spider.git diff --git a/perl/DXProt.pm b/perl/DXProt.pm index eafb591d..5694ba05 100644 --- a/perl/DXProt.pm +++ b/perl/DXProt.pm @@ -32,7 +32,6 @@ use DXHash; use Route; use Route::Node; use Script; -use RouteDB; use DXProtHandle; use strict; @@ -232,7 +231,7 @@ sub init do "$main::data/hop_table.pl" if -e "$main::data/hop_table.pl"; confess $@ if $@; - my $user = DXUser->get($main::mycall); + my $user = DXUser::get($main::mycall); die "User $main::mycall not setup or disappeared RTFM" unless $user; $myprot_version += $main::version*100; @@ -311,7 +310,8 @@ sub start $self->{wwvfilter} = Filter::read_in('wwv', $call, 0) || Filter::read_in('wwv', 'node_default', 0); $self->{wcyfilter} = Filter::read_in('wcy', $call, 0) || Filter::read_in('wcy', 'node_default', 0); $self->{annfilter} = Filter::read_in('ann', $call, 0) || Filter::read_in('ann', 'node_default', 0) ; - $self->{routefilter} = Filter::read_in('route', $call, 0) || Filter::read_in('route', 'node_default', 0) unless $self->{isolate} ; + $self->{routefilter} = Filter::read_in('route', $call, 0) || Filter::read_in('route', 'node_default', 0) unless $self->{isolate}; + $self->{pc92filter} = Filter::read_in('pc92', $call, 0) || Filter::read_in('pc92', 'node_default', 0) unless $self->{isolate} ; # get the INPUT filters (these only pertain to Clusters) @@ -320,12 +320,8 @@ sub start $self->{inwcyfilter} = Filter::read_in('wcy', $call, 1) || Filter::read_in('wcy', 'node_default', 1); $self->{inannfilter} = Filter::read_in('ann', $call, 1) || Filter::read_in('ann', 'node_default', 1); $self->{inroutefilter} = Filter::read_in('route', $call, 1) || Filter::read_in('route', 'node_default', 1) unless $self->{isolate}; - # if there is no route input filter then specify a default one. - # obviously this can be changed later by the sysop. - if (!$self->{inroutefilter}) { - my $dxcc = $self->dxcc; - $Route::filterdef->cmd($self, 'route', 'accept', "input by_dxcc $dxcc" ); - } + $self->{inpc92filter} = Filter::read_in('pc92', $call, 0) || Filter::read_in('pc92', 'node_default', 0) unless $self->{isolate} ; + # set unbuffered and no echo $self->send_now('B',"0"); @@ -1040,19 +1036,6 @@ sub route } } - # try the backstop method - unless ($dxchan) { - my $rcall = RouteDB::get($call); - if ($rcall) { - if ($self && $rcall eq $self->{call}) { - dbg("PCPROT: Trying to route back to source, dropped") if isdbg('chanerr'); - return; - } - $dxchan = DXChannel::get($rcall); - dbg("route: $call -> $rcall using RouteDB" ) if isdbg('route') && $dxchan; - } - } - if ($dxchan) { my $routeit = adjust_hops($dxchan, $line); # adjust its hop count by node name if ($routeit) { @@ -1122,10 +1105,10 @@ sub process_rcmd { my ($self, $tonode, $fromnode, $user, $cmd) = @_; if ($tonode eq $main::mycall) { - my $ref = DXUser->get_current($fromnode); + my $ref = DXUser::get_current($fromnode); my $cref = Route::Node::get($fromnode); - Log('rcmd', 'in', $ref->{priv}, $fromnode, $cmd); - if ($cmd !~ /^\s*rcmd/i && $cref && $ref && $cref->call eq $ref->homenode) { # not allowed to relay RCMDS! + Log('rcmd', 'in', ($ref->{priv}||0), $fromnode, $cmd); + if ($cmd !~ /^\s*rcmd/i && $cref && $ref && $ref->homenode && $cref->call eq $ref->homenode) { # not allowed to relay RCMDS! if ($ref->{priv}) { # you have to have SOME privilege, the commands have further filtering $self->{remotecmd} = 1; # for the benefit of any command that needs to know my $oldpriv = $self->{priv}; @@ -1141,7 +1124,7 @@ sub process_rcmd $self->send_rcmd_reply($main::mycall, $fromnode, $user, "your attempt is logged, Tut tut tut...!"); } } else { - my $ref = DXUser->get_current($tonode); + my $ref = DXUser::get_current($tonode); if ($ref && $ref->is_clx) { $self->route($tonode, pc84($fromnode, $tonode, $user, $cmd)); } else { @@ -1166,7 +1149,7 @@ sub process_rcmd_reply $dxchan->send($line) if $dxchan; } } else { - my $ref = DXUser->get_current($tonode); + my $ref = DXUser::get_current($tonode); if ($ref && $ref->is_clx) { $self->route($tonode, pc85($fromnode, $tonode, $user, $line)); } else { @@ -1231,7 +1214,7 @@ sub disconnect # do routing stuff, remove me from routing table my $node = Route::Node::get($call); - RouteDB::delete_interface($call); + Route::delete_interface($call); # unbusy and stop and outgoing mail my $mref = DXMsg::get_busy($call);