From: minima Date: Fri, 6 Jul 2001 10:30:26 +0000 (+0000) Subject: fix talk and routing problems to mycall X-Git-Url: http://dxcluster.org/gitweb/gitweb.cgi?a=commitdiff_plain;h=3fe821fd8a168bc7175080838c4e3a4b30a86812;p=spider.git fix talk and routing problems to mycall --- diff --git a/Changes b/Changes index 6dcfcf23..bc621000 100644 --- a/Changes +++ b/Changes @@ -1,3 +1,5 @@ +06Jul01======================================================================= +1. fix talk and routing problems to mycall 05Jul01======================================================================= 1. disconnect channels whose route node has disappeared 29Jun01======================================================================= diff --git a/perl/DXCommandmode.pm b/perl/DXCommandmode.pm index cfedb1db..c1a461ff 100644 --- a/perl/DXCommandmode.pm +++ b/perl/DXCommandmode.pm @@ -105,8 +105,6 @@ sub start $user->qra(DXBearing::lltoqra($lat, $long)) if (defined $lat && defined $long); } - $DXProt::me->conn($self->conn) if $call eq $main::myalias; # send all output for mycall to myalias - Log('DXCommand', "$call connected"); # send prompts and things @@ -409,11 +407,6 @@ sub disconnect my $self = shift; my $call = $self->call; - # reset the redirection of messages back to 'normal' if we are the sysop - if ($call eq $main::myalias) { - $DXProt::me->conn(undef); - } - my @rout = $main::routeroot->del_user($call); dbg("B/C PC17 on $main::mycall for: $call") if isdbg('route'); diff --git a/perl/DXProt.pm b/perl/DXProt.pm index 8364aca9..5f3890a0 100644 --- a/perl/DXProt.pm +++ b/perl/DXProt.pm @@ -316,7 +316,8 @@ sub normal } else { $call = $to = $field[2]; } - $dxchan = DXChannel->get($call); + $dxchan = DXChannel->get($main::myalias) if $call eq $main::mycall; + $dxchan = DXChannel->get($call) unless $dxchan; if ($dxchan && $dxchan->is_user) { $field[3] =~ s/\%5E/^/g; $dxchan->talk($field[1], $to, $via, $field[3]); @@ -421,7 +422,7 @@ sub normal my $node; my $to = $user->homenode; my $last = $user->lastoper || 0; - if ($send_opernam && $main::systime > $last + $DXUser::lastoperinterval && $to && ($node = Route::Node::get($to)) ) { + if ($to ne $main::mycall && $send_opernam && $main::systime > $last + $DXUser::lastoperinterval && $to && ($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; @@ -1515,7 +1516,7 @@ sub route if ($dxchan) { my $routeit = adjust_hops($dxchan, $line); # adjust its hop count by node name if ($routeit) { - $dxchan->send($routeit); + $dxchan->send($routeit) unless $dxchan == $me; } } else { dbg("PCPROT: No route available, dropped") if isdbg('chanerr'); @@ -1693,10 +1694,10 @@ sub addrcmd $r->{t} = $main::systime; $r->{cmd} = $cmd; $rcmds{$to} = $r; - + my $ref = Route::Node::get($to); my $dxchan = $ref->dxchan; - if ($dxchan && $dxchan->is_clx) { + if ($dxchan && $dxchan->is_clx) { route(undef, $to, pc84($main::mycall, $to, $self->{call}, $cmd)); } else { route(undef, $to, pc34($main::mycall, $to, $cmd));