X-Git-Url: http://www.dxcluster.org/gitweb/gitweb.cgi?a=blobdiff_plain;f=cmd%2Ftalk.pl;h=a53b213e1f756a07e7e340dc32c7e22fe41b2e8a;hb=cce345b95c555a0b45218c5b452bc0f5f4f13bab;hp=e69de29bb2d1d6434b8b29ae775ad8c2e48c5391;hpb=6b6a8002929017b6d4217f68fa492a2d728ee1fe;p=spider.git diff --git a/cmd/talk.pl b/cmd/talk.pl index e69de29b..a53b213e 100644 --- a/cmd/talk.pl +++ b/cmd/talk.pl @@ -0,0 +1,38 @@ +# +# The talk command +# +# Copyright (c) 1998 Dirk Koopman G1TLH +# +# $Id$ +# + +my ($self, $line) = @_; +my @argv = split /\s+/, $line; # generate an argv +my $to = uc $argv[0]; +my $via; +my $from = $self->call(); + +if ($argv[1] eq '>') { + $via = uc $argv[2]; + $line =~ s/^$argv[0]\s+>\s+$argv[2]\s*//; +} else { + $line =~ s/^$argv[0]\s*//; +} + +my $call = $via ? $via : $to; +my $ref = DXCluster->get($call); +return (1, "$call not visible on the cluster") if !$ref; + +my $dxchan = DXCommandmode->get($to); # is it for us? +if ($dxchan && $dxchan->is_user) { + $dxchan->send("$to de $from $line"); + Log('talk', $to, $from, $main::mycall, $line); +} else { + $line =~ s/\^//og; # remove any ^ characters + my $prot = DXProt::pc10($from, $to, $via, $line); + DXProt::route($via?$via:$to, $prot); + Log('talk', $to, $from, $via?$via:$main::mycall, $line); +} + +return (1, ()); +