+24Jul07=======================================================================
+1. Try to target PC93 (the combined talk/ann/chat sentence) better. Prevent
+PC12 chat going to non-dxspider and non-ak1a nodes. None of the others seem to
+handle it correctly (Lee VE7CC: do you?).
+2. a few other tidyups,
+see: http://www.dxcluster.org/cgi-bin/gitweb.cgi?p=spider.git
+for details.
18Jul07=======================================================================
1. Change the meaning of set/isolate. Set/isolate now works in both directions
in that an isolated node will only have its local config remembered and will
return;
}
- # remember that we are converting PC10->PC93
+ # remember that we are converting PC10->PC93 and self will be $main::me if it
+ # comes from us
unless ($self->{do_pc9x}) {
dbg("PCPROT: PC9x come in from non-PC9x node, ignored") if isdbg('chanerr');
return;
my $t = $_[2];
my $parent = check_pc9x_t($pcall, $t, 93, 1) || return;
- my $to = $_[3];
- my $from = $_[4];
- my $via = $_[5];
+ my $to = uc $_[3];
+ my $from = uc $_[4];
+ my $via = uc $_[5];
my $text = $_[6];
- my $onode = $_[7];
+ my $onode = uc $_[7];
$onode = $pcall if @_ <= 8;
# this is catch loops caused by bad software ...
return;
}
- if (is_callsign($to)) {
+ # if it is routeable then then treat it like a talk
+ my $ref = Route::get($to);
+ if ($ref) {
# local talks
my $dxchan;
$dxchan = DXChannel::get($main::myalias) if $to eq $main::mycall;
}
# convert to PC10 talks where appropriate
- my $ref = Route::get($to);
if ($ref) {
# just go for the "best" one for now (rather than broadcast)
$dxchan = $ref->dxchan;
}
# otherwise, drop through and allow it to be broadcast
- } elsif ($to eq '*' || uc $to eq 'SYSOP' || uc $to eq 'WX') {
+ } elsif ($to eq '*' || $to eq 'SYSOP' || $to eq 'WX') {
# announces
- my $sysop = uc $to eq 'SYSOP' ? '*' : ' ';
- my $wx = uc $to eq 'WX' ? '1' : '0';
+ my $sysop = $to eq 'SYSOP' ? '*' : ' ';
+ my $wx = $to eq 'WX' ? '1' : '0';
my $local = $via eq 'LOCAL' ? '*' : $via;
$self->send_announce(1, pc12($from, $text, $local, $sysop, $wx, $pcall), $from, $local, $text, $sysop, $pcall, $wx, $via eq 'LOCAL' ? $via : undef);
return if $via eq 'LOCAL';
- } else {
+ } elsif (!is_callsign($to) && $text =~ /^#\d+ /) {
# chat messages to non-pc9x nodes
$self->send_chat(1, pc12($from, $text, undef, $to, undef, $pcall), $from, '*', $text, $to, $pcall, '0');
}