projects
/
spider.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
correct PC17 handling
[spider.git]
/
perl
/
DXProtHandle.pm
diff --git
a/perl/DXProtHandle.pm
b/perl/DXProtHandle.pm
index ef6101cea44cb1c713d62cfc3ed30c1129d16ac1..7f5a6fffd636e326d074c984a1f7d5f4a3ab5ddc 100644
(file)
--- a/
perl/DXProtHandle.pm
+++ b/
perl/DXProtHandle.pm
@@
-106,7
+106,7
@@
sub handle_10
# RouteDB::update($to, $_[6]);
# convert this to a PC93 and process it as such
# RouteDB::update($to, $_[6]);
# convert this to a PC93 and process it as such
- $self->
process
(pc93($to, $from, $via, $_[3], $_[6]));
+ $self->
normal
(pc93($to, $from, $via, $_[3], $_[6]));
return;
# this is all redundant but kept for now for reference
return;
# this is all redundant but kept for now for reference
@@
-540,11
+540,6
@@
sub handle_17
RouteDB::delete($ncall, $self->{call});
RouteDB::delete($ncall, $self->{call});
- unless ($ncall eq $self->{call}) {
- dbg("PCPROT: PC17 from non-local $ncall, ignored") if isdbg('chanerr');
- return;
- }
-
my $uref = Route::User::get($ucall);
unless ($uref) {
dbg("PCPROT: Route::User $ucall not in config") if isdbg('chanerr');
my $uref = Route::User::get($ucall);
unless ($uref) {
dbg("PCPROT: Route::User $ucall not in config") if isdbg('chanerr');
@@
-554,13
+549,12
@@
sub handle_17
dbg("PCPROT: Route::Node $ncall not in config") if isdbg('chanerr');
}
dbg("PCPROT: Route::Node $ncall not in config") if isdbg('chanerr');
}
- $dxchan =
$parent->dxchan if $parent
;
+ $dxchan =
DXChannel::get($ncall)
;
if ($dxchan && $dxchan ne $self) {
dbg("PCPROT: PC17 from $self->{call} trying to alter locally connected $ncall, ignored!") if isdbg('chanerr');
return;
}
if ($dxchan && $dxchan ne $self) {
dbg("PCPROT: PC17 from $self->{call} trying to alter locally connected $ncall, ignored!") if isdbg('chanerr');
return;
}
- $dxchan = DXChannel::get($ncall);
unless ($dxchan) {
if ($parent->via_pc92) {
dbg("PCPROT: non-local node controlled by PC92, ignored") if isdbg('chanerr');
unless ($dxchan) {
if ($parent->via_pc92) {
dbg("PCPROT: non-local node controlled by PC92, ignored") if isdbg('chanerr');
@@
-617,7
+611,8
@@
sub handle_18
}
$self->{handle_xml}++ if DXXml::available() && $_[1] =~ /\bxml/;
if ($_[1] =~ /\bpc9x/) {
}
$self->{handle_xml}++ if DXXml::available() && $_[1] =~ /\bxml/;
if ($_[1] =~ /\bpc9x/) {
- $self->{do_pc9x}++;
+ $self->{do_pc9x} = 1;
+ dbg("Do px9x set on $self->{call}");
}
} else {
$self->version(50.0);
}
} else {
$self->version(50.0);
@@
-1468,8
+1463,6
@@
sub handle_92
my (@radd, @rdel);
my (@radd, @rdel);
- $self->{do_pc9x} ||= 1;
-
my $pcall = $_[1];
unless ($pcall) {
dbg("PCPROT: invalid callsign string '$_[1]', ignored") if isdbg('chanerr');
my $pcall = $_[1];
unless ($pcall) {
dbg("PCPROT: invalid callsign string '$_[1]', ignored") if isdbg('chanerr');
@@
-1486,12
+1479,17
@@
sub handle_92
if ($pcall eq $self->{call} && $self->{state} eq 'init') {
$self->state('init92');
if ($pcall eq $self->{call} && $self->{state} eq 'init') {
$self->state('init92');
+ $self->{do_pc9x} = 1;
+ dbg("Do pc9x set on $pcall");
+ }
+ unless ($self->{do_pc9x}) {
+ dbg("PCPROT: PC9x come in from non-PC9x node, ignored") if isdbg('chanerr');
+ return;
}
my $parent = check_pc9x_t($pcall, $t, 92, 1) || return;
my $oparent = $parent;
}
my $parent = check_pc9x_t($pcall, $t, 92, 1) || return;
my $oparent = $parent;
- $parent->lastid->{92} = $t;
$parent->do_pc9x(1);
$parent->via_pc92(1);
$parent->do_pc9x(1);
$parent->via_pc92(1);
@@
-1616,7
+1614,7
@@
sub handle_93
my $line = shift;
my $origin = shift;
my $line = shift;
my $origin = shift;
-
$self->{do_pc9x} ||= 1;
+
#
$self->{do_pc9x} ||= 1;
my $pcall = $_[1];
unless (is_callsign($pcall)) {
my $pcall = $_[1];
unless (is_callsign($pcall)) {