projects
/
spider.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Fix typo regarding CVS in adminmanual
[spider.git]
/
perl
/
DXProt.pm
diff --git
a/perl/DXProt.pm
b/perl/DXProt.pm
index c7cd41b77cec153ca0b6a83c5aefddafab9dee2b..e7bda8bc5f5fe9ce82c1b9660813da17d3fea980 100644
(file)
--- a/
perl/DXProt.pm
+++ b/
perl/DXProt.pm
@@
-848,7
+848,7
@@
sub normal
} else {
my $ref = DXUser->get_current($field[1]);
if ($ref && $ref->is_clx) {
} else {
my $ref = DXUser->get_current($field[1]);
if ($ref && $ref->is_clx) {
- route($field[1], pc84($field[2], $field[1], $field[2], $field[3]));
+
$self->
route($field[1], pc84($field[2], $field[1], $field[2], $field[3]));
} else {
$self->route($field[1], $line);
}
} else {
$self->route($field[1], $line);
}
@@
-871,7
+871,7
@@
sub normal
} else {
my $ref = DXUser->get_current($field[1]);
if ($ref && $ref->is_clx) {
} else {
my $ref = DXUser->get_current($field[1]);
if ($ref && $ref->is_clx) {
- route($field[1], pc85($field[2], $field[1], $field[2], $field[3]));
+
$self->
route($field[1], pc85($field[2], $field[1], $field[2], $field[3]));
} else {
$self->route($field[1], $line);
}
} else {
$self->route($field[1], $line);
}
@@
-1040,7
+1040,7
@@
sub normal
if ($ref && $ref->is_clx) {
$self->route($field[1], $line);
} else {
if ($ref && $ref->is_clx) {
$self->route($field[1], $line);
} else {
- route($field[1], pc34($field[2], $field[1], $field[4]));
+
$self->
route($field[1], pc34($field[2], $field[1], $field[4]));
}
}
return;
}
}
return;
@@
-1068,7
+1068,7
@@
sub normal
if ($ref && $ref->is_clx) {
$self->route($field[1], $line);
} else {
if ($ref && $ref->is_clx) {
$self->route($field[1], $line);
} else {
- route($field[1], pc35($field[2], $field[1], $field[4]));
+
$self->
route($field[1], pc35($field[2], $field[1], $field[4]));
}
}
return;
}
}
return;
@@
-1475,12
+1475,20
@@
sub route
unless ($dxchan) {
my $cl = DXCluster->get_exact($call);
$dxchan = $cl->dxchan if $cl;
unless ($dxchan) {
my $cl = DXCluster->get_exact($call);
$dxchan = $cl->dxchan if $cl;
+ if (ref $dxchan) {
+ if (ref $self && $dxchan eq $self) {
+ dbg('chan', "PCPROT: Trying to route back to source, dropped");
+ return;
+ }
+ }
}
if ($dxchan) {
my $routeit = adjust_hops($dxchan, $line); # adjust its hop count by node name
if ($routeit) {
$dxchan->send($routeit);
}
}
if ($dxchan) {
my $routeit = adjust_hops($dxchan, $line); # adjust its hop count by node name
if ($routeit) {
$dxchan->send($routeit);
}
+ } else {
+ dbg('chan', "PCPROT: No route available, dropped");
}
}
}
}