Change DXUser->get* to DXUser::get*
[spider.git] / perl / DXProt.pm
index 8b415974ed55cef98fd1062cc448576b8ca02a5e..69eb2228a194f4323638bf0b32cd6b7b005df6b1 100644 (file)
@@ -232,7 +232,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;
@@ -420,6 +420,12 @@ sub normal
                }
        }
 
+       if (defined &Local::pcprot) {
+               my $r;
+               eval { $r = Local::pcprot($self, $pcno, $line, @field); };
+               return if $r;                   # i.e don't process it
+       }
+
        # send it out for processing
        my $origin = $self->{call};
        no strict 'subs';
@@ -1116,10 +1122,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};
@@ -1135,7 +1141,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 {
@@ -1160,7 +1166,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 {