X-Git-Url: http://dxcluster.net/gitweb/gitweb.cgi?a=blobdiff_plain;f=perl%2FDXCommandmode.pm;h=3eb9a1c6ce7ff153bebb30db4affbc9cf59dc227;hb=90b87fdbe4bb4f904e89939640aa7764a69e5616;hp=528067061a52332a7c9c7b4a5659a9407e05a055;hpb=ae313f260d904cd45b58e4d1e620a49aef1a42c9;p=spider.git diff --git a/perl/DXCommandmode.pm b/perl/DXCommandmode.pm index 52806706..3eb9a1c6 100644 --- a/perl/DXCommandmode.pm +++ b/perl/DXCommandmode.pm @@ -54,12 +54,6 @@ $cmdimportdir = "$main::root/cmd_import"; # the base directory for importing com # this does not exist as default, you need to create it manually # -use vars qw($VERSION $BRANCH); -$VERSION = sprintf( "%d.%03d", q$Revision$ =~ /(\d+)\.(\d+)/ ); -$BRANCH = sprintf( "%d.%03d", q$Revision$ =~ /\d+\.\d+\.(\d+)\.(\d+)/ || (0,0)); -$main::build += $VERSION; -$main::branch += $BRANCH; - # # obtain a new connection this is derived from dxchannel # @@ -75,7 +69,10 @@ sub new # ALWAYS output the user my $ref = Route::User::get($call); - $main::me->route_pc16($main::mycall, undef, $main::routeroot, $ref) if $ref; + if ($ref) { + $main::me->route_pc16($main::mycall, undef, $main::routeroot, $ref); + $main::me->route_pc92a($main::mycall, undef, $main::routeroot, $ref); + } return $self; } @@ -384,11 +381,11 @@ sub send_talks my ($to, $via) = $ent =~ /(\S+)>(\S+)/; $to = $ent unless $to; - my $call = $via ? $via : $to; + my $call = $via && $via ne '*' ? $via : $to; my $clref = Route::get($call); my $dxchan = $clref->dxchan if $clref; if ($dxchan) { - $dxchan->talk($self->{call}, $to, $via, $line); + $dxchan->talk($self->{call}, $to, undef, $line); } else { $self->send($self->msg('disc2', $via ? $via : $to)); my @l = grep { $_ ne $ent } @{$self->{talklist}}; @@ -577,6 +574,7 @@ sub disconnect # issue a pc17 to everybody interested $main::me->route_pc17($main::mycall, undef, $main::routeroot, $uref); + $main::me->route_pc92d($main::mycall, undef, $main::routeroot, $uref); } else { confess "trying to disconnect a non existant user $call"; } @@ -829,16 +827,16 @@ sub local_send # send a talk message here sub talk { - my ($self, $from, $to, $via, $line) = @_; + my ($self, $from, $to, $via, $line, $onode) = @_; $line =~ s/\\5E/\^/g; if ($self->{talk}) { if ($self->{gtk}) { - $self->local_send('T', dd(['talk',$to,$from,$via,$line,@_])); + $self->local_send('T', dd(['talk',$to,$from,$via,$line])); } else { $self->local_send('T', "$to de $from: $line"); } } - Log('talk', $to, $from, $via?$via:$main::mycall, $line); + Log('talk', $to, $from, '<' . ($onode || '*'), $line); # send a 'not here' message if required unless ($self->{here} && $from ne $to) { my $key = "$to$from"; @@ -922,9 +920,9 @@ sub format_dx_spot my $t = ztime($_[2]); my $loc = ''; my $clth = $self->{consort} eq 'local' ? 29 : 30; - my $comment = substr $_[3], 0, $clth; + my $comment = substr (($_[3] || ''), 0, $clth); $comment .= ' ' x ($clth - length($comment)); - if ($self->{user}->wantgrid) { + if ($self->{user}->wantgrid) { my $ref = DXUser->get_current($_[4]); if ($ref) { $loc = $ref->qra || ''; @@ -1050,9 +1048,9 @@ sub broadcast_debug foreach my $dxchan (DXChannel::get_all) { next unless $dxchan->{enhanced} && $dxchan->{senddbg}; if ($dxchan->{gtk}) { - $dxchan->local_send('L', dd(['db', $s])); + $dxchan->send_later('L', dd(['db', $s])); } else { - $dxchan->local_send('L', $s); + $dxchan->send_later('L', $s); } } } @@ -1173,5 +1171,12 @@ sub import_cmd } } } + +sub print_find_reply +{ + my ($self, $node, $target, $flag, $ms) = @_; + my $sort = $flag == 2 ? "External" : "Local"; + $self->send("$sort $target found at $node in $ms ms" ); +} 1; __END__